OPNSense/core 9b93f84src/opnsense/mvc/app/controllers/OPNsense/Kea/Api LeasesController.php, src/opnsense/mvc/app/views/OPNsense/Kea leases6.volt leases4.volt

Services: Kea DHCPv4/6: Build reservation status from control socket output, so it matches the scope of individual subnet (#10276)

* Services: Kea DHCPv4/6: Build reservation status from control socket output, so it matches the scope of individual subnets as well. Add client-id since it's relevant for IPv4 leases as well in default configuration.

We return an array now, change frontend detection if it's dynamic or static lease

Missed a closing bracket

Typo in client_id

Remove unused imports in LeasesController

Add comment to build_reserved_matches() to explain why the subnet-id logic exists now

* Add state as well, helpful for troubleshooting

* Add a state formatter to convert number status into their documented meaning

* Some data-width micro management
DeltaFile
+63-2src/opnsense/scripts/kea/get_kea_leases.py
+0-37src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/LeasesController.php
+16-5src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+15-3src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+94-474 files

OPNSense/core 48da1cesrc/opnsense/mvc/app/models/OPNsense/Unbound/ACL ACL.xml

Rename Unbound service display name in ACL.xml (#10278)
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Unbound/ACL/ACL.xml
+1-11 files

OPNSense/core 6d94603src/opnsense/mvc/app/views/OPNsense/Diagnostics traffic.volt

Reporting: Traffic - add Max on Y axis for traffic graphs, closes https://github.com/opnsense/core/pull/10277
DeltaFile
+67-16src/opnsense/mvc/app/views/OPNsense/Diagnostics/traffic.volt
+67-161 files

OPNSense/core e6ccdb9src/opnsense/mvc/app/views/OPNsense/Kea leases4.volt leases6.volt

Some data-width micro management
DeltaFile
+2-2src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+2-2src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+4-42 files

OPNSense/core 5658743src/opnsense/mvc/app/views/OPNsense/Kea leases4.volt leases6.volt

Add a state formatter to convert number status into their documented meaning
DeltaFile
+12-2src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+12-2src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+24-42 files

OPNSense/tools eb160feconfig/26.1 make.conf

config: options stage complains about this

I expect they will swtich back at some point which would
break this but let's get rid of the error.
DeltaFile
+1-1config/26.1/make.conf
+1-11 files

OPNSense/tools 2564cf1config/26.1 aux.conf

config: change 1.24 for 1.26

lang/go124||2026-03-12|Has expired: End of life--please switch to go125 or go126
DeltaFile
+1-1config/26.1/aux.conf
+1-11 files

OPNSense/core 1bd4617src/opnsense/mvc/app/views/OPNsense/Kea leases4.volt leases6.volt, src/opnsense/scripts/kea get_kea_leases.py

Add state as well, helpful for troubleshooting
DeltaFile
+1-0src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+1-0src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+1-0src/opnsense/scripts/kea/get_kea_leases.py
+3-03 files

OPNSense/plugins 7f87ba3security/q-feeds-connector/src/opnsense/mvc/app/controllers/OPNsense/QFeeds/Api SettingsController.php, security/q-feeds-connector/src/opnsense/scripts/qfeeds/lib __init__.py

security/q-feeds-connector - use local file timestamp for feed updated_at, closes https://github.com/opnsense/plugins/issues/5415
DeltaFile
+4-1security/q-feeds-connector/src/opnsense/scripts/qfeeds/lib/__init__.py
+1-1security/q-feeds-connector/src/opnsense/mvc/app/controllers/OPNsense/QFeeds/Api/SettingsController.php
+5-22 files

OPNSense/core 8326012src/opnsense/scripts/captiveportal/lib ipfw.py

shorten this
DeltaFile
+2-8src/opnsense/scripts/captiveportal/lib/ipfw.py
+2-81 files

OPNSense/core ebcde59src/opnsense/scripts/captiveportal/lib ipfw.py

improve comment here
DeltaFile
+1-1src/opnsense/scripts/captiveportal/lib/ipfw.py
+1-11 files

OPNSense/core 5f53f22src/opnsense/scripts/captiveportal/lib ipfw.py arp.py

Captive Portal: arp entries overwritten here, do not check tables as it's not necessary
DeltaFile
+2-3src/opnsense/scripts/captiveportal/lib/ipfw.py
+3-1src/opnsense/scripts/captiveportal/lib/arp.py
+5-42 files

OPNSense/core 180fcb4src/opnsense/mvc/app/controllers/OPNsense/Kea/Api LeasesController.php, src/opnsense/mvc/app/views/OPNsense/Kea leases6.volt leases4.volt

Services: Kea DHCPv4/6: Build reservation status from control socket output, so it matches the scope of individual subnets as well. Add client-id since it's relevant for IPv4 leases as well in default configuration.

We return an array now, change frontend detection if it's dynamic or static lease

Missed a closing bracket

Typo in client_id

Remove unused imports in LeasesController

Add comment to build_reserved_matches() to explain why the subnet-id logic exists now
DeltaFile
+62-2src/opnsense/scripts/kea/get_kea_leases.py
+0-37src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/LeasesController.php
+4-4src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+3-2src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+69-454 files

OPNSense/core 85af173src/opnsense/scripts/kea get_kea_leases.py

Add comment to build_reserved_matches() to explain why the subnet-id logic exists now
DeltaFile
+7-0src/opnsense/scripts/kea/get_kea_leases.py
+7-01 files

OPNSense/core 4c41fb9src/opnsense/mvc/app/controllers/OPNsense/Kea/Api LeasesController.php

Remove unused imports in LeasesController
DeltaFile
+0-2src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/LeasesController.php
+0-21 files

OPNSense/core 4625ef7src/opnsense/mvc/app/views/OPNsense/Kea leases4.volt

Typo in client_id
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+1-11 files

OPNSense/core 01d1ae3src/opnsense/mvc/app/views/OPNsense/Kea leases6.volt

Missed a closing bracket
DeltaFile
+1-0src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+1-01 files

OPNSense/core fcfc206src/opnsense/mvc/app/views/OPNsense/Kea leases6.volt leases4.volt

We return an array now, change frontend detection if it's dynamic or static lease
DeltaFile
+4-5src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+2-2src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+6-72 files

OPNSense/core ba6883asrc/opnsense/mvc/app/controllers/OPNsense/Kea/Api LeasesController.php, src/opnsense/mvc/app/views/OPNsense/Kea leases4.volt

Services: Kea DHCPv4/6: Build reservation status from control socket output, so it matches the scope of individual subnets as well. Add client-id since it's relevant for IPv4 leases as well in default configuration.
DeltaFile
+55-2src/opnsense/scripts/kea/get_kea_leases.py
+0-35src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/LeasesController.php
+1-0src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+56-373 files

OPNSense/core eeecb2dsrc/opnsense/scripts/captiveportal cp-background-process.py, src/opnsense/scripts/captiveportal/lib ipfw.py

Captive Portal: re-introduce hash lookup for accounting purposes

Table redirection allowed for constant time lookups, with the
migration to pf this was changed to a linear time lookup.

While here, fix a small edge case that kills states for ips
flipping primary IPs according to hostwatch. Also make sure
to include the set of ipfw keys to "registered addresses" to make
sure theyre properly cleaned up from the table
DeltaFile
+77-25src/opnsense/scripts/captiveportal/lib/ipfw.py
+26-0src/opnsense/service/templates/OPNsense/IPFW/ipfw.conf
+13-10src/opnsense/scripts/captiveportal/cp-background-process.py
+116-353 files

OPNSense/tools 6701a0econfig/26.1 make.conf

config: this was changed recently
DeltaFile
+1-1config/26.1/make.conf
+1-11 files

OPNSense/core e382f17src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

DHCPSRV_ONLY_IF_REQUIRED_DEPRECATED The parameter 'only-if-required' is deprecated. Use 'only-in-additional-list' instead
DeltaFile
+2-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+2-21 files

OPNSense/core b00a50asrc/opnsense/scripts/kea kea_prefix_renew.py

Since KEA logs all commands issued to its socket anyway, we can reduce some of the kea_prefix_renew logging. Streamline the STDOUT result as well.
DeltaFile
+11-13src/opnsense/scripts/kea/kea_prefix_renew.py
+11-131 files

OPNSense/core 726a260src/etc/inc/plugins.inc.d kea.inc

Always run dhcpv6 newwanip hook script when dhcpv6 is enabled since it's cheap and essentially side effect free
DeltaFile
+1-2src/etc/inc/plugins.inc.d/kea.inc
+1-21 files

OPNSense/plugins 8ad516asecurity/q-feeds-connector/src/opnsense/scripts/qfeeds qfeedsctl.py

security/q-feeds-connector - add error message for https://github.com/opnsense/plugins/issues/5428
DeltaFile
+1-1security/q-feeds-connector/src/opnsense/scripts/qfeeds/qfeedsctl.py
+1-11 files

OPNSense/ports 39d4789math/py-numpy1 Makefile

math/py-numpy1: reduce FORTRAN into *_USES+=fortran

It's not as elegant but since this won't hit upstream we can at least
reduce the amount of additions we have.
DeltaFile
+4-7math/py-numpy1/Makefile
+4-71 files

OPNSense/core f648476src/opnsense/scripts/firmware connection.sh

firmware: partially rewritten
DeltaFile
+1-1src/opnsense/scripts/firmware/connection.sh
+1-11 files

OPNSense/core bfad19asrc/opnsense/scripts/wireguard wg-service-control.php

wireguard: use getValues() consistently in control script #10094

(cherry picked from commit 7c8bda9a0e7cdcc98909f2e272a7d08a466ba3cf)
(cherry picked from commit 732e0ddea190fc9fa933d956f4c2516acb4bcb77)
DeltaFile
+4-5src/opnsense/scripts/wireguard/wg-service-control.php
+4-51 files

OPNSense/core d432a4fsrc/opnsense/www/js opnsense_ui.js

ui: SimpleFileUploadDlg - add support for binary file uploads ( `SimpleFileUploadDlg({binary: true,...`), when set, files will be offered base64 encoded.

(cherry picked from commit 72a8f6b6f17c3bbf8967d39e6e63e4cc0ef480d7)
DeltaFile
+30-6src/opnsense/www/js/opnsense_ui.js
+30-61 files

OPNSense/core 732e0ddsrc/opnsense/scripts/wireguard wg-service-control.php

Revert "wireguard: sprint clean related to #10094"

This reverts commit 7c8bda9a0e7cdcc98909f2e272a7d08a466ba3cf.

This didn't add any value.  But keep the explode->getValues transformation.
DeltaFile
+14-16src/opnsense/scripts/wireguard/wg-service-control.php
+14-161 files