Firmware-update: FreshTomato 2025.4
FreshTomato versie 2025.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 wil 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.
Changes in version 2025.4Warning: due to changes in the naming of some nvram variables, users of BW Limiter and tftp in dnsmasq should review their settings.SDK6/SDK7/SDK714: help wireless vif mac addr issuesSDK6/SDK7/SDK714: fix Serial Flash Memory Init (Part 2)libcurl: update to 8.16.0sqlite: update to 3.50.4dnsmasq: update to v2.92test21iperf: update to 3.19.1php: update to 8.3.26nginx: update to 1.29.1meson: update to 1.9.1libsodium: update to latest 1.0.20-stablelibffi: update to 3.5.2nano: update to 8.6pcre2: update to 10.46adminer: update to adminneo 5.1.1libjpeg-turbo: update to 3.1.2libxml2: update to 2.15.0expat: update to 2.7.3tor: update to 0.4.8.18GUI: Advanced: DHCP/DNS/TFTP: add a field to enter custom configuration for stubby (close #28)GUI: Correction to menu referencesGUI: Administration: CIFS Client: fix refreshing 'Total / Free Size' (close #122)GUI: Advanced: VLAN: fix link in Notes (close #81)GUI: VPN: Wireguard: delete notes - point to a link to dedicated page on our wiki as helpGUI: VPN: Wireguard: make it more intuitive that import depends on VPN typeGUI: VPN: Wireguard: make Peers Parameters (used only for config generation) as a separate tabbuild: add DLINK DIR868L with wireguard imagebuild: remove no more needed (and icomplete implemented) TCONFIG_SSHbuild: Makefile: convert expat recipe to cmakebuild: Makefile: tune avahi recipeavahi: backport CVE fixes from upstream and use clean sourcesbwlimit: change the names of variables to make them more similar to existing ones and easier to managednsmasq: change the name of dnsmasq tftp variable to make it more similar to existing ones and easier to managednsmasq: restore use of check_services() to check if dnsmasq is up (disabled in commit bb82460)httpd: ddns.c: code shrinkhttpd: httpd.c: define MAX_CONN_ACCEPT and MAX_CONN_TIMEOUT and tune themhttpd: httpd.c: use global int_1 variable; use proper socklen_t data typehttpd: httpd.c: use SO_KEEPALIVE instead of TCP_NODELAY for setsockopt()httpd: httpd.c: rewrite match() function to be fully non-recursivehttpd: httpd.c: add syslog logout succesful message and tune failed messagehttpd: misc.c: iterate over BRIDGE_COUNT for ether-wakehttpd: tomato.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variableshttpd: nvram.c: use static buffer for asp_jsdefaults()httpd: iperf.c: sanitize hostname more precisely (see commit bc96c20)httpd: nvram.c: iterate over MWAN_MAX and BRIDGE_COUNT to get values from other wans/lanshttpd: misc.c: iterate over MWAN_MAX in asp_dns()httpd: misc.c: iterate over MWAN_MAX in asp_wanup()httpd: misc.c: iterate over MWAN_MAX in asp_link_uptime()httpd: dhcp.c: iterate over MWAN_MAX in asp_dhcpc_time()httpd: misc.c: iterate over MWAN_MAX in asp_wanstatus(); some code cleaninghttpd: comment out asp_jiffies()miniupnpd: win10 & 11 workaround (help version IGD v1 in IGD v2 mode) - show forwarded ports at Windows GUI (again)ntpd: use ulimit to run ntpd with high nice and limited memory to eliminate denial of service attack (close #37)OpenVPN Client: add Routing Policy PrioritizationOpenVPN: handle dnsmasq ipset file correctlyopenssl: backport fix for OpenSSL 3.0.17 regressionrc: wireguard.c: fix script execution after using replace_in_file()rc: get rid of TCONFIG_MULTIWAN, iterate over MWAN_MAX instead; part 3rc: use only one anon enum policy definition for both OpenVPN and Wireguardrc: openvpn.c: update CTF bypassrc: firewall.c: use buffer for wanX name - reduce code sizerc: dhcp.c: code shrinkrc: network.c: fix two typos (close #121)rc: move dnsmasq stuff to outer filerc/shared: introduce and use gen_urandom() functionrc: firewall.c: iterate over BRIDGE_COUNT in filter6_input(void)rc: firewall.c: move run_pptpd_firewall_script() to the frontrc: introduce and use restart_firewall() function. Move restart_firewall() to the end in exec_service()rc: openvpn.c: iterate over BRIDGE_COUNT for br_ipaddr/br_netmaskrc: network.c: iterate over BRIDGE_COUNT for /etc/hostsrc: network.c: iterate over BRIDGE_COUNT and MWAN_MAX in do_static_routes()rc: dhcp.c: iterate over BRIDGE_COUNT in start_dhcp6c()rc: dhcp.c: update start_dhcp6c() for BRIDGE_COUNT values > 4 (up to 32)rc: roamast.c: add check for upper threshold (new --> 25000 Kbps) idle rate roaming assistentrc: dnsmasq.c: use SIGHUP instead of mistakenly used SIGINT in reload_dnsmasq()rc: openvpn.c: simplify write_ovpn_resolv() functionrc: pptp_client.c: simplify write_pptpc_resolv() functionrc: protect firewall scripts with simple_lock()/simple_unlock(), do the same for vpnrouting.shrom: update CA bundle to 2025-08-12shared: strings.c: update trimstr() functionshared: defaults.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variablestomato.css - improved to print and printscreen in dark-modeWireguard: handle dnsmasq ipset file correctlyWireguard: add Routing Policy Prioritization in PBR modewireguard/OpenVPN: do not delete PBR table when using the client in non-PRB mode - just hide it and don't add Kill Switch rules to iptableswireguard: fix crash with CTF enabledwww: use global C variable definitions required by javascript, instead of locally defined oneswww: admin-tomatoanon.asp: add a noteRevert "www: vpn-client.asp: only add routing value in Routing Policy mode, otherwise remove all data from the routing table"Revert "www: vpn-wireguard.asp: only add routing value in 'External' and Routing Policy mode, otherwise remove all data from the routing table"Revert "www: vpn-wireguard.asp: clean routing policy if not in 'External' mode"www: vpn-wireguard.asp: do not restart service if only the 'Enable On Start' option was changedwww: vpn-client.asp: do not restart client if only the 'Enable On Start' option was changedwww: vpn-server.asp: do not restart server if only the 'Enable On Start' option was changedwww: fix compilation (navi) without PPTPDwww: vpn-client.asp: check if we need to restart firewall in special cases even if client is down; clean-upwww: vpn-wireguard.asp: check if we need to restart firewall in special cases even if 'client' is downwww: advanced-dhcpdns.asp: Adjust String.trim() usagewww: ipt-[daily|monthly].asp: iterate over MAX_BRIDGE_ID in redraw()www: qos-graphs.asp: iterate over MAXWAN_NUM to get irates/orates; also small changes in httpd/ctnf.c (asp_qrate) to get an arraywww: rename isup.jsz to isup.jsx to protect its content by http_idswitch4g: fix kernel module load order (and don't change it in the future...)switch4g: slightly improve the conditions when checking the interface/IPBuffalo WZR-1750DHP: improve support (add SPI suppport, fix VLAN support, fix wl hardware order, adjust linux MTD, remove hardcoded limits for board_ns (working correct))Buffalo WZR-1750DHP: bring router back to life :-) (reduce NVRAM space to 32 KByte for now!)Tenda AC15: adjust command (use 0x9F only) for reading manufacturer/ memory / density for SPI flash
Warning: due to changes in the naming of some nvram variables, users of BW Limiter and tftp in dnsmasq should review their settings.SDK6/SDK7/SDK714: help wireless vif mac addr issuesSDK6/SDK7/SDK714: fix Serial Flash Memory Init (Part 2)libcurl: update to 8.16.0sqlite: update to 3.50.4dnsmasq: update to v2.92test21iperf: update to 3.19.1php: update to 8.3.26nginx: update to 1.29.1meson: update to 1.9.1libsodium: update to latest 1.0.20-stablelibffi: update to 3.5.2nano: update to 8.6pcre2: update to 10.46adminer: update to adminneo 5.1.1libjpeg-turbo: update to 3.1.2libxml2: update to 2.15.0expat: update to 2.7.3tor: update to 0.4.8.18GUI: Advanced: DHCP/DNS/TFTP: add a field to enter custom configuration for stubby (close #28)GUI: Correction to menu referencesGUI: Administration: CIFS Client: fix refreshing 'Total / Free Size' (close #122)GUI: Advanced: VLAN: fix link in Notes (close #81)GUI: VPN: Wireguard: delete notes - point to a link to dedicated page on our wiki as helpGUI: VPN: Wireguard: make it more intuitive that import depends on VPN typeGUI: VPN: Wireguard: make Peers Parameters (used only for config generation) as a separate tabbuild: add DLINK DIR868L with wireguard imagebuild: remove no more needed (and icomplete implemented) TCONFIG_SSHbuild: Makefile: convert expat recipe to cmakebuild: Makefile: tune avahi recipeavahi: backport CVE fixes from upstream and use clean sourcesbwlimit: change the names of variables to make them more similar to existing ones and easier to managednsmasq: change the name of dnsmasq tftp variable to make it more similar to existing ones and easier to managednsmasq: restore use of check_services() to check if dnsmasq is up (disabled in commit bb82460)httpd: ddns.c: code shrinkhttpd: httpd.c: define MAX_CONN_ACCEPT and MAX_CONN_TIMEOUT and tune themhttpd: httpd.c: use global int_1 variable; use proper socklen_t data typehttpd: httpd.c: use SO_KEEPALIVE instead of TCP_NODELAY for setsockopt()httpd: httpd.c: rewrite match() function to be fully non-recursivehttpd: httpd.c: add syslog logout succesful message and tune failed messagehttpd: misc.c: iterate over BRIDGE_COUNT for ether-wakehttpd: tomato.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variableshttpd: nvram.c: use static buffer for asp_jsdefaults()httpd: iperf.c: sanitize hostname more precisely (see commit bc96c20)httpd: nvram.c: iterate over MWAN_MAX and BRIDGE_COUNT to get values from other wans/lanshttpd: misc.c: iterate over MWAN_MAX in asp_dns()httpd: misc.c: iterate over MWAN_MAX in asp_wanup()httpd: misc.c: iterate over MWAN_MAX in asp_link_uptime()httpd: dhcp.c: iterate over MWAN_MAX in asp_dhcpc_time()httpd: misc.c: iterate over MWAN_MAX in asp_wanstatus(); some code cleaninghttpd: comment out asp_jiffies()miniupnpd: win10 & 11 workaround (help version IGD v1 in IGD v2 mode) - show forwarded ports at Windows GUI (again)ntpd: use ulimit to run ntpd with high nice and limited memory to eliminate denial of service attack (close #37)OpenVPN Client: add Routing Policy PrioritizationOpenVPN: handle dnsmasq ipset file correctlyopenssl: backport fix for OpenSSL 3.0.17 regressionrc: wireguard.c: fix script execution after using replace_in_file()rc: get rid of TCONFIG_MULTIWAN, iterate over MWAN_MAX instead; part 3rc: use only one anon enum policy definition for both OpenVPN and Wireguardrc: openvpn.c: update CTF bypassrc: firewall.c: use buffer for wanX name - reduce code sizerc: dhcp.c: code shrinkrc: network.c: fix two typos (close #121)rc: move dnsmasq stuff to outer filerc/shared: introduce and use gen_urandom() functionrc: firewall.c: iterate over BRIDGE_COUNT in filter6_input(void)rc: firewall.c: move run_pptpd_firewall_script() to the frontrc: introduce and use restart_firewall() function. Move restart_firewall() to the end in exec_service()rc: openvpn.c: iterate over BRIDGE_COUNT for br_ipaddr/br_netmaskrc: network.c: iterate over BRIDGE_COUNT for /etc/hostsrc: network.c: iterate over BRIDGE_COUNT and MWAN_MAX in do_static_routes()rc: dhcp.c: iterate over BRIDGE_COUNT in start_dhcp6c()rc: dhcp.c: update start_dhcp6c() for BRIDGE_COUNT values > 4 (up to 32)rc: roamast.c: add check for upper threshold (new --> 25000 Kbps) idle rate roaming assistentrc: dnsmasq.c: use SIGHUP instead of mistakenly used SIGINT in reload_dnsmasq()rc: openvpn.c: simplify write_ovpn_resolv() functionrc: pptp_client.c: simplify write_pptpc_resolv() functionrc: protect firewall scripts with simple_lock()/simple_unlock(), do the same for vpnrouting.shrom: update CA bundle to 2025-08-12shared: strings.c: update trimstr() functionshared: defaults.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variablestomato.css - improved to print and printscreen in dark-modeWireguard: handle dnsmasq ipset file correctlyWireguard: add Routing Policy Prioritization in PBR modewireguard/OpenVPN: do not delete PBR table when using the client in non-PRB mode - just hide it and don't add Kill Switch rules to iptableswireguard: fix crash with CTF enabledwww: use global C variable definitions required by javascript, instead of locally defined oneswww: admin-tomatoanon.asp: add a noteRevert "www: vpn-client.asp: only add routing value in Routing Policy mode, otherwise remove all data from the routing table"Revert "www: vpn-wireguard.asp: only add routing value in 'External' and Routing Policy mode, otherwise remove all data from the routing table"Revert "www: vpn-wireguard.asp: clean routing policy if not in 'External' mode"www: vpn-wireguard.asp: do not restart service if only the 'Enable On Start' option was changedwww: vpn-client.asp: do not restart client if only the 'Enable On Start' option was changedwww: vpn-server.asp: do not restart server if only the 'Enable On Start' option was changedwww: fix compilation (navi) without PPTPDwww: vpn-client.asp: check if we need to restart firewall in special cases even if client is down; clean-upwww: vpn-wireguard.asp: check if we need to restart firewall in special cases even if 'client' is downwww: advanced-dhcpdns.asp: Adjust String.trim() usagewww: ipt-[daily|monthly].asp: iterate over MAX_BRIDGE_ID in redraw()www: qos-graphs.asp: iterate over MAXWAN_NUM to get irates/orates; also small changes in httpd/ctnf.c (asp_qrate) to get an arraywww: rename isup.jsz to isup.jsx to protect its content by http_idswitch4g: fix kernel module load order (and don't change it in the future...)switch4g: slightly improve the conditions when checking the interface/IPBuffalo WZR-1750DHP: improve support (add SPI suppport, fix VLAN support, fix wl hardware order, adjust linux MTD, remove hardcoded limits for board_ns (working correct))Buffalo WZR-1750DHP: bring router back to life :-) (reduce NVRAM space to 32 KByte for now!)Tenda AC15: adjust command (use 0x9F only) for reading manufacturer/ memory / density for SPI flash
Source:
Tweakers.net