OPNSense/core 7caec8asrc/opnsense/scripts/interfaces reconfigure_vlans.php reconfigure_vips.php

interfaces: a few "foreach ($config" iterations switched to config_read_array()
DeltaFile
+6-7src/opnsense/scripts/interfaces/reconfigure_vlans.php
+6-2src/opnsense/scripts/interfaces/reconfigure_vips.php
+12-92 files

OPNSense/core 138bff5src/etc/inc/plugins.inc.d captiveportal.inc, src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api AccessController.php

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.


    [2 lines not shown]
DeltaFile
+34-31src/opnsense/mvc/app/controllers/OPNsense/CaptivePortal/Api/AccessController.php
+10-10src/etc/inc/plugins.inc.d/captiveportal.inc
+11-7src/opnsense/service/templates/OPNsense/Captiveportal/lighttpd-zone.conf
+55-483 files

OPNSense/core e44a05asrc/opnsense/mvc/app/views/OPNsense/IPsec settings.volt

ipsec: move swanctl.conf download button to the tab

This aligns with the aliases actions tab.
DeltaFile
+10-9src/opnsense/mvc/app/views/OPNsense/IPsec/settings.volt
+10-91 files

OPNSense/core ff62effsrc/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

(cherry picked from commit 6d94603bb92dc6fb25ed9038230b53bacad153b8)
DeltaFile
+67-16src/opnsense/mvc/app/views/OPNsense/Diagnostics/traffic.volt
+67-161 files

OPNSense/core 3a5befdsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal vouchers.volt, src/opnsense/mvc/app/views/OPNsense/Diagnostics routes.volt systemactivity.volt

bootgrid: replace 'append' with 'replace' for ajax: false grids

Noticed while documenting.

replaceData() is a lot more performant through Tabulator, and since
there are only 3 callers and all of them expect a clear before
updating any data, use a replace instead.

In time these pages should use the default search endpoint anyway,
but this requires an API change.

make sure to keep the append() function for compatibility

(cherry picked from commit d8b07eb02eba635fc253a948b7800cfa40a2be60)
DeltaFile
+1-4src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+1-3src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+1-3src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+7-104 files

OPNSense/core 0e054basrc/opnsense/mvc/app/views/OPNsense/CaptivePortal vouchers.volt, src/opnsense/mvc/app/views/OPNsense/Diagnostics systemactivity.volt routes.volt

bootgrid: clean up converter compatibility code

Only other consumer is Nginx in plugins, but worst case scenario
these timestamps will render as... timestamps, which in that form
are sortable anyway. It's likely this was throwing an error anyway

The "sorters" weren't actually accounted for in the compat
translation, so this wasn't overridable. Fix this here.

(cherry picked from commit a7ec18550d8cbb4b2a750a5860c3da52bd1d81d7)
DeltaFile
+5-18src/opnsense/www/js/opnsense_bootgrid.js
+3-13src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+2-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+11-344 files

OPNSense/core a118274src/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt, src/opnsense/mvc/app/views/OPNsense/Dnsmasq leases.volt

ui: clean up useRequestHandlerOnGet usage

This has no use anymore with the current bootgrid code. If a
handler should be overridden, simply defining the function is enough

(cherry picked from commit 4a67e91f0b32f78a2a4de2a792ffba0da4a4e2d2)
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Dnsmasq/leases.volt
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/sessions.volt
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/tunnels.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+0-62 files not shown
+0-88 files

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

