OPNSense/core 0b2b6f1src/opnsense/mvc/app/library/OPNsense/Firewall Util.php, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.php KeaDhcpv6.php

firewall: make getRealInterface() a static utility function #10251

Align implementation with get_real_interface() except that we shall
not give a fallback of $device = $interface since we want better
integrity in MVC code (and don't deal with devices in configuration
data there).
DeltaFile
+47-0src/opnsense/mvc/app/library/OPNsense/Firewall/Util.php
+2-33src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php
+4-7src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+4-7src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+57-474 files

OPNSense/core 402c47esrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml dialogSubnet4.xml

Services: Kea: DDNS: Fix whitespace in b684f28 (#10257)
DeltaFile
+9-9src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+8-8src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+17-172 files

OPNSense/core 406c44asrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml dialogSubnet4.xml

Services: Kea: DDNS: Fix whitespace in b684f28
DeltaFile
+9-9src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+8-8src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+17-172 files

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

Services: Kea DHCPv4/v6: DDNS add ddns-conflict-resolution-mode per subnet(#10222)

---------

Co-authored-by: root <root at yeahhhhhhhhh.maison.be>
Co-authored-by: Monviech <79600909+Monviech at users.noreply.github.com>
DeltaFile
+10-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+10-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+8-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+8-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+42-06 files

OPNSense/core 1bf1c69src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api ServiceController.php

Captive Portal: reload ipfw on captive portal reconfigure (#10253)
DeltaFile
+19-0src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/ServiceController.php
+19-01 files

OPNSense/core 4ffef23src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api ServiceController.php

stray newline
DeltaFile
+0-1src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/ServiceController.php
+0-11 files

OPNSense/core dfa1039src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api ServiceController.php

Captive Portal: reload ipfw on captive portal reconfigure
DeltaFile
+20-0src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/ServiceController.php
+20-01 files

OPNSense/core 13464f1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml dialogPDPool6.xml, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Add grid formatter to mark values as dynamic if they are in a dynamic subnet
DeltaFile
+18-6src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+18-2src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+6-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogPDPool6.xml
+42-83 files

OPNSense/core 41d9295src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogPDPool6.xml dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Hide fields used for static prefix configuration if the subnet and pd_pool are dynamic.
DeltaFile
+25-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+2-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogPDPool6.xml
+2-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+30-24 files

OPNSense/core 4ae16bcsrc/etc/inc/plugins.inc.d captiveportal.inc

Captive Portal: remove redirection on HTTPS, ditch non-functional pass statement as well

In theory, clients only use HTTP to detect the presence of a portal.
If they were to use HTTPS, the 302 redirect would in most cases
not be accessible, as the certificate presented is most likely not
valid, cutting off the communication before any redirect to a login
page can happen.

The portal itself can and should remain accessible on HTTPS, as this
is the URL the redirect is pointing to. This may be attached to a
valid certificate as well, but the key point is that access to
this URL doesn't strictly need redirection for everything on port
443.

This should prevent clients opening bogus connections to the
captive portal, which consumes a lot of TLS traffic on the network
stack, bogging down lighttpd in bigger setups and creating
a lot of established states in pf.
DeltaFile
+46-47src/etc/inc/plugins.inc.d/captiveportal.inc
+46-471 files

OPNSense/core 6e10711src/opnsense/mvc/app/models/OPNsense/Firewall Filter.xml Filter.php

firewall: fix NPTv6 validation; closes #10242
DeltaFile
+12-0src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+1-3src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php
+13-32 files

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

Add comment about possible overlap between identity association and prefix delegation. Cannot be cleanly solved, and if somebody doesn't use identity associaton in interface configurations it does not make sense to arbitrary reduce the size here.
DeltaFile
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+4-01 files

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

Fix typo in previous
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+1-11 files

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

Remove config instantiation inside loops
DeltaFile
+2-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+2-31 files

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

Make prefix pool validation stricter, if only a /64 prefix exists there is nothing we can do if we offer both IA_NA and IA_PD, at least /63 would be required for one IA_NA and one IA_PD pool.
DeltaFile
+13-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+13-31 files

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

Add a mvp for the dynamic pd_pool, the pool is auto generated from the largets possible prefix that does not include the IA_NA generated address pool. Validation ensures the user can only change the delegated prefix length, but not anything about the pool itself. KEA is very strict about validations, auto generation is required here to ensure the model stays sane.
DeltaFile
+73-5src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+0-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+73-72 files

OPNSense/core 94835a9src/opnsense/mvc/app/controllers/OPNsense/Trust/Api CertController.php

System: Trust: Certificates - link CA references after all changes, closes https://github.com/opnsense/core/issues/9357
DeltaFile
+2-1src/opnsense/mvc/app/controllers/OPNsense/Trust/Api/CertController.php
+2-11 files

OPNSense/core 0064a48src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.xml

Since the prefix_source is verbatim to a subnet, we only allow its usage once per unique constraint
DeltaFile
+8-1src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+8-11 files

OPNSense/core 21fa7c6src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php KeaDhcpv6.xml

Add validations that disallow users to configure subnet value, pool value and reservations for a dynamic prefix subnet. The subnet must be empty since it is auto configured, the pool is auto configured as ::1000-::2000 and seeded with initial prefix, reservations cannot be created because that would blow up as there is no concept like partial IPv6 addresses in KEA. We always want to bootstrap KEA with an initial working configuration.
DeltaFile
+58-11src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+6-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+64-142 files

OPNSense/core 1eb6293src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes JsonField.php

System: Access: Users - missing base64_decode in JsonField leading to validation failures, closes https://github.com/opnsense/core/issues/10248

(cherry picked from commit b94cad4d724e4cb194508000dba2c0c4555604fe)
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/JsonField.php
+1-11 files

OPNSense/core 299d73bsrc/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php

move this
DeltaFile
+8-9src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+8-91 files

OPNSense/core b98bb93src/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php

use xpath to determine uses
DeltaFile
+22-3src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+22-31 files

OPNSense/core 150a4ccsrc/opnsense/mvc/app/models/OPNsense/Routing GatewayGroups.php

update function docs here
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+1-11 files

OPNSense/core 4c09144src/opnsense/mvc/app/models/OPNsense/Routing GatewayGroups.php, src/opnsense/scripts/routes gateway_watcher.php

Gateway Groups: typo and lazy-load model in gateway watcher
DeltaFile
+4-2src/opnsense/scripts/routes/gateway_watcher.php
+1-1src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+5-32 files

OPNSense/core 4b7d2casrc/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php, src/opnsense/mvc/app/controllers/OPNsense/Routing/forms dialogEditGatewayGroup.xml

gateway groups: prepare controller logic, add missing lock on delete
DeltaFile
+23-0src/opnsense/mvc/app/controllers/OPNsense/Routing/forms/dialogEditGatewayGroup.xml
+18-1src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+41-12 files

OPNSense/core 835e717src/opnsense/scripts/routes gateways.php

remove line
DeltaFile
+0-1src/opnsense/scripts/routes/gateways.php
+0-11 files

OPNSense/core 78fb962. plist, src/www system_gateway_groups_edit.php system_gateway_groups.php

remove legacy pages
DeltaFile
+0-288src/www/system_gateway_groups_edit.php
+0-221src/www/system_gateway_groups.php
+0-2plist
+0-5113 files

OPNSense/core 1be335asrc/opnsense/mvc/app/controllers/OPNsense/Routes/Api GatewayController.php, src/opnsense/mvc/app/controllers/OPNsense/Routing/Api SettingsController.php

gateways: do a bit of refactoring in the regular gateway controller and backend call to ease parsing for the group settings
DeltaFile
+7-7src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php
+1-1src/opnsense/scripts/routes/gateway_status.php
+1-0src/opnsense/mvc/app/controllers/OPNsense/Routes/Api/GatewayController.php
+9-83 files

OPNSense/core 408233fsrc/opnsense/mvc/app/controllers/OPNsense/Routing GatewayGroupsController.php, src/opnsense/mvc/app/controllers/OPNsense/Routing/forms dialogEditGatewayGroup.xml

Gateway Groups: MVC conversion: review feedback and add UI
DeltaFile
+55-0src/opnsense/mvc/app/controllers/OPNsense/Routing/forms/dialogEditGatewayGroup.xml
+46-0src/opnsense/mvc/app/views/OPNsense/Routing/groups.volt
+41-0src/opnsense/mvc/app/controllers/OPNsense/Routing/GatewayGroupsController.php
+28-13src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+2-7src/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.xml
+1-4src/opnsense/mvc/app/models/OPNsense/Core/Menu/Menu.xml
+173-242 files not shown
+179-248 files

OPNSense/core 2f23070src/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php, src/opnsense/mvc/app/models/OPNsense/Routing GatewayGroups.php GatewayGroups.xml

tmp
DeltaFile
+62-0src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+11-30src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+14-7src/opnsense/mvc/app/models/OPNsense/Routing/FieldTypes/GatewayGroupItemField.php
+15-5src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.xml
+2-2src/opnsense/scripts/monit/gateway_alert.php
+1-2src/opnsense/scripts/routes/gateways.php
+105-461 files not shown
+106-477 files