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

OPNSense/core 221181fsrc/opnsense/mvc/app/library/OPNsense/Auth Radius.php

radius: use Framed-IPv6-Address (attr 168) in case of an IPv6 address. Closes https://github.com/opnsense/core/issues/10152

(cherry picked from commit 4da7b63381e1f5255603ee3b945ddd9ee07bb8b0)
(cherry picked from commit 39ef3501da9407193221905fe9e07baee6264289)
DeltaFile
+10-2src/opnsense/mvc/app/library/OPNsense/Auth/Radius.php
+10-21 files

OPNSense/tools 6ff9fadcomposite custom.sh

composite/custom: extra argument default was wrong
DeltaFile
+5-1composite/custom.sh
+5-11 files

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

Services: Kea DHCPv4/v6: DDNS add ddns-override-no-update, ddns-override-client-update and ddns-update-on-renew per subnet (#10188)
DeltaFile
+36-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+36-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+84-06 files

OPNSense/core 1ce6b3fsrc/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php

Services: Kea DHCPv4/v6: Add missing isEnabled() for https://github.com/opnsense/core/commit/61055b93153202e73be8ffb3f01bba5c08a55118 (#10189)
DeltaFile
+5-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+5-01 files

OPNSense/tools b3c29c7. README.md Makefile, composite factory.sh custom.sh

composite: move "factory" target to custom script

It's mostly the same and the indirection through custom
is annoying to work with.  Since it is just a helper for
the VM image type don't document it further.
DeltaFile
+0-41composite/factory.sh
+20-10composite/custom.sh
+0-4README.md
+1-1Makefile
+21-564 files

OPNSense/core d39a6e6src/opnsense/mvc/app/library/OPNsense/Auth Radius.php

radius: use Framed-IPv6-Address (attr 168) in case of an IPv6 address. Closes https://github.com/opnsense/core/issues/10152

(cherry picked from commit 4da7b63381e1f5255603ee3b945ddd9ee07bb8b0)
DeltaFile
+6-2src/opnsense/mvc/app/library/OPNsense/Auth/Radius.php
+6-21 files

OPNSense/core a2c1417src/opnsense/mvc/app/library/OPNsense/Auth Radius.php

system: style sweep wants to reorder this

(cherry picked from commit 39ef3501da9407193221905fe9e07baee6264289)
DeltaFile
+8-4src/opnsense/mvc/app/library/OPNsense/Auth/Radius.php
+8-41 files

OPNSense/core 39ef350src/opnsense/mvc/app/library/OPNsense/Auth Radius.php

system: style sweep wants to reorder this
DeltaFile
+8-4src/opnsense/mvc/app/library/OPNsense/Auth/Radius.php
+8-41 files

OPNSense/core 4da7b63src/opnsense/mvc/app/library/OPNsense/Auth Radius.php

radius: use Framed-IPv6-Address (attr 168) in case of an IPv6 address. Closes https://github.com/opnsense/core/issues/10152
DeltaFile
+6-2src/opnsense/mvc/app/library/OPNsense/Auth/Radius.php
+6-21 files

OPNSense/core 51361afsrc/etc/inc filter.lib.inc console.inc, src/etc/inc/plugins.inc.d pf.inc core.inc

src: a few "foreach ($config" iterations switched to config_read_array()

Usual cleanups while at it.
DeltaFile
+39-43src/etc/inc/plugins.inc.d/pf.inc
+27-29src/etc/inc/filter.lib.inc
+13-17src/etc/inc/plugins.inc.d/core.inc
+10-14src/etc/inc/console.inc
+8-9src/etc/rc.subr.d/livemode
+11-4src/opnsense/scripts/filter/list_legacy_rules.php
+108-1165 files not shown
+129-13511 files

OPNSense/core 61055b9src/etc/inc/plugins.inc.d kea.inc, src/opnsense/mvc/app/controllers/OPNsense/Kea/forms ddnsSettings.xml

Services: Kea DHCPv4/v6: Add DDNS manual config override (#10187)
DeltaFile
+5-2src/etc/inc/plugins.inc.d/kea.inc
+7-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/ddnsSettings.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.xml
+13-23 files

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

Services: Kea DHCPv4/v6: DDNS add ddns-override-no-update, ddns-override-client-update and ddns-update-on-renew per subnet
DeltaFile
+36-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+36-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+84-06 files

OPNSense/core 8387db3src/etc/inc/plugins.inc.d kea.inc, src/opnsense/mvc/app/controllers/OPNsense/Kea/forms ddnsSettings.xml

Services: Kea DHCPv4/v6: Add DDNS manual config override
DeltaFile
+5-2src/etc/inc/plugins.inc.d/kea.inc
+7-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/ddnsSettings.xml
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.xml
+13-23 files

OPNSense/core 19eaeb6src/opnsense/mvc/app/controllers/OPNsense/Cron/forms dialogEdit.xml, src/opnsense/mvc/app/models/OPNsense/Cron Cron.xml

system: improve cron parameter handling; closes #10075
DeltaFile
+18-15src/opnsense/mvc/app/controllers/OPNsense/Cron/forms/dialogEdit.xml
+1-3src/opnsense/service/templates/OPNsense/Cron/user.cron
+1-1src/opnsense/mvc/app/models/OPNsense/Cron/Cron.xml
+20-193 files

OPNSense/core 4a94e60src/opnsense/mvc/app/models/OPNsense/Base/Menu MenuSystem.php

system: moved ISC DHCP plugin registrations to new home
DeltaFile
+0-65src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php
+0-651 files

OPNSense/plugins 12e13fcnet/isc-dhcp Makefile pkg-descr, net/isc-dhcp/src/opnsense/mvc/app/models/OPNsense/DHCPv4/Menu Menu.php

net/isc-dhcp: add isolated menu registration code
DeltaFile
+98-0net/isc-dhcp/src/opnsense/mvc/app/models/OPNsense/DHCPv4/Menu/Menu.php
+1-1net/isc-dhcp/Makefile
+1-0net/isc-dhcp/pkg-descr
+100-13 files

OPNSense/core dfdadb6src/opnsense/mvc/app/models/OPNsense/Base/Menu MenuItem.php MenuContainer.php, src/opnsense/mvc/app/models/OPNsense/Firewall/Menu Menu.php

mvc: style sweep
DeltaFile
+1-2src/opnsense/mvc/app/models/OPNsense/Interfaces/Menu/Menu.php
+1-1src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+1-1src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuContainer.php
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.php
+4-54 files

OPNSense/core 8b13deasrc/opnsense/mvc/app/models/OPNsense/Base/Menu MenuSystem.php MenuItem.php, src/opnsense/mvc/app/models/OPNsense/Firewall/Menu Menu.php

MVC: add support for pluggable dynamic menu items and move some existing parts out of the MenuSystem class (#10113)

* MVC: add support for pluggable dynamic menu items and move some existing parts out of the MenuSystem class

In most cases we use static menu registartions, but there are exceptions which depend on interfaces for example.
While looking at https://github.com/opnsense/core/pull/10033, a longer standing wish came up again, which is the reason to add this support right now. It also helps in removing some legacy components for good via plugins.

To register new menu items, the following pattern may be used:

* In your model, derive a Menu class from MenuContainer
* implement a method collect() which should add new menu items via the appendItem() {bound to appendItem in MenuSystem}

Always try to minimize the amount of code inside these plugins as this code will be executed on each page load.

* menusystem: simplify class generation for links and add some support to be used for favorites.

This commit offers a couple of things, first of all it adds a unique class name on every traversable menu item so we can easily use javascript to pass a click event, for example:

$(".menu_ref_7e46272fe380827861cbaf5b484c43c9")[0].click()

    [5 lines not shown]
DeltaFile
+59-163src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php
+129-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Menu/Menu.php
+98-0src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.php
+58-0src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuItem.php
+49-0src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuContainer.php
+8-8src/opnsense/mvc/app/views/layout_partials/base_menu_system.volt
+401-1712 files not shown
+412-1798 files

OPNSense/tools bf85679. Makefile, composite factory.sh custom.sh

composite: support more flexibility in custom/factory builds
DeltaFile
+4-3composite/factory.sh
+3-2composite/custom.sh
+2-0Makefile
+9-53 files

OPNSense/core 6f48d0fsrc/opnsense/mvc/app/views/layouts default.volt

ui: change generic error trap to exclude upgradestatus messages and prevent multiple instances being created, which prevents the user being spammed faster than he/she can close dialogs.
DeltaFile
+9-1src/opnsense/mvc/app/views/layouts/default.volt
+9-11 files

OPNSense/core 7eea658src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.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)
DeltaFile
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.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 6241ea5src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.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
DeltaFile
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+13-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.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 4a1d6cfsrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.xml KeaDhcpv4.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.
DeltaFile
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-9src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+0-182 files

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

Services: Kea DHCPv4/v6: Remove depend constraint of ddns_reverse_zone

Since ddns_forward_zone already depends on ddns_ddns_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.
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 293e645src/opnsense/scripts/system sysctl.py

system: only split first colon when reading sysctls
DeltaFile
+1-1src/opnsense/scripts/system/sysctl.py
+1-11 files

OPNSense/core db41dfcsrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet4.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDdns.php KeaDhcpv6.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>
DeltaFile
+21-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDdns.php
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+12-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.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