Firmware-update: FreshTomato 2026.4
FreshTomato versie 2026.4 is uitgekomen. FreshTomato is van Tomato afgeleide firmware voor verschillende op Arm of MIPS gebaseerde routers van Asus, D-Link, Huawei, Linksys, Netgear, Tenda en Xiaomi. Het kan gezien worden als de voortzetting van 'Tomato by Shibby' sinds deze ontwikkelaar, MichaĆ Rupental, zijn tijd aan andere projecten is gaan besteden. De FreshTomato-firmware voegt ten opzichte van de originele firmware van de fabrikant diverse extra opties toe, zoals een realtime bandbreedtemonitor en uitgebreide instelmogelijkheden. De firmware is beschikbaar voor routers met een Arm- of MIPS-cpu.
FreshTomato 2026.4Warning: Due to the removal of Mullvad's DoT servers from the list (they are being shut down), Stubby users are asked to check their settings.Note: Due to numerous GUI changes, please use Ctrl+F5 or Ctrl+Shift+R, or clear your browser cache.
Warning: Due to the removal of Mullvad's DoT servers from the list (they are being shut down), Stubby users are asked to check their settings.Note: Due to numerous GUI changes, please use Ctrl+F5 or Ctrl+Shift+R, or clear your browser cache.Kernel:kernel: compile the dm-mod module and place it in the extras archive (close #286)kernel: wireguard: handle disabled IPv6 on legacy kernelskernel: fix PTY allocation with GCC 7.3kernel: improve ICMPv6 error suppression diagnosticskernel: rndis_host: recover the link after TX timeoutskernel: usb: usblp: remove global proc entries only after last interface disconnects
kernel: compile the dm-mod module and place it in the extras archive (close #286)kernel: wireguard: handle disabled IPv6 on legacy kernelskernel: fix PTY allocation with GCC 7.3kernel: improve ICMPv6 error suppression diagnosticskernel: rndis_host: recover the link after TX timeoutskernel: usb: usblp: remove global proc entries only after last interface disconnectsToolchain:toolchain: remove no more needed toolchain based on gcc 4.5.3toolchain: add toolchain based on gcc 7.3toolchain: add toolchain based on gcc 7.5.0 and binutils 1.29.1toolchain: remove test toolchain based on gcc 7.3.0toolchain: switch to toolchain based on gcc 7.5.0toolchain: update with 'static_assert', 'timespec_get()' and 'aligned_alloc' added
toolchain: remove no more needed toolchain based on gcc 4.5.3toolchain: add toolchain based on gcc 7.3toolchain: add toolchain based on gcc 7.5.0 and binutils 1.29.1toolchain: remove test toolchain based on gcc 7.3.0toolchain: switch to toolchain based on gcc 7.5.0toolchain: update with 'static_assert', 'timespec_get()' and 'aligned_alloc' addedUpdates:adminer: update to adminneo-5.7.1avahi: update to 0.9-rc5busybox: update to 1.38.0dnsmasq: update to v2.93-a9880c5dropbear: update to 2026.94e2fsprogs: update to 1.47.4expat: update to 2.8.4haveged: update to 1.9.26libcurl: update to 8.22.0libevent: update to 2.1.13-stablelibffi: update to 3.8.0libjpeg-turbo: update to 3.2.0libjson-c: update to 0.19libsodium: update to latest 1.0.22-stablelibubox: update to 17f527f (2026-07-08) snapshotlibxml2: update to 2.15.4meson: update to 1.12.0miniupnpd: update to 2.3.11nano: update to 9.2nginx: update to 1.31.5ntfs-3g: update to 2026.7.7openssl: update to 3.0.22openvpn: update to 2.7.7pcre2: update to 10.48php: update to 8.3.33pppd: update to 2.5.3sqlite: update to 3.53.4tinc: update to 1.1.8pre-211e3df (2026-06-27)tor: update to 0.4.9.12transmission: update to 4.1.3 (close #76)
adminer: update to adminneo-5.7.1avahi: update to 0.9-rc5busybox: update to 1.38.0dnsmasq: update to v2.93-a9880c5dropbear: update to 2026.94e2fsprogs: update to 1.47.4expat: update to 2.8.4haveged: update to 1.9.26libcurl: update to 8.22.0libevent: update to 2.1.13-stablelibffi: update to 3.8.0libjpeg-turbo: update to 3.2.0libjson-c: update to 0.19libsodium: update to latest 1.0.22-stablelibubox: update to 17f527f (2026-07-08) snapshotlibxml2: update to 2.15.4meson: update to 1.12.0miniupnpd: update to 2.3.11nano: update to 9.2nginx: update to 1.31.5ntfs-3g: update to 2026.7.7openssl: update to 3.0.22openvpn: update to 2.7.7pcre2: update to 10.48php: update to 8.3.33pppd: update to 2.5.3sqlite: update to 3.53.4tinc: update to 1.1.8pre-211e3df (2026-06-27)tor: update to 0.4.9.12transmission: update to 4.1.3 (close #76)GUI / WWW:GUI: add service name next to Status on page headerwww: about.asp: show Git commit hashwww: admin-access.asp: allow matching local and remote ports (closes #149)www: admin-access.asp: derive access listener notes from MAX_BRIDGE_IDwww: admin-access.asp: fix redirect URL port handlingwww: advanced-access.asp: derive LAN access bridges from MAX_BRIDGE_IDwww: advanced-ctnf.asp: fix L7 NVRAM initialization (closes #310)www: advanced-dhcpdns.asp: derive DHCP/DNS fields from MAX_* limitswww: advanced-dhcpdns.asp: fix dnsmasq configuration check on slow routerswww: advanced-firewall.asp: add TCP MSS clamping optionwww: advanced-firewall.asp: derive multicast bridges from MAX_BRIDGE_IDwww: advanced-mac.asp: derive MAC address WAN fields from MAXWAN_NUMwww: advanced-mac.asp: fix duplicate MAC address validationwww: advanced-pbr.asp: iterate over MAXWAN_NUM in advanced-pbrwww: advanced-routing.asp: derive routing interfaces from MAX_* limitswww: advanced-tor.asp: derive Tor bridge options from MAX_BRIDGE_IDwww: advanced-vlan.asp: derive VLAN controls from MAX_* limitswww: advanced-wlanvifs.asp: derive virtual wireless bridges from MAX_BRIDGE_IDwww: basic-ddns.asp: derive DDNS WAN controls from MAXWAN_NUMwww: basic-network.asp: derive MultiWAN controls from MAXWAN_NUMwww: basic-network.asp: prevent gaps in enabled Multi-WAN interfaceswww: bwm-common.js: derive bandwidth labels from MAX_* limitswww: bwm-graph.svg: fix selected range traffic calculationwww: derive LAN bridge grid from MAX_BRIDGE_IDwww: disable OUI lookup for NO_HTTPS buildswww: forward-dmz.asp: fix validation and remote-access handlingwww: hide Layer 7 controls when L7 is disabledwww: improve switch port labeling and shared port helperswww: make 0.0.0.0 bridges consistently L2-only (closes #218)www: move common page footer to tomato.jswww: qos-ctrate.asp: derive QoS connection filters from MAX_BRIDGE_IDwww: qos-detailed.asp: derive QoS detail filters from MAX_BRIDGE_IDwww: share bandwidth and IP traffic helperswww: share collapsible section helperswww: share grid backup controlswww: share IP traffic history codewww: share IPv6 address join helperwww: share QoS connection viewer helperswww: share traffic statistics administration helperswww: splashd.asp: derive captive portal bridges from MAX_BRIDGE_IDwww: status-log.asp: add explicit search operatorswww: status-overview.asp: add ethernet port descriptionwww: status-overview.asp: avoid NaN for bridges without netmask (close #278)www: tools-wol.asp: derive Wake-on-LAN bridges from MAX_BRIDGE_IDwww: unify web interface across ARM and MIPS targetswww: vpn-pptp.asp: derive PPTP client WAN options from MAXWAN_NUMwww: vpn-server.asp: keep DH params disabled when ECDH is enabled
GUI: add service name next to Status on page headerwww: about.asp: show Git commit hashwww: admin-access.asp: allow matching local and remote ports (closes #149)www: admin-access.asp: derive access listener notes from MAX_BRIDGE_IDwww: admin-access.asp: fix redirect URL port handlingwww: advanced-access.asp: derive LAN access bridges from MAX_BRIDGE_IDwww: advanced-ctnf.asp: fix L7 NVRAM initialization (closes #310)www: advanced-dhcpdns.asp: derive DHCP/DNS fields from MAX_* limitswww: advanced-dhcpdns.asp: fix dnsmasq configuration check on slow routerswww: advanced-firewall.asp: add TCP MSS clamping optionwww: advanced-firewall.asp: derive multicast bridges from MAX_BRIDGE_IDwww: advanced-mac.asp: derive MAC address WAN fields from MAXWAN_NUMwww: advanced-mac.asp: fix duplicate MAC address validationwww: advanced-pbr.asp: iterate over MAXWAN_NUM in advanced-pbrwww: advanced-routing.asp: derive routing interfaces from MAX_* limitswww: advanced-tor.asp: derive Tor bridge options from MAX_BRIDGE_IDwww: advanced-vlan.asp: derive VLAN controls from MAX_* limitswww: advanced-wlanvifs.asp: derive virtual wireless bridges from MAX_BRIDGE_IDwww: basic-ddns.asp: derive DDNS WAN controls from MAXWAN_NUMwww: basic-network.asp: derive MultiWAN controls from MAXWAN_NUMwww: basic-network.asp: prevent gaps in enabled Multi-WAN interfaceswww: bwm-common.js: derive bandwidth labels from MAX_* limitswww: bwm-graph.svg: fix selected range traffic calculationwww: derive LAN bridge grid from MAX_BRIDGE_IDwww: disable OUI lookup for NO_HTTPS buildswww: forward-dmz.asp: fix validation and remote-access handlingwww: hide Layer 7 controls when L7 is disabledwww: improve switch port labeling and shared port helperswww: make 0.0.0.0 bridges consistently L2-only (closes #218)www: move common page footer to tomato.jswww: qos-ctrate.asp: derive QoS connection filters from MAX_BRIDGE_IDwww: qos-detailed.asp: derive QoS detail filters from MAX_BRIDGE_IDwww: share bandwidth and IP traffic helperswww: share collapsible section helperswww: share grid backup controlswww: share IP traffic history codewww: share IPv6 address join helperwww: share QoS connection viewer helperswww: share traffic statistics administration helperswww: splashd.asp: derive captive portal bridges from MAX_BRIDGE_IDwww: status-log.asp: add explicit search operatorswww: status-overview.asp: add ethernet port descriptionwww: status-overview.asp: avoid NaN for bridges without netmask (close #278)www: tools-wol.asp: derive Wake-on-LAN bridges from MAX_BRIDGE_IDwww: unify web interface across ARM and MIPS targetswww: vpn-pptp.asp: derive PPTP client WAN options from MAXWAN_NUMwww: vpn-server.asp: keep DH params disabled when ECDH is enabledBuild:build: add explicit FTPS make option (closes #303)build: add NO_L7 controls to ARMbuild: add separate Adblock build optionbuild: add shared-only target build modebuild: config: disable FTP SSL with WolfSSLbuild: config: replace MultiWAN with configurable network limitsbuild: config: require base size optimization for extra trimmingbuild: config: require OpenVPN for KEYGENbuild: config: tie Transmission extra tools to client binariesbuild: config: update Kconfig parser to Linux 4.14build: decouple TLS provider selection from HTTPSbuild: drop stale ARM make-bin optionsbuild: fix gcc 7.3 compiler warningsbuild: Makefile: add autoreconf to pptpd recipebuild: Makefile: fix tool paths in CMake cross-compilation configbuild: make FTPS explicit in existing OpenVPN targetsbuild: prepare for toolchain based on gcc 7.5.0 and binutils 2.29.1build: preserve legacy ARM multi-WAN defaultsbuild: preserve legacy MIPS multi-WAN defaultsbuild: remove dead ARM NO_ZEBRA overridebuild: rom: Makefile: dnscrypt: verify and normalize resolver listbuild: update GUI optimization tools
build: add explicit FTPS make option (closes #303)build: add NO_L7 controls to ARMbuild: add separate Adblock build optionbuild: add shared-only target build modebuild: config: disable FTP SSL with WolfSSLbuild: config: replace MultiWAN with configurable network limitsbuild: config: require base size optimization for extra trimmingbuild: config: require OpenVPN for KEYGENbuild: config: tie Transmission extra tools to client binariesbuild: config: update Kconfig parser to Linux 4.14build: decouple TLS provider selection from HTTPSbuild: drop stale ARM make-bin optionsbuild: fix gcc 7.3 compiler warningsbuild: Makefile: add autoreconf to pptpd recipebuild: Makefile: fix tool paths in CMake cross-compilation configbuild: make FTPS explicit in existing OpenVPN targetsbuild: prepare for toolchain based on gcc 7.5.0 and binutils 2.29.1build: preserve legacy ARM multi-WAN defaultsbuild: preserve legacy MIPS multi-WAN defaultsbuild: remove dead ARM NO_ZEBRA overridebuild: rom: Makefile: dnscrypt: verify and normalize resolver listbuild: update GUI optimization toolsOther:Add "Block All Except..." Access Restriction option (closes #33)busybox: add 3 more patches for ntpd appletbusybox: fix ntpd server statistics hookbusybox: remove unsafe ntpd -t trust modedefaults: expose common defaults helper APIdmz: fix LAN bridge detectiondmz: make DMZ optional and add MAC target support (closes #179)dnsmasq: check for infinite (non-expiring) leases. Explicitly cast to unsigned long for 64bit time_t on 32bit systemsffmpeg: backport critical security fixes for legacy 0.11.5Fix Docker buildshttpd: bwm.c: simplify stats backup selectionhttpd: cpuinfo.c: replace system() in cpuinfo with eval()httpd: ctnf.c: fix direction of local IPv4 connectionshttpd: defer final upgrade shutdown until after reboot responsehttpd: execute OpenVPN helpers without a shellhttpd: httpd.c: replace certificate cat system() with _eval()httpd: httpd.c: scale HTTP_MAX_LISTENERS with the LAN/WAN limitshttpd: listen on LAN IPv6 link-local addresshttpd: log.c: allow full syslog downloads (closes #298)httpd: log.c: harden syslog download handlinghttpd: misc.c: deduplicate IPv6 DNS outputhttpd: nvram.c: deduplicate NVRAM JavaScript outputhttpd: nvram.c: honor configured WAN and bridge limits in asp_nvramhttpd: stage and validate firmware before destructive upgradehttpd: tomato.c: execute discovery without a shellhttpd: track GUI login state per session token (close #56)httpd: usb.c: fix USB device list with storage and printer connectedhttpd: wl.c: use driver-reported VIF limit in web interface (close #287)libshared: add tc qdisc status helperslibshared: centralize bridge NVRAM naminglibshared: centralize WAN NVRAM naminglibshared: converge netconf and nvparse sourceslibshared: converge support data headerslibshared: deduplicate prefixed NVRAM readslibshared: ether_atoe(): accept hyphen-separated Ethernet addresseslibshared: expand bridge naming helperslibshared: fix ARM guard visibility in netconf and nvparselibshared: fix common header dependencieslibshared: include syslog definitions in model detectionlibshared: make shutils header self-containedlibshared: make syslog dependency explicitlibshared: move WireGuard status helper to libsharedlibshared: reuse bridge NVRAM helpers across callerslibshared: reuse prefixed NVRAM operationslibshared: reuse prefixed NVRAM operations in callerslibshared: reuse WAN prefix formatter across callerslibshared: simplify WAN face selectionlzo: fix a potential 1-byte overrun in LZO1F safe decompressormdu: add comment about CA bundlemdu: add "Connection: close" to socket pathmdu: avoid duplicate DDNS status strings in log formatsmdu: clarify custom URL authentication handlingmdu: keep connect timeout helper local to non-libcurl pathmdu/ddns: change the default useragent to one that works better with IP checkersmdu/ddns: change the logging level from DEBUG to ERROR where requiredmdu/ddns: do not save DDNS cookie before provider updatemdu/ddns: fail PUT body setup when fmemopen failsmdu/ddns: fix parsing DynDNS checkip HTML responsemdu/ddns: force IPv4 for HE.net tunnelbroker updatesmdu/ddns: get_address(): use ssl for IP checkersmdu/ddns: guard empty custom header in socket request pathmdu/ddns: let mdu own external checker address-family selectionmdu/ddns: reject truncated request stringsmdu/ddns: send libcurl POST bodies with POSTFIELDSmdu/ddns: split IPv4 and IPv6 address checksmdu/ddns: update DNSExit to current APImdu/ddns: use _eval() for route commandsmtd: add non-destructive firmware image validationmwwatchdog: skip temporary routes with a single WANntpd: retry query socket errors without consuming burst (patch)ntpd: run the -S hook before exiting in -q mode (patch)ntpd: schedule retry after initial DNS lookup failure (patch)nvram: main.c: fix cfg save/restore buffer handling and parsingopenssl-1.1: add fix for CVE-2026-63072 and CVE-2026-54874openvpn: disable compression support but still allow limited interoperability with compression-enabled peersothers: mwwatchdog: gate on active WAN count, fix mwanJob toggle and PID file releaseothers: mymotd: show Git commit hashqos: make conntrack statistics optional on ARM (closes #309)rc: bwlimit.c: fix severe Samba throughput drop on ARMrc: ddns.c: do not trust saved cookie on cold external checker startrc: dhcp.c: use shared defaults for LAN DHCP fallbackrc: dnsmasq.c: add logging when dnsmasq reloadsrc: exclude L2-only bridges from dnsmasq and IPv6 (closes #222)rc: firewall.c: clamp TCP MSS on WAN ingress and egress (close #284)rc: firewall.c: reuse bridge prefix formatter in firewallrc: generalize WAN and LAN bridge handlingrc: handle existing static routes without retrying (closes #294)rc: handle idempotent IPv6 route operationsrc/httpd: use qdisc helpers for qos and bwlimit statusrc: network.c: reset static route interface for each entryrc: pptpd.c: clamp TCP MSS in both tunnel directionsrc: pptpd.c: place TCP MSS clamp rules in mangle tablerc: preserve WAN0 DNS settings in AP-only moderc: qos.c: create the QOSSIZE chain whenever a size rule needs itrc: report route deletion only after successrc: reuse existing NVRAM naming helpersrc: reuse f_write_string for watchdog scriptsrc: reuse WAN protocol and NVRAM helpersrc: reuse wl_nvname in wireless setuprc: services.c: add simple service operation tablerc: services.c: also run stubby with custom or alternative configuration with logging (close #283)rc: services.c: centralize service CLI metadatarc: services.c: deduplicate stats daemon shutdownrc: services.c: move local service handlers to metadata dispatcherrc: services.c: move service metadata to private headerrc: services.c: print sorted service list on a single linerc: services.c: reuse bridge helpersrc: services.c: start time-dependent services after first ntpd syncrc: services.c: use shared defaults tables directlyrc: standardize route-add retry handlingrc: track Tor runtime intent separately from boot policyrc: transmission.c: preserve custom blocklists and settings (close #290)rc: usb.c: harden hotplug environment handlingrc: usb.c: harden hotplug event handlingrc: usb.c: use native utf8 option when mounting VFATrc: use configured and active Multi-WAN counts where appropriaterc: wan.c: restore gateway host route ordering in preset_wanrc: wan.c: reuse prefixed NVRAM operationsrc: wireguard.c: preserve existing routes in main tablerc/www: add static IPv6 reservationsrc/www: fix dhcpd_static consumers missed by the IPv6 reservations changerom: remove Mullvad DOT servers from the listrom: update mk-ca-bundle.pl script to latest versionshared: misc.c: harden foreach_wif() interface list handlingswitch3g: improve USB serial device detectionswitch4g: also detect modem with 'connect' optionswitch4g: fix endless loop in certain conditionsswitch4g: fix loop IFACE ready/not ready one more timeswitch4g: improve USB serial DIAG detectionswitch4g: qmi_wwan: fall back to legacy SIM status before recoveryswitch4g: support legacy and modern cdc-wdm sysfs layoutstor: add New Identity control actionusb: remove obsolete UFSDN configurationwireguard: clarify keepalive roles and fix endpoint ports (closes #276)WireGuard: fix External VPN Provider switchingwireguard: fix rx byte/packet accountingwwansignal: parse uqmi responses by JSON field name
Add "Block All Except..." Access Restriction option (closes #33)busybox: add 3 more patches for ntpd appletbusybox: fix ntpd server statistics hookbusybox: remove unsafe ntpd -t trust modedefaults: expose common defaults helper APIdmz: fix LAN bridge detectiondmz: make DMZ optional and add MAC target support (closes #179)dnsmasq: check for infinite (non-expiring) leases. Explicitly cast to unsigned long for 64bit time_t on 32bit systemsffmpeg: backport critical security fixes for legacy 0.11.5Fix Docker buildshttpd: bwm.c: simplify stats backup selectionhttpd: cpuinfo.c: replace system() in cpuinfo with eval()httpd: ctnf.c: fix direction of local IPv4 connectionshttpd: defer final upgrade shutdown until after reboot responsehttpd: execute OpenVPN helpers without a shellhttpd: httpd.c: replace certificate cat system() with _eval()httpd: httpd.c: scale HTTP_MAX_LISTENERS with the LAN/WAN limitshttpd: listen on LAN IPv6 link-local addresshttpd: log.c: allow full syslog downloads (closes #298)httpd: log.c: harden syslog download handlinghttpd: misc.c: deduplicate IPv6 DNS outputhttpd: nvram.c: deduplicate NVRAM JavaScript outputhttpd: nvram.c: honor configured WAN and bridge limits in asp_nvramhttpd: stage and validate firmware before destructive upgradehttpd: tomato.c: execute discovery without a shellhttpd: track GUI login state per session token (close #56)httpd: usb.c: fix USB device list with storage and printer connectedhttpd: wl.c: use driver-reported VIF limit in web interface (close #287)libshared: add tc qdisc status helperslibshared: centralize bridge NVRAM naminglibshared: centralize WAN NVRAM naminglibshared: converge netconf and nvparse sourceslibshared: converge support data headerslibshared: deduplicate prefixed NVRAM readslibshared: ether_atoe(): accept hyphen-separated Ethernet addresseslibshared: expand bridge naming helperslibshared: fix ARM guard visibility in netconf and nvparselibshared: fix common header dependencieslibshared: include syslog definitions in model detectionlibshared: make shutils header self-containedlibshared: make syslog dependency explicitlibshared: move WireGuard status helper to libsharedlibshared: reuse bridge NVRAM helpers across callerslibshared: reuse prefixed NVRAM operationslibshared: reuse prefixed NVRAM operations in callerslibshared: reuse WAN prefix formatter across callerslibshared: simplify WAN face selectionlzo: fix a potential 1-byte overrun in LZO1F safe decompressormdu: add comment about CA bundlemdu: add "Connection: close" to socket pathmdu: avoid duplicate DDNS status strings in log formatsmdu: clarify custom URL authentication handlingmdu: keep connect timeout helper local to non-libcurl pathmdu/ddns: change the default useragent to one that works better with IP checkersmdu/ddns: change the logging level from DEBUG to ERROR where requiredmdu/ddns: do not save DDNS cookie before provider updatemdu/ddns: fail PUT body setup when fmemopen failsmdu/ddns: fix parsing DynDNS checkip HTML responsemdu/ddns: force IPv4 for HE.net tunnelbroker updatesmdu/ddns: get_address(): use ssl for IP checkersmdu/ddns: guard empty custom header in socket request pathmdu/ddns: let mdu own external checker address-family selectionmdu/ddns: reject truncated request stringsmdu/ddns: send libcurl POST bodies with POSTFIELDSmdu/ddns: split IPv4 and IPv6 address checksmdu/ddns: update DNSExit to current APImdu/ddns: use _eval() for route commandsmtd: add non-destructive firmware image validationmwwatchdog: skip temporary routes with a single WANntpd: retry query socket errors without consuming burst (patch)ntpd: run the -S hook before exiting in -q mode (patch)ntpd: schedule retry after initial DNS lookup failure (patch)nvram: main.c: fix cfg save/restore buffer handling and parsingopenssl-1.1: add fix for CVE-2026-63072 and CVE-2026-54874openvpn: disable compression support but still allow limited interoperability with compression-enabled peersothers: mwwatchdog: gate on active WAN count, fix mwanJob toggle and PID file releaseothers: mymotd: show Git commit hashqos: make conntrack statistics optional on ARM (closes #309)rc: bwlimit.c: fix severe Samba throughput drop on ARMrc: ddns.c: do not trust saved cookie on cold external checker startrc: dhcp.c: use shared defaults for LAN DHCP fallbackrc: dnsmasq.c: add logging when dnsmasq reloadsrc: exclude L2-only bridges from dnsmasq and IPv6 (closes #222)rc: firewall.c: clamp TCP MSS on WAN ingress and egress (close #284)rc: firewall.c: reuse bridge prefix formatter in firewallrc: generalize WAN and LAN bridge handlingrc: handle existing static routes without retrying (closes #294)rc: handle idempotent IPv6 route operationsrc/httpd: use qdisc helpers for qos and bwlimit statusrc: network.c: reset static route interface for each entryrc: pptpd.c: clamp TCP MSS in both tunnel directionsrc: pptpd.c: place TCP MSS clamp rules in mangle tablerc: preserve WAN0 DNS settings in AP-only moderc: qos.c: create the QOSSIZE chain whenever a size rule needs itrc: report route deletion only after successrc: reuse existing NVRAM naming helpersrc: reuse f_write_string for watchdog scriptsrc: reuse WAN protocol and NVRAM helpersrc: reuse wl_nvname in wireless setuprc: services.c: add simple service operation tablerc: services.c: also run stubby with custom or alternative configuration with logging (close #283)rc: services.c: centralize service CLI metadatarc: services.c: deduplicate stats daemon shutdownrc: services.c: move local service handlers to metadata dispatcherrc: services.c: move service metadata to private headerrc: services.c: print sorted service list on a single linerc: services.c: reuse bridge helpersrc: services.c: start time-dependent services after first ntpd syncrc: services.c: use shared defaults tables directlyrc: standardize route-add retry handlingrc: track Tor runtime intent separately from boot policyrc: transmission.c: preserve custom blocklists and settings (close #290)rc: usb.c: harden hotplug environment handlingrc: usb.c: harden hotplug event handlingrc: usb.c: use native utf8 option when mounting VFATrc: use configured and active Multi-WAN counts where appropriaterc: wan.c: restore gateway host route ordering in preset_wanrc: wan.c: reuse prefixed NVRAM operationsrc: wireguard.c: preserve existing routes in main tablerc/www: add static IPv6 reservationsrc/www: fix dhcpd_static consumers missed by the IPv6 reservations changerom: remove Mullvad DOT servers from the listrom: update mk-ca-bundle.pl script to latest versionshared: misc.c: harden foreach_wif() interface list handlingswitch3g: improve USB serial device detectionswitch4g: also detect modem with 'connect' optionswitch4g: fix endless loop in certain conditionsswitch4g: fix loop IFACE ready/not ready one more timeswitch4g: improve USB serial DIAG detectionswitch4g: qmi_wwan: fall back to legacy SIM status before recoveryswitch4g: support legacy and modern cdc-wdm sysfs layoutstor: add New Identity control actionusb: remove obsolete UFSDN configurationwireguard: clarify keepalive roles and fix endpoint ports (closes #276)WireGuard: fix External VPN Provider switchingwireguard: fix rx byte/packet accountingwwansignal: parse uqmi responses by JSON field name
Source:
Tweakers.net