OPNSense/core 0713b67src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api LeasesController.php, src/opnsense/mvc/app/views/OPNsense/Dnsmasq leases.volt

Services: Dnsmasq DNS & DHCP: Since client-id is a valid IPv4 reservation type as well, ensure the lease view handles it correctly. The same is also true for MAC address as IPv6 reservation type.
DeltaFile
+15-7src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/Api/LeasesController.php
+9-2src/opnsense/mvc/app/views/OPNsense/Dnsmasq/leases.volt
+24-92 files

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

kea: another one
DeltaFile
+3-7src/etc/inc/plugins.inc.d/kea.inc
+3-71 files

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

kea: style
DeltaFile
+6-4src/etc/inc/plugins.inc.d/kea.inc
+6-41 files

OPNSense/core 1f8eeddsrc/opnsense/mvc/app/views/OPNsense/Kea dhcpv4.volt

kea: indent and whitespace
DeltaFile
+4-6src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt
+4-61 files

OPNSense/core 31f9b9esrc/opnsense/mvc/app/models/OPNsense/Firewall Alias.php

Firewall: Aliases: Add target to getAliasSource() (#9985)

(cherry picked from commit 8b1a5839554295b00163dc0358f0c4d994674cf6)
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.php
+1-01 files

OPNSense/core 1ea4e40src/opnsense/mvc/app/library/OPNsense/Firewall DNatRule.php

Firewall: NAT: One-to-One NAT: add missing log statement (#9986)

(cherry picked from commit e4cd70506d05c42da66aa0ee2a2cab976d3ee8cb)
DeltaFile
+1-0src/opnsense/mvc/app/library/OPNsense/Firewall/DNatRule.php
+1-01 files

OPNSense/core 95504d4src/opnsense/mvc/app/models/OPNsense/Firewall DNat.xml

firewall: destination NAT register rule as last option

(cherry picked from commit ec4a343250691151d2c13574ebfdc6c3b67a5a90)
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/DNat.xml
+1-11 files

OPNSense/core 3ef5796src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Some minor cleanups to reduce some single use variables
DeltaFile
+6-12src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+6-121 files

OPNSense/core 6bbed7fsrc/opnsense/scripts/syslog generate_certs.php

system: style fix in syslog cert script

(cherry picked from commit a7e186453a9887ad1e0041b672c003407017e2eb)
DeltaFile
+1-1src/opnsense/scripts/syslog/generate_certs.php
+1-11 files

OPNSense/core ce1c30fsrc/opnsense/www/js/widgets Firewall.js, src/opnsense/www/js/widgets/Metadata Core.xml

dashboard: firewall: add semantic groups coloring option (#9907)

* firewall.js should keep coloring after reload, use sematic groups block = red

* fixes for review, hash simplification, color palette, action matching

* action is string, include interface, add default color

* Use color schema for chart colors, vary by shades

* fix blocks

* make color schema configurable for widet, defaults to contrast uses Classic10

* changed from select_multi to select, contrast mode matches the old behavior

* use options.colorscheme, fix color cycling bug

* Update src/opnsense/www/js/widgets/Firewall.js

    [15 lines not shown]
DeltaFile
+82-12src/opnsense/www/js/widgets/Firewall.js
+3-0src/opnsense/www/js/widgets/Metadata/Core.xml
+85-122 files

OPNSense/core 3da1ebesrc/opnsense/mvc/app/controllers/OPNsense/Unbound/forms dnsbl.xml, src/opnsense/mvc/app/views/OPNsense/Interface overview.volt

bootgrid: introduce 'expand' formatter to cap lists of data

(cherry picked from commit 06c79f28747c7a180bfcbbde78e467512f3a1ec5)
DeltaFile
+2-51src/opnsense/mvc/app/views/OPNsense/Interface/overview.volt
+47-0src/opnsense/www/js/opnsense_bootgrid.js
+9-0src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dnsbl.xml
+2-1src/opnsense/mvc/app/views/layouts/default.volt
+60-524 files

OPNSense/core 0ab8873src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms dnsbl.xml, src/opnsense/mvc/app/views/OPNsense/Unbound dnsbl.volt

bootgrid: use expand formatter for blocklist URLs and dnsbl types as well (https://github.com/opnsense/core/issues/9796)

While here, the fetched value should use the formatter value first,
falling back to the actual cell value if it isn't there.

(cherry picked from commit 59ad7be9d2d2e20678a8cec644831f971d79a9c7)
DeltaFile
+0-8src/opnsense/mvc/app/views/OPNsense/Unbound/dnsbl.volt
+5-2src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dnsbl.xml
+3-1src/opnsense/www/js/opnsense_bootgrid.js
+8-113 files

OPNSense/core 88b6442src/opnsense/www/js opnsense_bootgrid.js

bootgrid: require selection to be enabled for delete-selected

Logically, multiSelect should be enabled here as well, but leave this
out for now as it may be too wide.

(cherry picked from commit 3069c256806065fc18e4492b0319878d872cd34d)
DeltaFile
+3-0src/opnsense/www/js/opnsense_bootgrid.js
+3-01 files

OPNSense/core fd5d552src/opnsense/mvc/app/views/OPNsense/Interface overview.volt, src/opnsense/www/js opnsense_bootgrid.js

interfaces: overview: clean up UI code and fix CARP badge alignment

(cherry picked from commit 8405980833a2b4f856c4ef6931d38123391f2b71)
(cherry picked from commit 75e600a13805f85a1112f8935ffac3f098c2233a)
DeltaFile
+130-133src/opnsense/mvc/app/views/OPNsense/Interface/overview.volt
+5-4src/opnsense/www/js/opnsense_bootgrid.js
+135-1372 files

OPNSense/core 4bca318src/opnsense/mvc/app/views/OPNsense/Firewall alias.volt

firewall: match form style with apply button underneath for previous
DeltaFile
+8-7src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+8-71 files

OPNSense/core 8dd012fsrc/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Fix int32 validator
DeltaFile
+6-2src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+6-21 files

OPNSense/core 5d0fe33src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api AliasUtilController.php AliasController.php, src/opnsense/mvc/app/views/OPNsense/Firewall alias.volt alias_util.volt

aliases: Add force GeoIP update button (#9974)
DeltaFile
+16-0src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+0-15src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php
+0-12src/opnsense/mvc/app/views/OPNsense/Firewall/alias_util.volt
+12-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php
+6-0src/opnsense/service/conf/actions.d/actions_filter.conf
+34-275 files

OPNSense/core 16b7dfasrc/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

An unknown option should only allow hex, otherwise we accidentally allow all encoding types. The IANA list may contain options that are not inside the DHCPv4 or DHCPv6 maps
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+1-11 files

OPNSense/core 4007848src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Cull two helpers that are only used once
DeltaFile
+3-13src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+3-131 files

OPNSense/core f38bab8src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Some light restructuring, reduce amount of public endpoints, turn them private.
DeltaFile
+32-34src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+32-341 files

OPNSense/core 0f092c3src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes TextFieldTest.php

mvc: fix previous, not part of changes
DeltaFile
+1-1src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/TextFieldTest.php
+1-11 files

OPNSense/core 6f00e1esrc/opnsense/scripts/captiveportal cp-background-process.py

captive portal: fix regression in 369630d, addresses kept bouncing between zones

If there are multiple zones defined, we shouldn't look at the ipfw output
as it has no notion of zones, therefore the ips were flagged for removal
during each iteration. Limit it to pf instead, as was the case before.

While here, we don't have to query the db for this each time, as the
list_session_ips() call filters out deleted clients.
DeltaFile
+3-4src/opnsense/scripts/captiveportal/cp-background-process.py
+3-41 files

OPNSense/core aefe80csrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseListField.php BaseField.php, src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes TextFieldTest.php NetworkFieldTest.php

mvc: BaseField: add setValues() for generic use

A small follow-up to make setValues() work like getValues()
including stripping empty values.  Works from everywhere now
and adds a few tests in order to make sure it will keep working.
DeltaFile
+10-3src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/TextFieldTest.php
+12-1src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/NetworkFieldTest.php
+10-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+10-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseField.php
+6-1src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/AuthGroupFieldTest.php
+6-1src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseSetField.php
+54-66 files

OPNSense/core 0486106src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.php KeaDhcpv6.php, src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Change getEncodedValue() to encodeValue() Feedback from @fichtner
DeltaFile
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+7-73 files

OPNSense/core b37a747src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption6.xml dialogOption4.xml

Forgot two spots that still refer uppercase as mandatory
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption6.xml
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+2-22 files

OPNSense/core 6e1d972src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml dialogOption6.xml, src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Add missing encodeHex() function and normalize to uppercase to relax validation a bit
DeltaFile
+7-2src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption6.xml
+9-43 files

OPNSense/core 095a4d5src/opnsense/mvc/app/library/OPNsense/Firewall FilterRule.php

firewall: fix mvc code vs. legacy rules display issues #9931

These functions only pertain to printing automatic rules in the
old GUI so eventually we can all scrap them.
DeltaFile
+6-6src/opnsense/mvc/app/library/OPNsense/Firewall/FilterRule.php
+6-61 files

OPNSense/core ec4a343src/opnsense/mvc/app/models/OPNsense/Firewall DNat.xml

firewall: destination NAT register rule as last option
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/DNat.xml
+1-11 files

OPNSense/core 80ed0d8src/etc/inc filter.lib.inc

firewall: fix port handling in registered NAT rule #9931
DeltaFile
+6-6src/etc/inc/filter.lib.inc
+6-61 files

OPNSense/core 971c5cbsrc/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Do not hide this error silently
DeltaFile
+0-3src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+0-31 files