OPNSense/core 5b07e09. plist, src/etc/inc/plugins.inc.d ntpd.inc

src: style, plist and syntax fixes
DeltaFile
+4-4src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+2-2src/opnsense/scripts/captiveportal/lib/db.py
+1-1src/etc/inc/plugins.inc.d/ntpd.inc
+1-0plist
+8-74 files

OPNSense/core 8350fcbsrc/opnsense/mvc/app/controllers/OPNsense/Kea/Api Dhcpv4Controller.php, src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml

Services: Kea: DHCPv4: allow sending any DHCP option as raw hex or string payload (#9958)

This uses csv-false to force kea to send option data as hexadecimal value, instead of enforcing types on them.

This means theoretically you can now send any byte coded option out, meaning the user can construct whatever value they need. This also means encapsulated options like 43 can be sent in the format any vendor might require, as binary that is.

There is also another possibility, a very specific format of data can automatically convert strings into hex (bytes), kea handles this conversion internally. "data": "'convert this text to binary'"
DeltaFile
+73-0src/opnsense/scripts/kea/kea_dhcp_options.py
+67-0src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+48-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+41-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+37-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+25-0src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php
+291-06 files not shown
+330-012 files

OPNSense/core c0d5331src/opnsense/scripts/firmware check.sh

firmware: repeat the update after pkg reinstall

It appears that the package manager lost a number of tricks
over the years so now we add more manual labor to do what
we expect of it.
DeltaFile
+2-1src/opnsense/scripts/firmware/check.sh
+2-11 files

OPNSense/core 1081033src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.php

Review comments @fichtner
DeltaFile
+4-4src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+5-52 files

OPNSense/core 369630dsrc/opnsense/mvc/app/library/OPNsense/System/Status CaptivePortalStatus.php, src/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt

Captive portal: IPv6 support (#9745)

This commit adds IPv6 support for Captive Portal by introducing a new "roaming" option, which is enabled by default. Roaming allows the synchronization of additional IPv4/IPv6 client address aliases, aggregating their accounting through ipfw and managing their state in the pf table. For IPv6, hostwatch is required to be enabled to prevent performance issues during client roaming IP synchronization. Furthermore, IPv6 can only work properly if a hostname is provided in the zone and proper AAAA records have been synthesized for the local DNS server - for a default setup, this requires the DNS64 option in Unbound to be set.

Co-authored-by: Alex Goodkind <alex at goodkind.io>
DeltaFile
+385-142src/opnsense/scripts/captiveportal/lib/db.py
+40-56src/opnsense/scripts/captiveportal/lib/arp.py
+42-31src/opnsense/scripts/captiveportal/cp-background-process.py
+56-0src/opnsense/mvc/app/library/OPNsense/System/Status/CaptivePortalStatus.php
+42-8src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+23-10src/opnsense/service/templates/OPNsense/Captiveportal/lighttpd-zone.conf
+588-24713 files not shown
+716-28019 files

OPNSense/core d43718bsrc/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api AccessController.php, src/opnsense/scripts/captiveportal/lib pf.py

captive portal: trim IPv6 address fetch logic in zone template, remove pf state kill, backend listening op IPv4 only so adjust AccessController logic
DeltaFile
+34-83src/opnsense/service/templates/OPNsense/Captiveportal/lighttpd-zone.conf
+7-16src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/AccessController.php
+1-4src/opnsense/service/templates/OPNsense/Captiveportal/lighttpd-api-dispatcher.conf
+0-4src/opnsense/scripts/captiveportal/lib/pf.py
+42-1074 files

OPNSense/core 9321048src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml

Add missing newlines
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+1-11 files

OPNSense/core b617db4src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php, src/opnsense/scripts/kea kea_dhcp_options.py

Add missing newlines
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+1-1src/opnsense/scripts/kea/kea_dhcp_options.py
+2-22 files

OPNSense/core 1698770src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogReservation4.xml dialogSubnet4.xml, src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaOptionDataField.php

Forgot adding the option form to reservations as well
DeltaFile
+9-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogReservation4.xml
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+11-23 files

OPNSense/core 319e56b. plist, src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml

Allow choosing between string and hex to leverage auto conversion of strings to binary built into KEA
DeltaFile
+67-0src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+27-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+20-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+7-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+1-1src/opnsense/scripts/kea/kea_dhcp_options.py
+1-0plist
+123-76 files

OPNSense/core 7704807src/etc/inc/plugins.inc.d ntpd.inc

Services: Network Time: PPS - remove stale symlink when pps is disabled, closes https://github.com/opnsense/core/pull/9969
DeltaFile
+7-11src/etc/inc/plugins.inc.d/ntpd.inc
+7-111 files

OPNSense/core 7884776src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml

Typo in ValidationMessage
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+1-11 files

OPNSense/core b2fd306src/opnsense/mvc/app/controllers/OPNsense/Kea/Api Dhcpv4Controller.php, src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml

kea: Concept to allow sending any DHCP option as raw hex value to avoid the scaling issues of a fully type based approach
DeltaFile
+73-0src/opnsense/scripts/kea/kea_dhcp_options.py
+31-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+31-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+25-0src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv4Controller.php
+16-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+9-0src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv4.volt
+185-04 files not shown
+205-010 files

OPNSense/core 3069c25src/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.
DeltaFile
+3-0src/opnsense/www/js/opnsense_bootgrid.js
+3-01 files

OPNSense/core bd1665esrc/opnsense/mvc/app/views/OPNsense/IPsec sad.volt, src/opnsense/scripts/ipsec saddelete.py

VPN: IPsec: Security Association Database: apply the same as https://github.com/opnsense/core/commit/9c950fcc3ccc396e943b31908a6ea3a182b1d4b2. Missing datakey mapping here as well
DeltaFile
+5-1src/opnsense/scripts/ipsec/saddelete.py
+1-0src/opnsense/mvc/app/views/OPNsense/IPsec/sad.volt
+6-12 files

OPNSense/core 0e7545esrc/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

    [13 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 02c77e1src/opnsense/mvc/app/models/OPNsense/Base/Menu MenuSystem.php, src/opnsense/mvc/app/models/OPNsense/Core/Menu Menu.xml

firewall: flip-flip rule GUI labels for #9947
DeltaFile
+0-2src/opnsense/mvc/app/models/OPNsense/Base/Menu/MenuSystem.php
+1-1src/opnsense/mvc/app/models/OPNsense/Core/Menu/Menu.xml
+1-1src/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.xml
+2-43 files

OPNSense/core c761923src/etc/inc legacy_bindings.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterBaseController.php

firewall: fix regression in 8554581eac so alias content summary is shown (#9929)

The "description" is a summary so change the underlying
code accordingly to avoid future misinterpretations.

PR: https://forum.opnsense.org/index.php?topic=51246.0
(cherry picked from commit d908345d1ae54ed733d497543944abae6dac4052)
DeltaFile
+11-14src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php
+4-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+2-2src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/nat_rule.volt
+1-1src/etc/inc/legacy_bindings.inc
+19-195 files

OPNSense/core 072f176src/opnsense/mvc/app/controllers/OPNsense/IPsec/Api SpdController.php, src/opnsense/scripts/ipsec spddelete.py

VPN: IPsec: Security Policy Database - delete selected not backed by actual logic, closes https://github.com/opnsense/core/issues/9937

(cherry picked from commit 9c950fcc3ccc396e943b31908a6ea3a182b1d4b2)
DeltaFile
+12-6src/opnsense/scripts/ipsec/spddelete.py
+1-1src/opnsense/mvc/app/controllers/OPNsense/IPsec/Api/SpdController.php
+13-72 files

OPNSense/core 24bde31src/opnsense/scripts/filter read_log.py, src/opnsense/scripts/openvpn ovpn_status.py

backend: apparently r'' is a better fix for SyntaxWarning

Sometimes we even use it.

PR: https://forum.opnsense.org/index.php?topic=51175.0
(cherry picked from commit fa9e2177473c5b2b5711165c526696f1793a0781)
DeltaFile
+1-1src/opnsense/scripts/unbound/wrapper.py
+1-1src/opnsense/scripts/filter/read_log.py
+1-1src/opnsense/scripts/openvpn/ovpn_status.py
+3-33 files

OPNSense/core 6b3c633src/opnsense/mvc/app/views/OPNsense/Interface neighbor.volt

interfaces: fix static neighbor apply button (#9934)

Fixes: #9932
(cherry picked from commit 72ab5e36fde40afa8c0fb0894565da445fcb4e57)
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Interface/neighbor.volt
+1-11 files

OPNSense/core eb33300src/opnsense/mvc/app/views/OPNsense/Unbound overrides.volt

this css does nothing anymore
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/Unbound/overrides.volt
+0-11 files

OPNSense/core 52fd1b4src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api SettingsController.php

trim this slightly
DeltaFile
+4-10src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php
+4-101 files

OPNSense/core 6e52697src/www services_ntpd.php

network time: Friday challenges as always
DeltaFile
+7-3src/www/services_ntpd.php
+7-31 files

OPNSense/core 6fe9054src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api SettingsController.php, src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms dialogHostOverride.xml

check isPost() and update help description
DeltaFile
+4-0src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dialogHostOverride.xml
+5-12 files

OPNSense/core 29c25a3src/www services_ntpd.php

network time: adjust previous
DeltaFile
+2-1src/www/services_ntpd.php
+2-11 files

OPNSense/core 9ab2c41src/www services_ntpd.php

network time: pool.ntp.org servers must have sticky ispool behaviour
DeltaFile
+6-1src/www/services_ntpd.php
+6-11 files

OPNSense/core 54ed928src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseSetField.php, src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes AliasReflector.php

setValues() to BaseSetField, simplify reflector mapper
DeltaFile
+4-15src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasReflector.php
+5-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseSetField.php
+9-152 files

OPNSense/core 25be324src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes AliasReflector.php

switch to BaseSetField for AliasReflector
DeltaFile
+3-3src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasReflector.php
+3-31 files

OPNSense/core c634290src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes AliasRefCount.php

remove AliasRefCount.php as well
DeltaFile
+0-53src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasRefCount.php
+0-531 files