OPNSense/core 79286a7src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterBaseController.php

Guard all Savepoint Actions additionally as they can interact directly with the config in some instances
DeltaFile
+9-4src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+9-41 files

OPNSense/core 10bd064src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseField.php, src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes AutoNumberFieldTest.php TextFieldTest.php

mvc: BaseField: add basic count() helper
DeltaFile
+22-22src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AutoNumberFieldTest.php
+21-22src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/TextFieldTest.php
+9-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php
+52-443 files

OPNSense/core 5f5aa92src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseField.php

allow zero count on container, needs unit test later
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php
+1-11 files

OPNSense/core 2134ce2src/opnsense/mvc/script run_validations.php

mvc: remove unused import
DeltaFile
+0-2src/opnsense/mvc/script/run_validations.php
+0-21 files

OPNSense/core fe6a530src/opnsense/mvc/app/views/OPNsense/Auth priv.volt

System: Access: Privileges: remove add/delete from page

(cherry picked from commit 3c5ae0f3b3d72e15efd852061a77d85c43bc3d74)
DeltaFile
+3-3src/opnsense/mvc/app/views/OPNsense/Auth/priv.volt
+3-31 files

OPNSense/core 383c5e9src/opnsense/scripts/system sysctl.py

system: only split first colon when reading sysctls

(cherry picked from commit 293e645d89edb53c7f3fd2388740f28f5ec50346)
(cherry picked from commit 791cc6f573a0b67808c7189544890c43c700f17f)
DeltaFile
+1-1src/opnsense/scripts/system/sysctl.py
+1-11 files

OPNSense/core 6ef039fMk git.mk

make: prevent error in new vim grepping step

(cherry picked from commit ea6f7103f1e27126abb3552cf30819c032b4549e)
DeltaFile
+1-1Mk/git.mk
+1-11 files

OPNSense/core 1d78fa5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterBaseController.php FilterController.php

Firewall: Use save method from ApiMutableModelControllerBase for log command, move rule command and savepoint action
DeltaFile
+3-5src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+1-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+4-72 files

OPNSense/core b9b597bsrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseField.php, src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes AutoNumberFieldTest.php TextFieldTest.php

mvc: BaseField: add count()
DeltaFile
+21-22src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AutoNumberFieldTest.php
+21-22src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/TextFieldTest.php
+9-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php
+51-443 files

OPNSense/core ea6f710Mk git.mk

make: prevent error in new vim grepping step
DeltaFile
+1-1Mk/git.mk
+1-11 files

OPNSense/core 3c5ae0fsrc/opnsense/mvc/app/views/OPNsense/Auth priv.volt

System: Access: Privileges: remove add/delete from page
DeltaFile
+3-3src/opnsense/mvc/app/views/OPNsense/Auth/priv.volt
+3-31 files

OPNSense/core 791cc6fsrc/opnsense/scripts/system sysctl.py

system: symmetry for all 3 split column callers in previous
DeltaFile
+1-1src/opnsense/scripts/system/sysctl.py
+1-11 files

OPNSense/core b4d33d1src/opnsense/scripts/kea kea_prefix_watcher.py

No we still have do add state into the mix or the route lazy drop will not work anymore
DeltaFile
+2-1src/opnsense/scripts/kea/kea_prefix_watcher.py
+2-11 files

OPNSense/core c049664src/opnsense/scripts/filter/lib/alias __init__.py bgpasn.py

Firewall: Aliases - fix typo in error log (remove url as it has no value anyway) and make parser a bit more resilient by trapping all errors. closes https://github.com/opnsense/core/issues/10168

(cherry picked from commit 5b6913a0df45577f31a6a7777702cf876897c79e)
(cherry picked from commit 4e939d528cc7d4e38c1bfe777b71e1772fcc6edc)
DeltaFile
+3-2src/opnsense/scripts/filter/lib/alias/__init__.py
+1-1src/opnsense/scripts/filter/lib/alias/bgpasn.py
+4-32 files

OPNSense/core 4e939d5src/opnsense/scripts/filter/lib/alias bgpasn.py

firewall: small whitespace issue in prev
DeltaFile
+0-1src/opnsense/scripts/filter/lib/alias/bgpasn.py
+0-11 files

OPNSense/core f251331src/opnsense/scripts/kea kea_prefix_watcher.py

Remove duplicate state check, add documentation for the possible states
DeltaFile
+4-3src/opnsense/scripts/kea/kea_prefix_watcher.py
+4-31 files

OPNSense/core 5452c5bsrc/opnsense/mvc/app/models/OPNsense/Base/Menu MenuItem.php

system: minor style update in new menu code
DeltaFile
+5-6src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+5-61 files

OPNSense/core 8c6b3e0. plist, src/opnsense/scripts/firmware/repos FreeBSD.php OPNsense.php

