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

Clean up some failguards since if those conditions would be true I don't want to fail silently
DeltaFile
+3-10src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+3-101 files

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

CodeSource was missing, preventing match_code and code to be evaluated independently upon instantiation of the field type
DeltaFile
+16-6src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+2-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+2-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+20-63 files

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

Services: Kea: DHCPv4/6: Add type system with validation and encoding for supported DHCP options

This adds a type framework using MAPS extracted from data inside the KEA documentation.

Most flat options have a validator and encoder added. Users are guided via validation messages which types are correct choices for each code selection.
Advanced options (structured, nested, encapsulated) do not have an own validator or encoder yet, they fall back to hex.
Unknown options that are valid in the IANA lists, but maybe not inside KEA yet, also fallback to hex.

The user can always bail out of the type system and always use hex instead for any option.
DeltaFile
+476-16src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+22-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+22-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+526-265 files

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

unbound: overrides: early bailout for inline alias updates
DeltaFile
+4-0src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasReflector.php
+4-01 files

OPNSense/core 5cbaf60. plist

pkg: fix plist
DeltaFile
+1-1plist
+1-11 files

OPNSense/core aa9f8afsrc/opnsense/mvc/app/controllers/OPNsense/Unbound/Api SettingsController.php, src/opnsense/mvc/app/models/OPNsense/Unbound Unbound.php

