-
-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathCHANGELOG
More file actions
3277 lines (3092 loc) · 204 KB
/
CHANGELOG
File metadata and controls
3277 lines (3092 loc) · 204 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
===========================
FreshTomato-MIPS Changelog
===========================
(for full changelog, see: https://github.com/FreshTomato-Project/freshtomato-mips/blob/mips-master/CHANGELOG)
2026.1 2026.02.15
---------------------------
- Note: Many CVE fixes and improvements, updating is strongly recommended!
- Warning: due to naming changes for some nvram variables in release 2026.1 (in subsequent releases, thanks to @lancethepants this is no longer necessary), OpenVPN users should:
1. clear nvram during the update or
2. use this script: https://gist.github.com/pedro0311/674f2e19691106417a989a43bf27b0a4 - read the inside HOWTO first!
- snmp: update to 5.9.5.2
- ebtables: updates from upstream
- libsodium: update to 1.0.21
- irqbalance: update to 1.9.5
- libsodium: update to latest 1.0.21-stable
- sqlite: update to 3.51.2
- dnsmasq: update to v2.93test4
- openssl: update to 3.0.19
- meson: update to 1.10.1
- libcap-ng: update to 0.9
- libpng: update to 1.6.54
- busybox: updates from upstream
- usb-modeswitch: update to 2.6.2
- usb-modeswitch: update data package to 20251207
- uqmi: update to 7914da43 (2025-07-29) snapshot
- libubox: update to 7928f17 (2025-12-08) snapshot
- expat: update to 2.7.4
- GUI: basic-ipv6.asp - Add option to enable/disable rapid-commit (Case: DHCPv6 PD)
- GUI: Status: Device List: fix sort by Lease Time
- GUI: Bandwidth: Real-Time: prevent bandwidth spikes on interface counter resets
- GUI: IP Traffic: Real-Time: prevent bandwidth spikes on interface counter resets
- GUI: Administration: Upgrade: display current filename used to flash the router
- GUI: USB and NAS: File Sharing: use drop-down list for 'Samba protocol version' instead of check boxes
- build: embed firmware filename into image
- build: OpenVPN: rename nvram variables to free up some space there - the reduction in nvram usage is 1140 bytes (for ARM)
- avahi/mDNS: fix start of avahi-daemon because of stupid typo in Makefile
- avahi/mDNS: fix problems with avahi-daemon once more (on ARM only)
- apcupsd: only install apcupsd with other files if TCONFIG_UPS is selected
- stubby: fix DNSSEC trust anchor bootstrapping by using static root trust anchors instead of Zero-config DNSSEC
- snmpd: save pid to file
- snmp: also stop snmpd during upgrade
- ntpd: increase limits (Max Memory & Max Processes)
- DDNS: mdu.c: get_address(): add IPv6 support, refactor
- DDNS: mdu.c: enhance _http_req() with full IPv6 support and safety fixes
- DDNS: mdu.c: update_cloudflare(): fix memory leak and improve Cloudflare DNS record handling
- Bandwidth/IP Traffic: fix calculation on real-time chart
- Bandwidth/IP Traffic: add interactive range selection to bandwidth charts
- Update defaults.c disable telnet enable at startup
- mwwatchdog: improve script robustness
- mwwatchdog: cktracert(): fix rx_bytes overflow in traffic detection (busybox int32 limit)
- OpenVPN Client: separate the VPN tunnel check from the normal watchdog, as the former does not work with all configurations
- openssl-1.1: add fix for: CVE-2025-68160, CVE-2025-69418, CVE-2025-69419, CVE-2025-69420, CVE-2025-69421, CVE-2026-22795 and CVE-2026-22796
- IPv6 (DHCPv6 with PD): add option to adjust Identity Association for Non-temporary Addresses ID and Identity Association for Prefix Delegation ID
- IPv6 (DHCPv6-PD): add default route ::/ with gateway if provided by the user (Metric 8192)
- Use snprintf for buffer safety in connect_pppol2tp
- httpd: bwm.c: use uint64_t for tx/rx in asp_iptmon(); cosmetic
- httpd: usb.c: fix critical bugs in asp_usbdevices()
- porthealth: add port health service
- nginx: delay on startup with user-defined delay
- cstats: refactor: replace string literals with path constants
- cstats: improve buffer validation (snprintf)
- cstats: use safe/proper daemonization
- cstats: use direct compression to .gz file
- cstats: introduce MAX_NODES for memory protection and add free_all_nodes() to clean up tree memory on --new and shutdown
- cstats: improve buffer handling (strlcpy/strlcat)
- cstats: use zlib if available
- rstats: fix memory management issue - free only on successful allocation
- rstats: refactor: replace string literals with path constants
- rstats: improve buffer validation (snprintf); cosmetic
- rstats: use memcpy instead of for loop
- rstats: use memmove instead of memcpy
- rstats: use zlib if available
- rstats: prepare for 64 bit counters
- rstats: user safe/proper daemonization
- rstats: improve buffer handling (strlcpy/strlcat)
- rstats: add 24-hour history persistence to custom paths
- rc: ddns.c: fix typo in update() function
- rc: ppp.c: function ipup_main() - use safe_getenv()
- rc: dhcp.c: function dhcpc_event_main() - check ifname before using it (NULL)
- rc: dhcp.c: function dhcpc_event_main() and bound() - speed up (again) if the correct prefix (ifname) is found
- rc: interface.c: function route_manip() - check pointer before using it (NULL)
- rc: snmp.c: use serialize_restart() to start/stop daemon, always remove pid file on stop
- rc: nginx.c: always remove child pid on nginx stop; cosmetic
- rc: mysql.c: use _exit() instead of exit() to terminate the child
- rc: nginx.c: use _exit() instead of exit() to terminate the child
- rc: transmission.c: use _exit() instead of exit() to terminate the child
- shared: misc.c: refactor connect_timeout()
- shared: files.c: increase file path buffer size in f_write_procsysnet()
- www: vpn-[client|wireguard].asp: fix note about Kill Switch
- www: status-devices.asp: fix javascript error when image is built without Network Discovery
- www: tomato.js: anon_update(): use target="_blank" instead of class="new_window" because on some pages eventHandler() is not added in init()
- www: admin-[bwm|iptraffic].asp: avoid reloading the page while saving
- www: nas-usb.asp: avoid reloading the page while saving; cosmetic
- www: tomato.js: wikiLink(): add title to links
- www: advanced-adblock-v2.asp: initialize variables before use, reset them when they are no longer needed, do not allow re-query when the previous one is still active
- www: add grid backup and restore functionality to selected pages
- www: tomato.js - allows for placeholder to work on password fields
- Linksys E1000 v1.0: fix port order (close #34)
2025.5 2025.12.21
---------------------------
- Warning: due to changes in the naming of some nvram variables, users of PPTP Client should review their settings.
- kernel RT-N/RT-AC: enable NETFILTER_NETLINK_QUEUE (Netfilter NFQUEUE over NFNETLINK) (close #40)
- openssl: update to 3.0.18
- tor: update to 0.4.8.21
- php: update to 8.3.28
- nginx: update to 1.29.4
- sqlite: update to 3.51.1
- adminer: update to adminneo-5.2.1
- libcurl: update to 8.17.0
- nano: update to 8.7
- dnsmasq: update to v2.92rc3
- libpng: update to 1.6.53
- tinc: update to 1.1pre18-242-g940d15c4
- meson: update to 1.10.0
- dropbear: update to 2025.89
- libjpeg-turbo: update to 3.1.3
- libatomic_ops: update to 7.10.0
- GUI: Port Forwarding: Basic: fix sort by Int Address
- GUI: Admin: SNMP: add 'Name' and 'Description' fields (close #25)
- GUI: status-overview.asp - Only displaying unsecured WiFi warning in AP mode
- Add Bridge Gateway Isolation + UI (IPv4 only atm), IPv6 bridge isolation, and IPv6-aware advanced-access.asp
- Improved IPv6 support
- IPv6 (DHCPv6 with PD): add option to adjust Identity Association for Non-temporary Addresses ID and Identity Association for Prefix Delegation ID
- Add autoconf-archive to installation command
- build: e2fsprogs: tune recipe, add patch to make libmagic optional
- build: also install ebtables-restore
- build: add update overlay
- adblock: delay start by 10 seconds on router restart/reboot
- mymotd: add date of build and by who
- Kill-Switch: introduce and use a helper script to add FQDNs to the firewall if they're not added immediately on FW restart
- openssl-1.1: add fix for CVE-2025-9230
- openvpn: vpnrouting.sh: do not restart routing here, it will be reloaded anyway when restarting the firewall
- OpenVPN/kill-switch/adblock-v2/mwwatchdog: add to nvram and use default IP (Cloudflare) for connection checking
- httpd: upgrade.c: only copy needed images on upgrade
- others: switch4g: refactoring, simplifying and shortening taking into account the specifics of sh in busybox
- others: switch3g: refactoring, simplifying and shortening taking into account the specifics of sh in busybox
- others: mwwatchdog: refactoring, simplifying and shortening taking into account the specifics of sh in busybox
- others: mwwatchdog: fix operator precedence bug that could add cron job when mwan_cktime=0
- rc: fix modprobe ip_set order
- rc: move BUF_SIZE definition to shared.h
- rc: dnsmasq.c: fix DNSSEC regression (in 2025.4): "Revert use SIGHUP instead of mistakenly used SIGINT in reload_dnsmasq()"
- rc: firewall.c: increase hitcount limit for remote GUI access
- rc: network.c: do_static_routes(): fix typo
- rc: openvpn.c: fix buffer size in ovpn_setup_watchdog()
- rc: openvpn.c: add error handling for fopen(), fappend(), opendir() and chdir(); more logging
- rc: openvpn.c: do not remove OVPN_DNS_DIR directory when client stops
- rc: openvpn.c: add error message when tunnel interface cannot be created
- rc: openvpn.c: fix interface name in ovpn_setup_watchdog()
- rc: openvpn.c: fix off-by-one error in start_ovpn_eas()
- rc: rc.c: add more logging
- rc: rc.c: kill_switch(): do not add rules if given WAN is disabled
- rc: rc.c: kill_switch(): make the function independent of run_vpn_firewall_scripts()
- rc: rc.c: kill_switch(): validate IPv4 or IPv4 range before adding it; also (finally) fix adding IPv4 range as "From Source IP" type
- rc: rc.c: kill_switch(): integrate with firewall to eliminate leaks
- rc: rc.c: fix to ipv6_enabled()
- rc: wan.c: move start_adblock() down
- rom: update mullvad.net DOH servers
- rom: update CA bundle to 2025-12-02
- rom: add new dnsmasq anchor
- shared: misc.c: iterate over MWAN_MAX to get WAN string/number
- shared: misc.c: get rid of TCONFIG_MULTIWAN and iterate over MWAN_MAX/BRIDGE_COUNT
- shared: misc.c: increase ifnames buffer size depending on bridge count
- www: add to the header of each page information about a new firmware version ready for download
- www: convert spin icon from gif to svg
- www: use only one asp script to manage upgrade/reboot/restoring defaults
- www: admin-snmp.asp: remove whitespaces from 'Allowed Remote IP Address'
- www: admin-snmp.asp: better handle 'Allowed Remote IP Address'
- www: basic-ipv6.asp: adjust/extend Commit b49bf16 (Improved IPv6 support) and remove IAID configuration option again
- www: saved.asp: get rid of unnecessary waiting when saving configuration on Admin -> Access when the httpd daemon starts up faster than the countdown indicates
- www: about.asp: reorganize page
- www: tomato.js: fix adding range of IPs
- www: tomato.js: searchOUI: use '--no-check-certificate' in wget if the image is built without stubby
- www: advanced-mac.asp fixed typo LLA vs. LAA button and notes
- www: vpn-client.asp: never hide Routing Policy table
- Linksys E3000: fix port order (close #26)
2025.4 2025.10.05
---------------------------
- Warning: due to changes in the naming of some nvram variables, users of BW Limiter and tftp in dnsmasq should review their settings.
- libcurl: update to 8.16.0
- sqlite: update to 3.50.4
- dnsmasq: update to v2.92test21
- nginx: update to 1.29.1
- meson: update to 1.9.1
- libsodium: update to latest 1.0.20-stable
- libffi: update to 3.5.2
- nano: update to 8.6
- adminer: update to adminneo 5.1.1
- libjpeg-turbo: update to 3.1.2
- libxml2: update to 2.15.0
- expat: update to 2.7.3
- GUI: Advanced: DHCP/DNS/TFTP: add a field to enter custom configuration for stubby
- GUI: Correction to menu references
- GUI: Administration: CIFS Client: fix refreshing 'Total / Free Size'
- GUI: Advanced: VLAN: fix link in Notes
- GUI: Advanced: VLAN: fix link in 'unknown_router' section
- build: remove no more needed (and icomplete implemented) TCONFIG_SSH
- build: Makefile: convert expat recipe to cmake
- build: Makefile: tune avahi recipe
- avahi: backport CVE fixes from upstream and use clean sources
- bwlimit: change the names of variables to make them more similar to existing ones and easier to manage
- dnsmasq: change the name of dnsmasq tftp variable to make it more similar to existing ones and easier to manage
- dnsmasq: restore use of check_services() to check if dnsmasq is up (disabled in commit 20c8d42)
- httpd: ddns.c: code shrink
- httpd: httpd.c: define MAX_CONN_ACCEPT and MAX_CONN_TIMEOUT and tune them
- httpd: httpd.c: use global int_1 variable; use proper socklen_t data type
- httpd: httpd.c: use SO_KEEPALIVE instead of TCP_NODELAY for setsockopt()
- httpd: httpd.c: rewrite match() function to be fully non-recursive
- httpd: httpd.c: add syslog logout succesful message and tune failed message
- httpd: misc.c: iterate over BRIDGE_COUNT for ether-wake
- httpd: tomato.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variables
- httpd: nvram.c: use static buffer for asp_jsdefaults()
- httpd: iperf.c: sanitize hostname more precisely (see commit 13924eb)
- httpd: nvram.c: iterate over MWAN_MAX and BRIDGE_COUNT to get values from other wans/lans
- httpd: 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 cleaning
- httpd: 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
- OpenVPN Client: add Routing Policy Prioritization
- OpenVPN: handle dnsmasq ipset file correctly
- openssl: backport fix for OpenSSL 3.0.17 regression
- rc: get rid of TCONFIG_MULTIWAN, iterate over MWAN_MAX instead; part 3
- rc: use only one anon enum policy definition for both OpenVPN and Wireguard
- rc: firewall.c: use buffer for wanX name - reduce code size
- rc: dhcp.c: code shrink
- rc: network.c: fix two typos
- rc: move dnsmasq stuff to outer file
- rc/shared: introduce and use gen_urandom() function
- rc: firewall.c: iterate over BRIDGE_COUNT in filter6_input(void)
- rc: firewall.c: move run_pptpd_firewall_script() to the front
- rc: 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_netmask
- rc: network.c: iterate over BRIDGE_COUNT for /etc/hosts
- rc: 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 assistent
- rc: dnsmasq.c: use SIGHUP instead of mistakenly used SIGINT in reload_dnsmasq()
- rc: openvpn.c: simplify write_ovpn_resolv() function
- rc: pptp_client.c: simplify write_pptpc_resolv() function
- rc: protect firewall scripts with simple_lock()/simple_unlock(), do the same for vpnrouting.sh
- rc: services.c: fix build break on MIPS (close #13)
- rom: update CA bundle to 2025-08-12
- shared: strings.c: update trimstr() function
- shared: defaults.c: get rid of TCONFIG_MULTIWAN, use MWAN_MAX instead. Also use BRIDGE_COUNT to enumerate lan variables
- tomato.css - improved to print and printscreen in dark-mode
- www: use global C variable definitions required by javascript, instead of locally defined ones
- www: admin-tomatoanon.asp: add a note
- Revert "www: vpn-client.asp: only add routing value in Routing Policy mode, otherwise remove all data from the routing table"
- www: vpn-client.asp: do not restart client if only the 'Enable On Start' option was changed
- www: vpn-server.asp: do not restart server if only the 'Enable On Start' option was changed
- www: fix compilation (navi) without PPTPD
- www: vpn-client.asp: check if we need to restart firewall in special cases even if client is down; clean-up
- www: advanced-dhcpdns.asp: Adjust String.trim() usage
- www: 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 array
- www: rename isup.jsz to isup.jsx to protect its content by http_id
- switch4g: fix kernel module load order (and don't change it in the future...)
- switch4g: slightly improve the conditions when checking the interface/IP
2025.3 2025.07.18
---------------------------
- dnsmasq: update to v2.92test16
- libcurl: update to 8.14.1
- expat: update to 2.7.1
- nano: update to 8.5
- dropbear: update to 2025.88
- libsodium: update to latest 1.0.20-stable
- meson: update to 1.8.2
- nginx: update to 1.29.0
- xl2tpd: update to 1.3.19
- libzip: update to 1.11.4
- adminer: update to 5.0.0
- uqmi: update to 71f9c94 (2025-05-31) snapshot
- libjpeg-turbo: update to 3.1.1
- libogg: update to 1.3.6
- libpng: update to 1.6.50
- sqlite: update to 3.50.2
- openssl: update to 3.0.17
- nettle: update to 3.10.2
- spawn-fcgi: update to 1.6.6
- build: Makefile: do not add symlinks for scp and dbclient to dropbearmulti if they are not compiled in
- GUI: advanced-vlan.asp - Header correction
- GUI: Advanced: VLAN: fix link in Notes
- GUI: basic-time.asp - NTP Client added 4th placeholder field for Custom upstream server
- GUI: VPN: add title's icons for VPN services
- GUI: Status-devices - SVG icons
- GUI: Status: Logs: add dedicated svg icons for Advanced themes
- GUI: status-overview: improve ethstate if WAN port is moved to primary LAN
- GUI: status-devices.asp: improving filtering of devices
- adblock-v2: do not add the contents of the nvram mwan_ckdst variable to the whitelist (close #45)
- fix an issue with CPU Usage NaN% in Status Overview page (A Walkthrough) ARM Asus RT-AC3200
- httpd: iptraffic.c: printf for unsgined int should use %u
- httpd: openvpn.c: fix client config generation
- httpd: log.c: fix truncation of last char in GUI -> Status -> Web Usage
- httpd: get rid of TCONFIG_MULTIWAN, iterate over MWAN_MAX instead
- rc: openvpn.c: tune watchdog so that it can also detect unresponsive OpenVPN client(s)
- rc: network.c: refactor do_static_routes() function - use iteration
- rc: firewall.c: iterate over MWAN_MAX to create MASQUERADE FW entries in nat_table()
- rc: get rid of TCONFIG_MULTIWAN, iterate over MWAN_MAX instead
- rom: update CA bundle to 2025-05-20
- switch4g: qmi: increase SIM power-cycle timeouts
- switch4g: qmi: fix network registration loop
- tomatoanon: make 'TomatoAnon' and 'Update Notification System' independent; reorganize GUI
- tomatoanon: use github as a source for FT versions if possible
- udpxy: Fixed typo in last commit (fix from the upstream)
- www: do not use 'eval' if possible
- www: status-devices.asp: Add option to hide WAN devices
- www: tidy up the Start/Stop buttons and the status of services
- www: bwlimit.asp: iterate over MAX_BRIDGE_ID to create bridge classes
- www: tomato.css: fix Ports State vertical alignment
- www: add icon to status of services
- vpnrouting.sh: tune how to restart dnsmasq
- vpnrouting.sh: move the contents of initTable() to startRouting() at the very beginning, expand list of default gateways, rename ID to FWMARK
- vpnrouting.sh: further routing improvements based on @eibgrad 's work
2025.2 2025.03.20
---------------------------
- Note: Mainly a bugfix release due to a serious bug in dnsmasq causing a SIGSEGV (segmentation violation) in some cases: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=9af15871e6ef0ac845412e9a6c3ecfb0849374c8
- dnsmasq: update to 2.91rc6 remove patch 300, fix already in upstream
- dropbear: update to 2025.87
- adminer: update to 4.17.2
- expat: update to 2.7.0
- build: disable Wi-Fi during upgrade for routers with wl_high (USBAP) module to make it work correctly, and add a warning about using only cable connection during this process (close #5)
- discovery.sh: fix wan scanning when IPv6 is enabled
- libshared: Default DSCP fix to off. Looks like comcast fixed this issue back in 2023
- rom: update CA bundle to 2025-02-25
- www: do not use 'eval' if possible
2025.1 2025.02.27
---------------------------
- dnsmasq: update to v2.91rc5
- nano: update to 8.3
- pppd: update to 2.5.2
- nettle: update to 3.10.1
- libexif: update to 0.6.25
- libiconv: update to 1.18
- libpng: update to 1.6.47
- libsodium: update to latest 1.0.20-stable
- libzip: update to 1.11.3
- meson: update to 1.7.0
- sqlite: update to 3.48.0
- adminer: update to 4.14
- openssl-3.0: update to 3.0.16
- nginx: update to 1.27.4
- libcurl: update to 8.12.0
- libffi: update to 3.4.7
- flac: update to 1.5.0
- libxml2: update to 2.13.6
- libatomic_ops: update to 7.8.2
- discovery.sh: update to v2.64
- rom: update CA bundle to 2024-12-31
- GUI: Basic: DDNS: hide 'Custom IP address' when 'IP address -> Custom IP Address...' is set but given Service is disabled
- busybox: enable lsof applet
- dnsmasq: fixes in dnsmasq Tomato-helper patch
- mdu: the eNom service has its cert fixed
- mdu: fix memory leak in curl_dump_cb() callback function
- mdu: make update_cloudflare() work again
- openssl-1.1: add fix for CVE-2024-9143
- openssl-1.1: add fix for CVE-2024-13176
- others: fix export PATH
- shared: process.c: check for zombie in pidof()
- shared: process.c: enhance pidof() matching
- rc: samba.c: do not remove samba config directory on stop/restart (prevents inability to add additional users)
- rc: ddns.c: fix path to IP cache file
- tomatoanon: update url to https://anon.freshtomato.org
- UPnP IGD & PCP: Add Expires to port forward listing
- USB: disable USB 3.0 by default and add 2.4G interference warning when enabling
- www: tomato.js: add button case to createFieldTable() function
- www: tomato.css: fix ports images on advanced vlan page
- www: add link to '/' in header that point to Status -> Overview
2024.5 2024.12.24
---------------------------
- Note: mainly a bug fix release
- nginx: update to 1.27.3
- sqlite: update to 3.47.2
- dnsmasq: update to v2.91test2
- libcurl: update to 8.11.1
- meson: update to 1.6.1
- libjpeg-turbo: update to 3.1.0
- rom: update CA bundle to 2024-11-26
- GUI: QoS: Basic Settings: fix displaying warnings on Advanced themes
- busybox: revert changes to ntpd applet in 1.37.0 (ntpd server returns bogus data), added as a patch
- miniupnpd: Init IPv6 firewall correctly and compile daemon with IGDv2 but disable it at runtime
- miniupnpd: restart daemon if IPv6 address changes OR new (Case DHCPv6)
- pppd: use pptp plugin maintaned by openwrt team instead of the one from accel-pptp
2024.4 2024.11.26
---------------------------
- busybox: update to 1.37.0
- php: update to 8.3.13
- nginx: update to 1.27.2
- sqlite: update to 3.47.0
- expat: update to 2.6.4
- dnsmasq: update to f006be7 (2024.10.04) snapshot
- libsodium: update to latest 1.0.20-stable
- nano: update to 8.2
- openssl-3.0: update to 3.0.15
- libcurl: update to 8.11.0
- rom: update CA bundle to 2024-09-24
- libjson-c: update to 0.18-20240915
- libjpeg-turbo: update to 3.0.4
- meson: update to 1.6.0
- libxml2: update to 2.13.5
- libpng: update to 1.6.44
- libzip: update to 1.11.2
- libubox: update to eb9bcb6 (2024-03-29) snapshot
- uqmi: update to 28b48a1 (2024-08-25) snapshot
- haveged: update to 1.9.19
- dropbear: update to 2024.86
- rp-pppoe: update to 4.0
- pppd: update to 2.5.1
- build: always install librt
- build: Makefile: openvpn: fix plugin support
- build: Makefile: tune e2fsprogs recipe
- build: Makefile: openvpn do not disable debug if TOMATO_EXPERIMENTAL flag is set
- build: Makefile: fix miniupnpd recipe for MIPS branch
- build: Makefile: set default mode for C/C++ depending on toolchain
- build: introduce EXTRA_CXXFLAGS
- GUI: Dynamic menu and Misc category
- GUI: basic-network.asp align table style for enable/disabled options (like the VLAN page)
- GUI: advanced-wlanvifs.asp - align table style for Enabled/Disabled options
- GUI: vpn-tinc.asp - align table style for Enable/Disable options
- GUI: status-data.jsx - tweaked thresholds for Amber and Red as they triggered too early
- GUI: Basic: DDNS: add form for custom interface name for "External IP Checker" in case of non-WAN mode (fix ARM #337)
- GUI: VPN: OpenVPN server: add ability to generate 2048 byte Diffie-Hellman parameters
- GUI: VPN: OpenVPN server: add support for ECDH key generation
- GUI: VPN: OpenVPN server: set ECDH key generation as default
- GUI: VPN: OpenVPN *: fix issue with (re)starting clients/servers when saving a page but clients/servers are down
- GUI: Port Forwarding: Basic: use ajax to refresh info on page
- GUI: Port Forwarding: Basic IPv6: use ajax to refresh info on page
- GUI: Basic: IPv6: use ajax to refresh info on page
- GUI: Administration: CIFS Client: use ajax to refresh info on page
- GUI: Port Forwarding: DMZ: use ajax to refresh info on page
- GUI: Misc: Access Restriction: use ajax to refresh info on page
- GUI: QoS: Classification: use ajax to refresh info on page
- GUI: Administration: JFFS: use ajax to refresh info on page; also some fixes
- GUI: Improve UPnP IGD & PCP/NAT-PMP
- accel-pptp: add support for pppd 2.5.x
- dnsmasq: update DNS records after pruning DHCP leases (added as a patch)
- httpd: add rel version to each .css script call
- libncurses: update recipe, add patches from openwrt
- minidlna: add patches from debian
- mwwatchdog - remove console warning when mwwatchdog_debug is set to NULL
- openvpn: enable (back) management on AIO or ARM images
- openvpn: show data & control channel handshakes only above log level 3 (verb 3); added as a patch
- pppd: remove patch 390 (MIPS only) as librt is now always added to the target
- pptpd: do not build plugins; tune recipe
- rc: transmission.c: correctly remove the blocklist directory on startup. Also tune tcp_adv_win_scale
- rom: openssl.cnf: add default commonName
- samba3: move recipes to router/Makefile and tune them
- samba: add clean sources of 3.6.25 and one patch instead
- switch4g: add weird PIN_STATUS because sometimes it happens
- transmission: patches: revert commit 66dbc261 (add ARC4 implementation inside transmission, disable it in openssl)
- www: tomato.css: define size of Ethernet Ports State (fix ARM #311)
- vpnrouting.sh: do not use nslookup
- vpnrouting.sh: fix order in stopRouting()
2024.3 2024.08.04
---------------------------
- libjpeg-turbo: update to 3.0.3
- libxml2: update to 2.13.3
- sqlite: update to 3.46.0
- libcurl: update to 8.9.1
- libsodium: update to latest 1.0.20-stable
- nginx: update to 1.27.0
- pptpd: update to 1.5.0
- openssl-3.0: update to 3.0.14
- meson: update to 1.5.1
- openvpn-2.5: update to 2.5.11
- wolfssl: update to 5.7.2-stable
- nano: update to 8.1
- nettle: update to 3.10
- miniupnpd: update to 2.3.7
- lz4: update to 1.10.0
- dnscrypt-proxy: update to latest git (security fix, fix usage with latest libsodium, ref: https://github.com/dyne/dnscrypt-proxy)
- openssl-1.1: add fixes for: kcs1-implicit-rejection, CVE-2024-2511, CVE-2024-4741, CVE-2024-5535
- adminer: update to 4.8.4
- build: add OpenSSL 3.0.13 to the tree
- build: add OpenSSL 3.0.x recipes, add patches and update needed scripts
- build: switch to openssl-3.0 only for AIO targets (RT-AC)
- build: add wolfSSL 5.7.0 to the tree
- build: wolfSSL: add recipe, needed patches and configuration
- build: add wolfssl support for mssl
- build: add wolfssl support for httpd
- build: add wolfssl support for mdu
- build: add wolfssl support for openvpn
- build: add wolfssl support for libcurl
- build: add wolfssl support for transmission
- build: add wolfssl support for nginx
- build: openvpn_plugin_auth_nvram: add wolfssl support
- build: update libfoo.pl and Makefile to latest OpenSSL 3.0.x; also adapt libfoo.pl to be one version for ARM and MIPS - use it also on ARM
- build: Makefile: libnfnetlink: is only needed when target is built with CONNTRACK_TOOLS
- build: Makefile/www: tune openssl options
- build: Makefile: libevent: we don't need ssl here, so let's remove it from the recipe
- build: Makefile: libcurl: use default value for 'with-random'
- build: Makefile: libzip: do not add insecure support for in-php AES zip encryption
- build: Makefile: openssl: always compile with no-cms
- build: Makefile: openssl: always compile with no-ec2m
- build: Makefile: openvpn: disable unit tests (2.5, 2.6), add lz4 flags (2.5)
- build: Makefile: openvpn (2.5, 2.6): enable smaller executable size (disable OCC, usage message, and verb 4 parm list) for non-AIO MIPS targets
- build: openvpn (all): do not compile with lzo support (security)
- build: Makefile: php: remove curl support
- build: Makefile: tincd is now built using the shared liblz4 library
- build: Makefile: transmission: add gnu99 std to CFLAGS
- build: Makefile: do not compile lz4 for the smallest targets
- build: Makefile: use cmake in libxml2 recipe
- build: Makefile: libevent: only install shared library if target built with BBT or TOR
- build: remove DONT_OPTIMIZE_SIZE for target Mega-VPN
- build: remove DONT_OPTIMIZE_SIZE for target Mega-VPN (RT-AC)
- build: remove openvpn 2.4 from the tree - MiniVPN is now compiled with openvpn 2.5
- build: stubby: fix log level (see: https://www.linksysinfo.org/index.php?threads/stubby-doesnt-log.78729/)
- build: transmission: patches: add ARC4 implementation inside transmission, disable it in openssl
- build: transmission: patches: disable webseeding, it causes 100% CPU usage in certain situations; apply DSCP to UDP sockets too - backport patch from the upstream
- build: wolfssl: add patch to fix compilation of 5.7.2 on MIPS
- build: fix compilation of php7 when libxml2 is installed on host
- GUI: advanced-ctnf.asp: refined page layout [rs232]
- GUI: Basic: DDNS: move Service dropdown to top
- GUI: Basic: Network: only display the wireless connection (WAN) types that are available for a given branch (fix ARM #328)
- GUI: basic-network.asp: fix saving in case wl radio order is not ascending (ex. normal order wl0, wl1, wl2, ... ) [Version 2] [M_ars]
- GUI: Basic: Time: layout improvement and some renaming [rs232]
- GUI: QoS: Classification: Display warning on the qos-classify page if classification has been nvram disabled, where QoS is enabled and set to HTB mode [rs232]
- GUI: Status: Overview: fix Signal Quality icon in wireless client mode
- GUI: Tools: Wireless Survey: Discouraging certain WiFi security protocols [rs232]
- GUI: Tools: Wireless Survey: Changed default table sorting by RSSI Descending (strongest to weakest) [rs232]
- GUI: Tools: Wireless Survey: Added SNR (Signal to Noise) to the table [rs232]
- GUI: Tools: Wireless Survey: added filter by frequency [rs232]
- adblock-v2: add internet connectivity test as a running condition [rs232]
- adblock-v2: use Internet test target from nvram mwan_chdst content if this contains any usable FQDN; if not default to google.com [rs232]
- adblock-v2: skip Internet test if no lists are defined (covers the case where domains are only defined locally) [rs232]
- adblock-v2: further improvement to the Internet test: running condition: also check if at least one list is enabled [rs232]
- httpd: openvpn.c: initialize buffer before use; also log static/dhparam key creation
- nvram_ops: add centralised console font & background color definition [rs232]
- nvram_ops: added ${reset} and corrected typo [rs232]
- rc: ddns.c: enable DDNS client 3 & 4
- rc: init.c: WNDR3400v2/v3 edit [txnative]
- rc: init.c: E3200 edit [txnative]
- rc: init.c: F9K1102 Edit/Remove [txnative]
- rc: network.c: set the wireless virtual interface hwaddr according to nvram and wait up to 100 ms to check the result [M_ars]
- rc: nginx.c: fix permissions for socket in case when run as 'nobody'
- rc: nocat.c: touch lease file if it doesn't exist yet
- rc: nocat.c: Use BRIDGE_COUNT to iterate through the lans [lancethepants]
- rc: service.c: miniupnpd: follow changes in config naming, also change default upnp_ssdp_interval to 900s
- rc: services.c: stop_services(): do not stop ntpd during router restart/upgrade
- rom: remove authorityKeyIdentifier from the Server cert generation [lancethepants]
- rom: also remove authorityKeyIdentifier for usr_cert [lancethepants]
- rom: update CA bundle to 2024-07-02
- transmission: dht: fix incorrect handling of want in find_closest_nodes
- www: add rel version to each .js script call
- www: add rel version to each .jsz script call
- www: add rel version to each .css script call
- www: advanced-ctnf.asp: fix appearance on advanced themes
- www: basic-ddns.asp: fix availability of external IP checker when using WET/Media Bridge/etc WAN mode
- www: tomato.css: tweaks centrally indent 1 & 2 (no need to add manually indent: 2 to every page now) and adds options for indent 3 & 4 [rs232]
- www: Makefile: fix display of QR Code when image is build without wireguard
2024.2 2024.05.19
---------------------------
- toolchain: add support for *at functions (haveged)
- toolchain: correct build script and replace ctype.h file with correct one after building toolchain
- toolchain: fix build break on Debian 11/12
- toolchain: build with MIPSR2 optimization for RT-N and RT-AC branch
- toolchain: update with latest changes to build scripts/options (MIPSR2 optimization)
- zlib: update to 1.3.1
- libcurl: update to 8.7.1
- libpng: update to 1.6.43
- libxml2: update to 2.12.6
- tinc: update to d9e42fa (2024-04-07) snapshot
- dnsmasq: update to b8ff4bb (2024-02-22) snapshot
- expat: update to 2.6.2
- busybox: updates from the upstream
- spawn-fcgi: update to 1.6.5
- nginx: update to 1.26.0
- meson: update to 1.4.0
- openvpn-2.5: update to 2.5.10
- tor: update to 0.4.7.16 - the last one that actually compiles on our ancient toolset
- sqlite: update to 3.45.3
- miniupnpd: update to 2.3.6
- dropbear: update to 2024.85
- libsodium: update to latest 1.0.19-stable
- libzip: update to 1.10.1
- libatomic_ops: update to 7.4.20
- build: Makefile: tune libcurl recipe (remove not used stuff - smaller size)
- build: Makefile: tune apcupsd recipe (smaller size)
- build: Makefile: mysql: at last build it with system zlib; do not waste time for mysql-test, support-files, sql-bench and man subdirs
- build: Makefile: minidlna: disable NLS support
- build: Makefile: clean more targets before every compilation
- build: Makefile: fix ntfs-3g recipe after latest changes to toolchain
- build: add haveged-1.9.18 to the tree
- build: add haveged to all MIPS RT-AC routers
- build: add haveged to RT-N66U and WNR3500Lv2 for RT-N branch
- build: add haveged to some Linksys E-Series targets with 60KB nvram
- build: add haveged to 32KB nvram Mega-VPN & AIO target at RT-N branch
- build: switch to php-7.2.34; use libzip for php compilation
- build: Makefile: php: do not build opcache module
- build: Makefile: php: do not build phpdbg module
- build: add TOR again to the o (Custom) target
- build: Update Dockerfile to Debian 12
- GUI: Administration: Admin Access: exclude ports 80 and 443 for remote GUI access for security reasons
- GUI: Administration: Admin Access: fix preparing url of redirect page in case of remote connection
- GUI: admin-access.asp - Add option to enable/disable httpd listening on IPv6 and VLAN interfaces
- GUI: basic-network.asp - fix saving in case wl radio order is not ascending (ex. normal order wl0, wl1, wl2, ... )
- GUI: tools-survey.asp - fix Wireless Site Survey if SSID contains a single quote (fix ARM #323)
- GUI: VPN: OpenVPN Client: add note about strict Kill Switch
- GUI: Status: Overview: fix Watchdog status display
- GUI: USB and NAS: Media Server: fix behaviour of the LAN boxes
- busybox: always add flock applet
- busybox: remove patch 160 because of updated toolchain (commit fc6df68)
- DHCPC: optionally prevent classless routes. Since this is used for iptv it cannot be disabled by default; recommended to turn it off when not using iptv, see CVE-2024-3661
- getdns: fix for broken trust anchor files are silently ignored
- openssl-1.1: add patches for CVE-2023-5678 and CVE-2024-0727
- php-7.2.34: add openwrt patches
- udpxy: Fixed uninitialized source address
- DDNS: multiWAN aware (fix ARM #65)
- ddns: increase the number of errors allowed before entering standby from 3 to 10
- discobery.sh: supports for any CIDR (no dependency to /24 any more) - network and broadcast IPs are now always excluded from the polling - works when brX IP address is not the first in the subnet
- httpd: config.c: do not close temp file created by mkstemp before using it
- httpd: upgrade.c: use mkstemp instead of dangerous mktemp; check for available memory first; correct argument in waitpid(); fix a few other issues
- httpd: etherstates - detect port info in one sscanf
- httpd: httpd.c - fix/add IPv6 listeners for MultiLAN setups (do not try to add IPv4 listeners twice)
- httpd: devlist.c: Loop through dhcp enabled interfaces using BRIDGE_COUNT
- httpd: wl.c - Add central channel for future updates to the GUI Wireless Survey
- httpd: wl.c - Add 802.11N+AC BSS capabilities for future updates to the GUI Wireless Survey
- mdu: in case of curl, also use a while loop to use more than one IP checker during a failed host check
- mdu: use getaddrinfo instead of the deprecated gethostbyname when building without libcurl
- mdu: also test for IP change if "Force next update" is checked
- mdu: support special case, when ifname is set to 'none' or proto is 'disabled' - use default WAN
- mdu: remove ieserver.net from the list of available services (down)
- mdu: remove DyNS from the list of available services (down)
- nvram: fix behavior of 'convert' option
- ntpd: try to monitor and restart it when it dies or doesn't start at all
- others: sysinfo: fix WL adapter name for 3rd wireless
- others: improve cru locking to prevent concurrent updates
- others: switch4: fix PIN status recognition on some modems
- others: switch4g: correct checking of CPIN status
- others: switch3g: fix PIN checker
- patches: nginx: fix little endian recognition, solve other issues
- rc: always enable 3G modem support and remove that option from the GUI
- rc: arpbind.c: stop_arpbind(): Skip header of /proc/net/arp
- rc: buttons.c: Limit WLAN button maximum duration to 120 seconds
- rc: bwlimit.c: refactor code to loop using BRIDGE_COUNT
- rc: firewall.c: fix remote administration (www/ssh) when DMZ is enabled
- rc: firewall.c: Use BRIDGE_COUNT to iterate throuh interfaces
- rc: ftpd.c: close fp before bailing when f fails to open
- rc: init.c: do not run remove_usb_module() [remove_usb_all_modules() now] on halt/reboot; some changes in order of removed services
- rc: init.c: current all parameters are no longer needed for both WNDR3400v2/v3 models, they lower wifi performance
- rc: nfs.c: Also free(buf) when returning on failed fopen
- rc: nginx.c: always try to kill php-cgi at nginx stop
- rc: openvpn.c: start_ovpn_client(): Initialize route_mode variable
- rc: services.c: start_ipv6_tunnel(): Fix undefined behavior in snprintf
- rc: services.s: use get_wanface() to properly check WAN ifaces in generate_mdns_config()
- rc: services.c: block Apple private relay
- rc: tor.c: refactor code to loop using BRIDGE_COUNT
- rc: usb.c: do not run remove_usb_modem_modules() by default - it may cause kernel panic (at least on MIPS RT-AC), enable it by setting 'remove_modem_modules' nvram variable
- rc: wan.c: restart DDNS not only on primary WAN
- rom: update CA bundle to 2024-03-11
- www: advanced-vlan.asp: wipe out relevant fields for inactive or just disabled WAN - needed in various places for the proper operation of FW
- www: advanced-vlan.asp: after editing, just reset mwan_num to 1 to avoid problems
- www: basic-time.asp: Show ntp info
- www: qos-{ctrate,qos-detailed}: Additional filter options
- www: tools-survey.asp - v1.01 - 11/05/24 - rs232
- Asus RT-N12 HP: fix saving country/rev selection starting with release 2022.4/5 (GUI: advanced-wireless.asp)
2024.1 2024.02.14
---------------------------
- dnsmasq: update to aa9e965 (2024-01-21) snapshot
- libcurl: update to 8.5.0
- libcap-ng: update to 0.8.4
- libpng: update to 1.6.41
- libjpeg-turbo: update to 3.0.2
- libid3tag: update to 0.16.3
- dropbear: update to 41a6abc (2023-12-31) snapshot
- miniupnpd: update to 2.3.4
- ntfs-3g: update to 75dcdc2 (2023-06-13) snapshot
- busybox: updates from the upstream
- wsdd2: update from the upstream
- uqmi: update to c3488b8 (2024-01-16) snapshot
- sqlite: update to 3.45.1
- libxml2: update to 2.12.4
- libsodium: update to latest 1.0.19-stable
- wireguard-tools: update to 1.0.20210914
- libubox: update to 6339204 (2023-12-18) snapshot
- build: Makefile: fix libcurl issue with http auth
- build: Makefile: fix compilation on Debian 12
- build: kernel: fix kernel warnings at generated shared_ksyms.c
- build: Makefile: on %-clean, do not forget to remove staged dirs
- GUI: advanced-wireless.asp - add Inactivity Timer option for Media Bridge Mode (60 up to 3600 sec)
- GUI: VPN: Tinc: tune a little status page
- mwwatchdog: tune cktracert() checker once again - it needs max hop value set to ~10
- rc: snmpd.c: log start/stop events
- switch4g/wwansignal: add timeouts to uqmi calls
- www: tomato.js: restore compatibility with older browsers
- www: tools-shell.asp: switch to our addEvent() function for better compatibility
2023.5 2023.12.21
---------------------------
- iperf: update to 3.15
- openssl-1.1: update to 1.1.1w
- libcurl: update to 8.4.0
- dnsmasq: update to 63ba726 (2023-12-03) snapshot
- libsodium: update to latest 1.0.19-stable
- sqlite: update to 3.44.2
- libjpeg-turbo: update to 3.0.1
- nginx: update to 1.25.3
- uqmi: update to eea2924 (2023-10-28) snapshot
- openvpn: update to 2.6.8
- irqbalance: update to 1.9.3
- libxml2: update to 2.11.6
- build: advanced themes for router with 4MB flash is just too much - shrink e1000v2i (Linksys E1000v2-v2.1/Cisco M10v2 MiniIPv6) and e1200v1i (Linksys E1200v1 MiniIPv6) targets
- build: libfoo.pl: fix path to libjpeg library
- build: Makefile: do not waste time installing libatomic_ops
- build: Makefile: use custom build without OpenVPN for n60 (Tenda N60) target (fixes #96 ARM)
- build: Makefile: align the images filename for each release to contain the relevant ARM version in the filename
- build: Makefile: split into different files for easier maintenance; tune a little versioning
- build: Makefile: compile rp-pppoe and pppd with -Os (for small images) or -O2 flag (other images like VPN, AIO, AIO_Lite, Mega)
- build: Makefile: fix pcre-install recipe
- build: Makefile: fix php recipe - build it with our pcre and also correct libjpeg-turbo support
- build: Makefile: compile smaller initial files
- busybox: add lsof applet to images
- dropbear: fix CVE-2023-36328
- GUI: basic-network.asp - allow Group Key Renewal from 0 (disabled) up to 30 days (2592000 sec)
- GUI: Status: Device List: add Wake on LAN for Media icon
- GUI: add an optional 'toggle to dark' switch
- GUI: Advanced: Routing: allow to add 'default' as a Destination (fix #301 ARM)
- GUI: Status: Overview: count reclaimable slab memory as a free memory (according to 'free')
- GUI: Port Forwarding: Basic/Basic IPv6/Triggered: fix tables width in Advanced themes and some html/css inconsistency; cosmetic
- GUI: Port Forwarding: Basic: sort "Src Address" and Int Address" columns by text like on Basic IPv6
- httpd: openvpn.c: remove the status from the generated OpenVPN client configuration - this may cause problems in some cases
- Media Bridge Mode (SDK6/SDK7/SDK714): reinitialize wl radio in case of connectivity loss (v2)
- nvram: add possibility to convert config backup file to readable nvram text file
- others: mwwatchdog: tune cktracert() a little
- rc: services.c: start rstats/cstats later and stop them earlier (should fix #213 ARM)
- rc/httpd: use tomato_version variable instead of nvram 'os_version'
- rc: Drastically improve slow boot times caused by USB mass storage
- rom: update CA bundle to 2023-12-12
- switch4g: add more complex PIN check for QMI modems; also some more fixes
- switch4g: do not use setpin.gcom script from gcom (comgt) package
- wanuptime: improve buffer validation (snprintf/strlcpy)
- WET / Media Bridge Mode: allow to use/enable Debug Mode for dnsmasq (via advanced-dhcpdns.asp)
- WET / Media Bridge Mode: allow to use/enable Adblock feature
- www: status-data.jsx: fix a small bug in displaying DNS addresses
- www: admin-iptraffic.asp: restart the firewall when enabling/disabling cstats
- www: status-data.jsx: DNS: make message about used DNS more precise
2023.4 2023.09.10
---------------------------
- libsodium: update to latest 1.0.18-stable
- minidlna: update to 1.3.3
- libcurl: update to 8.2.1
- tor: update to 0.4.7.14
- iperf: update to 3.14
- libjpeg-turbo: update to 3.0.0
- rom: update CA bundle to 2023-08-22
- gmp: update to 6.3.0
- libjson-c: update to 0.17-20230812
- nginx: update to 1.25.2
- sqlite: update to 3.43.0
- libxml2: update to 2.11.5
- openssl: update to 1.1.1v
- zlib: update to 1.3
- libpng: update to 1.6.40
- snmp: update to 5.9.4
- flac: update to 1.4.3
- dnsmasq: update to 3b5ddf3 (2023-09-02) snapshot
- ffmepg: update to 0.11.5 (resolves ARM #239)
- others: switch4g: extend waiting time for modem switching and its redetection
- Wireless Survey: optimize code for wl survey (GUI: tools-survey) - Part 2
- build: Makefile: compile Tenda N60 (n60) without PROXY enabled to save space
- build: get rid of pdureader - full of bugs, it's enough that comgt has its issues
- build: Makefile: adding F9K1102-init target
- build: Makefile: compile rp-pppoe and pppd with -Os flag only if we need smaller image (ie. for 4MB routers)
- build: Makefile: compile openssl-1.1 with -Os flag only if we need smaller images (example for 4 or 8 MByte routers) - arm branch/mips MEGA & AIO will use O3
- Adblock (DNS filtering): remove default domain blacklist URLs and save NVRAM space for all routers (no matter if 32, 64 or 128 KB)
- dnsmasq: set the default maximum DNS UDP packet size to 1232
- IPv6: show option6 dns-server (RDNSS) (GUI: advanced-dhcpdns.asp)
- Media Bridge Mode (SDK6/SDK7/SDK714): add ARPING (default 180 sec cycle) and improve stability
- mdu: fix Cloudflare DDNS when using curl
- QoS: remove default Outbound Direction configuration and save NVRAM space for all routers (no matter if 32, 64 or 128 KB)
- GUI: Administration: Access: move "Remote Web Port Protection" to "Admin Restrictions" section; also enable it by default
- GUI: Administration: Bandwidth Monitoring: add current date/router model/FW version to backup file
- GUI: Administration: IP Traffic Monitoring: add current date/router model/FW version to backup file
- GUI: Advanced: DHCP/DNS/TFTP: Add option to Show/Hide Stubby's resolvers
- GUI: Advanced: DHCP/DNS/TFTP: hide 'IPv6 DNS Server' forms when IPv6 is disabled
- GUI: Advanced: DHCP/DNS/TFTP: hide the rest of IPv6 options if IPv6 is disabled
- GUI: Status: Overview: add current operator to WWAN Modem Status also for QMI modems
- GUI: Advanced: DHCP/DNS/TFTP: hide "DHCP IPv6 lease time" options in case DHCPv6 PD
- GUI: USB and NAS: Media Server: fix correct port in status window link when using minidlna with random port
- GUI: Status: Overview: do not display days if they are equal to zero
- GUI: basic-ddns.asp - provide an additional variable for the IPv6 address in custom URLs for DDNS
- Revert "rc: services.c: start_ntpd(): run ntpd at high priority"
- httpd: improve buffer validation (strlcpy)
- httpd: iperf.c: sanitize host name
- others: wwansignal: start querying the modem only if the DIAGS file exists (it means that modem is detected with diags and probably already connected)
- others: switch4g: fix listing TTYs in QMI mode
- others: use shorter /dev/null redirection
- others: rename watchdog script to mwwatchdog to avoid confusion with the busybox applet
- rc: dhcp.c - adjust/improve bound event and avoid memory sharing issues
- rc: ftpd.c: Change the default ftpd admin login to 'root' to be consistent with the default router login
- rc: dhcp.c - adjust renew event and do not restart dnsmasq for WAN side route changes (resolves ARM #287)
- rc: init.c: remove "os_name" from nvram
- rc: ppp.c - adjust/improve code to avoid memory sharing issues
- rc: services.c: dnscrypt-proxy: in case of EDNS packet size is set lower than 1252 in dnsmasq, set it also here
- rc: services.c: we don't need extra logging when minidlna logs to syslog
- rc: wan.c - adjust/improve code to avoid memory sharing issues (+add some more comments)
- rom: Makefile: Escape single quotes (') in dnscrypt-resolvers.csv
- switch4g: move cdc_ether module to the end of the list
- wsdd2: Update patch with new location of smb.conf
- WWAN: improve display of SINR values for QMI modems
- www: advanced-dhcpdns.asp: remove dupe from Notes section
- www: advanced-vlan-r1.asp: add modification to enable Native VLAN support (allow one untagged vlan per port) by default
- www: tomato.js: allow to use onclick in elements (appended after verifyFields() essentially) created by the createFieldsTable() function
- Netgear WNDR3400v3: adjust default values for wl_txq_thresh, et_txq_thresh and wl_rpcq_rxthresh (--> explicitly for WiFi modules)
- Netgear WNDR3400v2: adjust default values for wl_txq_thresh, et_txq_thresh and wl_rpcq_rxthresh (--> explicitly for WiFi modules)
- Linksys E3200: adjust default values for wl_txq_thresh, et_txq_thresh and wl_rpcq_rxthresh (--> not explicitly for WiFi modules)
- Belkin F9K1102(v3): adjust default values for wl_txq_thresh, et_txq_thresh and wl_rpcq_rxthresh (--> explicitly for WiFi modules)
2023.3 2023.06.25
---------------------------
- busybox: update to 1.36.1
- libcurl: update to 8.1.2
- sqlite: update to 3.42.0
- libxml2: update to 2.11.4
- nginx: update to 1.25.1
- openssl-1.1: update to 1.1.1u
- libsodium: update to latest 1.0.18-stable
- libubox: update to 75a3b87 (2023-05-23) snapshot
- dnsmasq: update to 9bbf098 (2023-05-26) snapshot
- nettle: update to 3.9.1
- util-linux: update to 2.39
- libusb: update to d5bb64b (2020-01-24) snapshot
- adblock v2: update to 2.72b
- dhcp6c: add signal handling of SIGINT and fflush
- getdns/stubby: fix the IP of one of the OpenDNS servers
- stubby: add getdnsapi.net DNS to the resolver list
- stubby: remove Surfnet/Sinodun DNS from the list - it doesn't work anymore
- rstats (Bandwidth Monitoring): add rstats nvram variables only if feature is enabled (clean-up nvram at boot/re-boot)
- cstats (IP Traffic Monitoring): add cstats nvram variables only if feature is enabled (clean-up nvram at boot/re-boot)
- FTP Server: add ftp nvram variables only if feature is enabled (clean-up nvram at boot/re-boot)
- SNMP: add snmp nvram variables only if feature is enabled (clean-up nvram at boot/re-boot)
- UPnP: add upnp nvram variables only if feature is enabled (clean-up nvram at boot/re-boot)
- httpd: improve buffer handling
- httpd: increase buffer for get_wl_tempsense(); also use proper site_t buffer in snprintf
- shared/rc/httpd: improve buffer validation (strlcat_r)
- bsd/eapd/wlconf: fix build break (strlcat_r)
- mdu: fix compilation in case if built without libcurl; avoid compiler warnings
- mdu: fix segfault in curl_headers() when adding more than one header at a time
- mdu: add addtional headers for wget()
- mdu: fix basic auth in update_wget() when built with libcurl
- mdu: mdu.c: improve buffer handling
- mdu: allow the user to specify a custom polling period for External IP address checker
- mdu: rewrite the part responsible for obtaining the external IP address
- GUI: Basic: DHCP Reservation: properly initialize 'Static lease time' on page load
- GUI: admin-iptraffic.asp - add note about IPv4 only (no support for IPv6)
- GUI: advanced-wireless.asp - add Optimized for Xbox option
- GUI: Advanced: DHCP/DNS/TFTP: allow to ignore DHCP requests from unknown devices on each bridge individually
- GUI: Basic: Network: fix visibility of 'AP MAC Address to connect' option
- GUI: bwlimit.asp - add checks for Multi-LAN setups
- GUI: Basic: DDNS Client: use ajax to refresh info on page
- GUI: VPN Tunneling: OpenVPN Client: Routing Policy: add more thorough domain validation
- shared: misc.c: get_dns(): really add received DNS servers to the static DNS server list
- Revert "rp-pppoe: update to 3c0f6c02 (2023-02-08) snapshot"
- rc: init.c: fix restart of some services when using SIGHUP on init (resolves #284)
- rc: transmission.c: fix port forwarding for IPv6
- rc: wan.c: fix restart of some services in WET mode (resolves #91)
- rc: do not waste time and resources if IPv6 is disabled
- rc: jffs2.c - do not delete (automatically) jffs if mounting fails (show error only)
- rc: ddns.c: distinguish addrcache and dump file depending on the unit number
- rc: ftpd.c: fix bug where in some cases FW rules to open WAN port were not removed
- rc: nginx.c: fix bug where in some cases FW rule to open WAN port was not removed
- rc: mysql.c: Fix copying adminer.php to nginx_docroot
- rom: update CA bundle to 2023-05-30
- WL (SDK6 and up!): show & provide all valid WiFi 5 (AC / 80 MHz) control channels (lower-lower [LL], lower-upper [LU], upper-lower [UL], upper-upper [UU])
2023.2 2023.03.18
---------------------------
- WL Client / Media Bridge / Wireless Ethernet Bridge: add AP MAC (xx:xx:xx:xx:xx:xx) to scan and join (--> try to connect to that specific MAC with SSID "ABCDEF")
- libcurl: update to 7.88.1
- libjpeg-turbo: update to 2.1.5.1
- libsodium: update to latest 1.0.18-stable
- miniupnpd: update to 2.3.3
- rp-pppoe: update to 3c0f6c02 (2023-02-08) snapshot
- sqlite: update to 3.41.1
- e2fsprogs: update to 1.47.0
- openvpn-2.5: update to 2.5.9
- dnscrypt-proxy: update resolvers csv file
- rom: update CA bundle to 2023-01-10
- dnsmasq: add safe-mode + TFTP
- build: scripts: added PATH directive to avoid conflicts with entware/optware
- build: sync to MIPS RT-N/AC & ARM branch (WL Client / Media Bridge / Wireless Ethernet Bridge: add AP MAC (xx:xx:xx:xx:xx:xx) to scan and join)
- GUI: vpn-server.asp: corrected "Uncrypted" for "Unencrypted"
- GUI: VPN Tunneling: add Wireguard page (for now only with link to the wiki howto)
- GUI: DHCP / DNS / TFTP: clean-up
- Revert "GUI: add new default theme"
- others: entware-install-MIPS.sh: use the full path when calling programs
- rc: fix logdrop bevaviour (if enabled)
- rc: init.c: wndr3400v2/v3 add missing QTD params
- rc: transmission.c: fix port forwarding (UDP)
- rc: transmission.c: revert changes from 4c4f653 - everything works just fine
- rc: wan.c: fix commit 80a7e66
- shared: led.c: wndr3400v2 set active high for AOSS
2023.1 2023.02.17
---------------------------
- busybox: update to 1.36.0
- libpng: update to 1.6.39
- libsodium: update to latest 1.0.18-stable
- nano: update to 7.2
- tor: update to 0.4.7.13
- nginx: update to 1.23.3
- ffmpeg: update to 0.7.17
- libjpeg-turbo: add clean sources of 2.1.4
- dropbear: updates from the upstream
- sqlite: update to 3.40.1
- pppd: update to 2.4.9
- adblock: update to 2.71e
- libcurl: update to 7.87.0
- getdns: update to 1.7.3; refresh patches
- libubox: update to eac92a4 (2023-01-03) snapshot
- miniupnpd: update to 2.3.2; refresh patches
- libncurses: update to 6.4
- dnsmasq: update to 2.89
- openssl-1.1: update to 1.1.1t
- build: remove no more needed jpeg package from the tree
- GUI: add "Scroll to bottom" also at the bottom of the status-log page
- GUI: adjusting "Refresh Every" to "One off"
- GUI: Advanced: Firewall: add note about custom config file for igmpproxy
- GUI: advanced-wireless.asp - remove afterburner option (for SDK6 and up!)
- GUI: USB and NAS: BitTorrent Client: extend character limit on the input field for blocklist url to 256
- GUI: USB and NAS: Media Server: fixes/improvements
- GUI: USB and NAS: File Sharing: use checkboxes to select interfaces; also change location of samba configuration file (/etc/samba/smb.conf)
- minidlna: use syslog instead of a log file; added as a patch
- others: Makefile: also add ntp2ip script when image is built with dnscrypt-proxy but without stubby (resolves #90)
- rc: openvpn.c: remove ignoring directives for IPv6 for OpenVPN client
- rc: samba.c: correct 'server string'
- rc: services.c: start_media_server(): correct friendly_name, album_art_names; add model_name
- rc: service.c: start_upnp(): correct friendly_name
- rc: transmission.c: only add bind to generated config if it's not already added in custom config
- www: tomato.js: allow the hostname to be all digits as per RFC
- www: add new favicon (thanks @rs232)
- init.c: E2500 update/modify nvram defaults
2022.7 2022.12.20
---------------------------
Note: the upgrade is highly recommended for users using Routing Policy in the OpenVPN client due to a major issue related to it.
- busybox: update to 1.35.0
- dropbear: update to 2022.83
- tor: update to 0.4.7.11
- zlib: update to 1.2.13
- xl2tpd: update to 1.3.18
- sqlite: update to 3.40.0
- libpng: update to 1.6.38
- nano: update to 7.0