firmware: moved FreeBSD.php duty to opnsense-update

PR: https://github.com/opnsense/update/commit/aeb88a8fb9
(cherry picked from commit 0175c1e1f0a263fc2ef640f485a60f45d5448b7d)
DeltaFile
+0-33src/opnsense/scripts/firmware/repos/FreeBSD.php
+3-2src/opnsense/scripts/firmware/repos/OPNsense.php
+0-1plist
+3-363 files

OPNSense/core 400dc45src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Services: Kea DHCPv4/v6: Remove depend constraint of ddns_reverse_zone (#10182)

Since ddns_forward_zone already depends on ddns_dns_server, and the config generator bails if either of these are empty we do not need to protect ddns_reverse_zone in any specific way right now.

It's a good idea to keep it this way, only populating a reverse zone is very uncommon, and ISC also tethered it to the forward zone being there.

(cherry picked from commit 4a1d6cf0851940f352f6d414240792c9f66be91a)
DeltaFile
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-182 files

OPNSense/core c82e874src/opnsense/mvc/app/controllers/OPNsense/Routing/Api SettingsController.php

system: small note on legacy bindings
DeltaFile
+1-0src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php
+1-01 files

OPNSense/core d9e4f1dsrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml dialogSubnet4.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv4.xml

Kea: DHCPv4/v6: DDNS dns server port can now be specified, default will remain 53 (#10183)

(cherry picked from commit 7eea65839c919cb76a24d7d9d3f48fbfd8befa3d)
DeltaFile
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+3-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+31-45 files

OPNSense/core 136c360src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv4.xml

Services: Kea DHCPv4/v6: add explicit reverse DDNS zones support (#10123)

---------

Co-authored-by: XtraLarge <20318559+XtraLarge at users.noreply.github.com>
Co-authored-by: Monviech <79600909+Monviech at users.noreply.github.com>
(cherry picked from commit db41dfce2e67be3f6d3fd676ba5a47e7ef182d66)
DeltaFile
+21-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+9-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+9-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+63-05 files

OPNSense/core 4a2aa5csrc/www system_general.php

system: shorten static route collection code here

(cherry picked from commit 7e000a945439678d25ad769eda546ea24dc319d7)
(cherry picked from commit 9a9b1ae078db7f9c79ee7eab71cfe9c29261cb7f)
DeltaFile
+2-3src/www/system_general.php
+2-31 files

OPNSense/core 6d9ecaesrc/etc/inc util.inc

system: add compatibility layer to future route disable/enable migration
DeltaFile
+7-3src/etc/inc/util.inc
+7-31 files

OPNSense/core 2cd0c29src/etc/inc/plugins.inc.d kea.inc

Add an explicit empty argument for backend parser
DeltaFile
+1-0src/etc/inc/plugins.inc.d/kea.inc
+1-01 files

OPNSense/core 0c853dasrc/etc/inc/plugins.inc.d kea.inc, src/opnsense/scripts/kea kea_prefix_watcher.py

We do not need argparse or parameters anymore
DeltaFile
+1-5src/opnsense/scripts/kea/kea_prefix_watcher.py
+1-2src/etc/inc/plugins.inc.d/kea.inc
+2-72 files

OPNSense/core 7e514fasrc/opnsense/scripts/kea kea_prefix_watcher.py

Time is still needed for polling
DeltaFile
+1-0src/opnsense/scripts/kea/kea_prefix_watcher.py
+1-01 files

OPNSense/core d5d48c4src/etc/inc/plugins.inc.d kea.inc

Make interval parameter explicit
DeltaFile
+1-1src/etc/inc/plugins.inc.d/kea.inc
+1-11 files

OPNSense/core 00052a5src/opnsense/scripts/kea kea_prefix_watcher.py

Use state instead of time based mechanism to decide of lease is still valid
DeltaFile
+4-6src/opnsense/scripts/kea/kea_prefix_watcher.py
+4-61 files

OPNSense/core 3221a9fsrc/etc/inc/plugins.inc.d kea.inc, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Services: Kea DHCPv4/v6: Use KeaCtrl python lib for kea_prefix_watcher to switch to polling the socket instead of streaming the csv lease files. The running configuration has structured output, and we stay in memory without needing to read and parse any files. The tradeoff is that we always have to process the full set of leases, yet by using lease6-get-page which is especially made for efficient bulk operations, this should be rather cheap. The main benefit is we always work with structured json data, can filter for ID_PD better, and reprocess the full truth on every poll interval to ensure the whole setup is self-healing
DeltaFile
+53-63src/opnsense/scripts/kea/kea_prefix_watcher.py
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+2-2src/etc/inc/plugins.inc.d/kea.inc
+67-653 files