Unbound: consolidate override aliases into tree view (#9954)
DeltaFile
+107-52src/opnsense/mvc/app/views/OPNsense/Unbound/overrides.volt
+117-0src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasReflector.php
+56-27src/opnsense/www/js/opnsense_bootgrid.js
+0-53src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasRefCount.php
+23-0src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.php
+20-1src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php
+323-1334 files not shown
+352-13710 files

OPNSense/core 633fbc6src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml dialogOption6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Services: Kea: DHCPv4/v6: Add single client_class support to DHCP options (#9988)

Enhances the DHCP option MVP introduced in:
https://github.com/opnsense/core/commit/8350fcb73b9dd44e8b1e00d2ea03ced71e0f71ac
https://github.com/opnsense/core/commit/b67a8fdc931936f768b3d6a2eea1e179320f257a

An single client_class can be attached to a DHCP option. This client_class contains a test. Right now a single test is possible, matching a DHCP option code, and the payload inside of it. A common example is matching option 93 to send different boot files to different client architectures.

A client_class is optional input, if none is given, the option will always be sent out as before.
DeltaFile
+43-9src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+43-9src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption6.xml
+50-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+50-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+31-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+30-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+247-221 files not shown
+266-267 files

OPNSense/core 808df97src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml dialogOption6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Change name from EncodingField to encoding_source, adjust description help text, add unique constraint to description
DeltaFile
+6-6src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+8-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+8-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+1-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption6.xml
+24-125 files

OPNSense/core 623dac0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.xml KeaDhcpv6.php

Add same to DHCPv6 and fix config rendering inside DHCPv4 reservations
DeltaFile
+43-9src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption6.xml
+44-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+31-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+4-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+1-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+123-145 files

OPNSense/core 6d58350src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogOption4.xml

Move Match DHCP option in a collapsed state before Set DHCP option to highlight the if this then that logic better
DeltaFile
+26-26src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+26-261 files

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

Newlines
DeltaFile
+0-2src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+0-21 files

OPNSense/core 5c71f09src/opnsense/www/js tabulator.min.js tabulator.min.js.map

bootgrid: upgrade Tabulator to version 6.4.0
DeltaFile
+2-2src/opnsense/www/js/tabulator.min.js
+1-1src/opnsense/www/js/tabulator.min.js.map
+3-32 files

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

Improve the dialog a bit
DeltaFile
+6-8src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+0-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+6-92 files

OPNSense/core cff0e8dsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt

captive portal: clean up session front-end, fixes grid scaling
DeltaFile
+9-9src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+9-91 files

OPNSense/core 8505585src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.php

Lets just use the uuid verbatim for the client-classes name
DeltaFile
+3-8src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-81 files

OPNSense/core a4bc25asrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml, src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes KeaMatchOptionDataField.php KeaOptionDataField.php

Make KeaOptionDataField reusable for the client classes
DeltaFile
+0-61src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaMatchOptionDataField.php
+21-4src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaOptionDataField.php
+3-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+24-663 files

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

Firewall: NAT: One-to-One NAT: add missing log statement (#9986)
DeltaFile
+1-0src/opnsense/mvc/app/library/OPNsense/Firewall/DNatRule.php
+1-01 files

OPNSense/core a7e1864src/opnsense/scripts/syslog generate_certs.php

system: style fix in syslog cert script
DeltaFile
+1-1src/opnsense/scripts/syslog/generate_certs.php
+1-11 files

OPNSense/core c675e7esrc/opnsense/mvc/app/models/OPNsense/Routing Gateways.php Gateways.xml

system: validate monitor uniqueness based on the host route presence #9844

This is a little tricky to get right but that should be it:

If the host route is disabled we allow the same monitor IP to be used
in several gateways.  Dpinger uses -B to bind the source address which
should make this work as per the ticket.  We still need to make sure
that although the gateway in question disables the host route feature
another gateway may still have it enabled so we also need to fail in
that case.  Tested the combinations and looks ok also looking at:

    # pluginctl -r host_routes

Would still consider this an experiment.

(cherry picked from commit 1156faee1df99f4d010520ac0f074cb6266864a6)
DeltaFile
+26-0src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php
+1-6src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.xml
+27-62 files

OPNSense/core 2346d3dsrc/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api AccessController.php

fix: enforce POST-only on captiveportal logoffAction (#9989)
DeltaFile
+22-19src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/AccessController.php
+22-191 files

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

Services: Kea: DHCPv4: A DHCP option can be matched with a single client_class
DeltaFile
+61-0src/opnsense/mvc/app/models/OPNsense/Kea/FieldTypes/KeaMatchOptionDataField.php
+39-3src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogOption4.xml
+42-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+32-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+174-34 files

OPNSense/core f8364f4src/opnsense/mvc/app/controllers/OPNsense/Kea/Api Dhcpv6Controller.php, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Kea: DHCPv6: Forgot to add option tab and API endpoint for b67a8fd (#9987)

* Kea: DHCPv6: Forgot to add option tab for https://github.com/opnsense/core/commit/b67a8fdc931936f768b3d6a2eea1e179320f257a

* Kea: DHCPv6: Forgot to add option API endpoint for https://github.com/opnsense/core/commit/b67a8fdc931936f768b3d6a2eea1e179320f257a
DeltaFile
+25-0src/opnsense/mvc/app/controllers/OPNsense/Kea/Api/Dhcpv6Controller.php
+9-0src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+34-02 files

OPNSense/core a687a9fsrc/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Kea: DHCPv6: Forgot to add option tab for https://github.com/opnsense/core/commit/b67a8fdc931936f768b3d6a2eea1e179320f257a
DeltaFile
+9-0src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+9-01 files

OPNSense/core 8b1a583src/opnsense/mvc/app/models/OPNsense/Firewall Alias.php

Firewall: Aliases: Add target to getAliasSource() (#9985)
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Firewall/Alias.php
+1-01 files

OPNSense/core 985ad25src/opnsense/mvc/app/library/OPNsense/Firewall DNatRule.php

Firewall: NAT: One-to-One NAT: add missing log statement
DeltaFile
+1-0src/opnsense/mvc/app/library/OPNsense/Firewall/DNatRule.php
+1-01 files

OPNSense/core 64a43f2src/opnsense/mvc/app/models/OPNsense/Dnsmasq Dnsmasq.php

dnsmasq: remove a too-strict validation

When adding ranges from setaddr.php we do not use the model so
one can input ::1000 etc and then Dnsmasq migration will fail
due to it not setting a constructor.  We still validate :: prefix
for constructor use but now take :: prefix verbatim which
doesn't interfere with Dnsmasq service start.

Discussed-with: @monviech
(cherry picked from commit a5773fe71f5703426761b9965bd49e468366de27)
DeltaFile
+0-12src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php
+0-121 files

OPNSense/core a5773fesrc/opnsense/mvc/app/models/OPNsense/Dnsmasq Dnsmasq.php

dnsmasq: remove a too-strict validation

When adding ranges from setaddr.php we do not use the model so
one can input ::1000 etc and then Dnsmasq migration will fail
due to it not setting a constructor.  We still validate :: prefix
for constructor use but now take :: prefix verbatim which
doesn't interfere with Dnsmasq service start.

Discussed-with: @monviech
DeltaFile
+0-12src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php
+0-121 files

OPNSense/core 2f52d58src/opnsense/mvc/app/controllers/OPNsense/Unbound OverridesController.php, src/opnsense/mvc/app/views/OPNsense/Unbound overrides.volt

unbound: formGridHostAlias can be removed as well
DeltaFile
+2-2src/opnsense/mvc/app/views/OPNsense/Unbound/overrides.volt
+0-1src/opnsense/mvc/app/controllers/OPNsense/Unbound/OverridesController.php
+2-32 files

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

unbound: disable selection and style up expand/collapse element
DeltaFile
+3-1src/opnsense/mvc/app/views/OPNsense/Unbound/overrides.volt
+3-11 files

OPNSense/core 9e98f66src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes AliasReflector.php

unbound: override default validation message for AliasReflector
DeltaFile
+5-0src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/AliasReflector.php
+5-01 files