Services: Kea DHCPv6: Clean up allocator and pd-allocator terminology (#10330)

(cherry picked from commit 0bd232447b7dfafcd696ec083207188f4848d523)
DeltaFile
+6-5src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+6-51 files

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

Services: Kea DHCP: Kea DHCPv4 - add subnet allocator field (#10327)

(cherry picked from commit 6188aa8902429ea7ff690744799df8c32562ac9c)
(cherry picked from commit 153818d94babffcfb9a2c01933673cc109723939)
DeltaFile
+10-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet4.xml
+8-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+22-03 files

OPNSense/core ecc01c7src/opnsense/mvc/app/controllers/OPNsense/Kea/forms generalSettings6.xml generalSettings4.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.xml KeaDhcpv4.xml

Services: Kea DHCPv4/6: Add decline_probation_period and set lower default to mitigate faulty client implementations to consume the whole pool (#10294)

* Services: Kea DHCPv4/6: Add decline_probation_period and set lower default to mitigate faulty client implementations to consume the whole pool.

* Use isSet() since 0 is allowed

(cherry picked from commit b80995f2135476b7fbeb2f650d74eebca55ad5b3)
DeltaFile
+8-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/generalSettings6.xml
+8-0src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/generalSettings4.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+3-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+2-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+2-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+26-06 files

OPNSense/core 35dd72csrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv4.xml KeaDhcpv6.xml

Services: Kea DHCPv4/6: Some cleanup regarding isEmpty) usage when 0 is allowed in IntegerFields, and ensure no IntegerField accepts negative values. (#10295)

(cherry picked from commit 5aa76c203035d41b1b9de10f61367f668ec8be4c)
DeltaFile
+10-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.xml
+10-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv4.php
+3-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+26-124 files

OPNSense/core be288cf. plist, src/opnsense/mvc/app/models/OPNsense/Auth/FieldTypes UsernameField.php

mvc: stricten Email address validation and add a test case for it. filter_var(..,FILTER_VALIDATE_EMAIL) might align more with RFC's, but since RFC 5322 accepts almost everything, might not be the best option in reality.

(cherry picked from commit cf7836fe7fe2c9b4b2034b56414adc481dda8d31)
(cherry picked from commit db081565aeac90fc553d2e16f1242d1f72059871)
(cherry picked from commit b5ba8da0f3061b0c19b7dc8ed940072c515e16f1)
(cherry picked from commit 986b01d240fe86ce69c8e5aaca8a04f744e772fc)
DeltaFile
+89-0src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/EmailFieldTest.php
+0-56src/opnsense/mvc/app/models/OPNsense/Base/Validators/Email.php
+9-3src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/EmailField.php
+4-4src/opnsense/mvc/app/models/OPNsense/Auth/FieldTypes/UsernameField.php
+1-1plist
+103-645 files

OPNSense/core df42e1bsrc/opnsense/mvc/app/controllers/OPNsense/Routes/Api GatewayController.php

system: lowercase this one
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Routes/Api/GatewayController.php
+1-11 files

OPNSense/core 9bdf568src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api VipSettingsController.php

interfaces: account for multiple UUIDs in VIP deletion

PR: https://github.com/opnsense/core/issues/10269

(cherry picked from commit afa7434044419f84513012d915aa0496bc3542e5)
(cherry picked from commit 91eb9f904f2acaed2cfe752f6ed258990a374511)
(cherry picked from commit 28ac053aaf4a5079841d7484a0775dc1c99867c0)
DeltaFile
+34-22src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/VipSettingsController.php
+34-221 files

OPNSense/core 6fa4011src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Firewall: Rules [new] - fix unintended change in filtering logic caused by https://github.com/opnsense/core/commit/c4aefc08f41167b921595cd3f606aadc72b46730

When inspect mode is not selected, only full matches are expected when filtering specific interfaces.
This also means when selecting the inverse of an interface, it automatically belongs to the "floating" group for not being a direct match.

To explain the options a bit better, comments are inserted in the filtereing block.

(cherry picked from commit 9b8ee2a92f14092f6971a96c86ca2fe138cd7b89)
(cherry picked from commit 49b54ef032124e36eed2ad6fb19a9cc518f576a1)
DeltaFile
+15-8src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+15-81 files

OPNSense/core c6dc6fesrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api AliasController.php

Firewall: Aliases - regression in https://github.com/opnsense/core/commit/c0569f86d5538b4312dd7fd8f8613664db8dbed7, closes https://github.com/opnsense/core/issues/10291

(cherry picked from commit ae68650455acd6c35d464e35eb7d6a0e1f032f11)
DeltaFile
+14-12src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php
+14-121 files

OPNSense/core 6812702src/opnsense/mvc/app/controllers/OPNsense/Auth/forms dialogUser.xml, src/opnsense/mvc/app/models/OPNsense/Auth User.xml

system: tighten landing page redirect (#10239)

PR: https://github.com/opnsense/core/issues/10238
(cherry picked from commit dd63dd1a8e506658c0d4742c7b3790e28ee601e3)
DeltaFile
+6-4src/opnsense/mvc/app/models/OPNsense/Core/ACL.php
+4-1src/opnsense/mvc/app/models/OPNsense/Auth/User.xml
+1-0src/opnsense/mvc/app/controllers/OPNsense/Auth/forms/dialogUser.xml
+11-53 files

OPNSense/core f6730bfsrc/etc/inc/plugins.inc.d pf.inc

firewall: use safe config iteration in interface registration

Some more style updates while here.
DeltaFile
+39-43src/etc/inc/plugins.inc.d/pf.inc
+39-431 files

OPNSense/core 03fe221src/etc/inc plugins.inc

plugins: use safe config iteration in interface registration code
DeltaFile
+3-5src/etc/inc/plugins.inc
+3-51 files

OPNSense/core c4e0a90Mk git.mk

make: add a `wiff' target for fun and profit

(cherry picked from commit ff8481265d5e10a1fdf82ae1226d62c41c292b46)
DeltaFile
+8-0Mk/git.mk
+8-01 files

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

Remove variable that's not reused
DeltaFile
+1-2src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+1-21 files

OPNSense/core 0f9c34bsrc/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

Shorten this comment a bit, now the relationship is not dependant on later interfaces anymore directly
DeltaFile
+0-8src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+0-81 files

OPNSense/core b7b6490src/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

We don't need prefix_id in the KeaDHCPv6 model anymore.
DeltaFile
+0-4src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+0-41 files

OPNSense/core 3389095src/opnsense/mvc/app/library/OPNsense/Interface Idassoc.php

Implement track6-prefix-id to track6_prefix_range relationship to calculate available subnets
DeltaFile
+27-36src/opnsense/mvc/app/library/OPNsense/Interface/Idassoc.php
+27-361 files

OPNSense/core 91093f3src/etc/inc interfaces.inc, src/www interfaces.php

interfaces: IAID selection and prefix range reservation #7647
DeltaFile
+103-6src/www/interfaces.php
+14-13src/etc/inc/interfaces.inc
+117-192 files

OPNSense/core ff84812Mk git.mk

make: add a `wiff' target for fun and profit
DeltaFile
+8-0Mk/git.mk
+8-01 files

OPNSense/core 4416b1csrc/opnsense/mvc/app/models/OPNsense/Dnsmasq Dnsmasq.xml

dnsmasq: Change DHCP tag to DescriptionField (#10293)

(cherry picked from commit 224b7d1a644a7ac9e19eb0a2b9a332240209619c)
DeltaFile
+1-2src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml
+1-21 files

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

Firewall: Aliases - add a formatter to show content fields as "dynamic" when populated by other components. closes https://github.com/opnsense/core/issues/10315

(cherry picked from commit ce6728a9740fd1c92e7cd187eebf2702d3694ea9)
DeltaFile
+8-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+8-11 files

OPNSense/core 7b2c137src/opnsense/scripts/health fetchData.py

Reporting: Health - render NaN as empty values [null] and omit leading empty records from set, closes https://github.com/opnsense/core/issues/10307

(cherry picked from commit ac54d3dd36cb62fb24d06259be86dfa9d24973a6)
DeltaFile
+6-2src/opnsense/scripts/health/fetchData.py
+6-21 files

OPNSense/core 8f12818src/etc/inc/plugins.inc.d kea.inc

Services: Kea DHCPv6: Always start the prefix watcher when DHCPv6 is enabled. A reservation with a prefix but without a configured pd_pool is also valid, it's more pragmatic to allow it than doing some complex validation gymnastics to prevent it. (#10329)

(cherry picked from commit f7c1d8339837a63dd176ae5373dab0860418e5c1)
DeltaFile
+1-1src/etc/inc/plugins.inc.d/kea.inc
+1-11 files