firewall: adjust alias rename according to address_to_pconfig(); closes #10024
Looking at stable/25.7 where all three components where still in
the tree they all use the function which could potentially write
'address'. It's better than not having those and strive for
consistency although in practice this will die with the removal
of legacy rules support.
(cherry picked from commit b4afba8a61f984321835fde89bf935a94edb0ab1)
firewall: invalidate rule stats cache for legacy rules page
Since 5baba39831dff added the TTL but the page should fetch per
inspect push this restores the old behaviour. We could move the
controller to the legacy plugin so that it is not forgotten on
final removal but that's not for now.
(cherry picked from commit 0f4a0ca611545e3e60edacc819e285d8a6f99194)
dashboard: adjust resize logic to observe border box instead of content box
The side effect of swapping the resize logic to after the tick was
that the disk widget remained in an expanded state, so revert this.
However, the interfaces widget still had a feedback loop due to
the inserted scrollbar. Fix this by using borderBoxSize to determine
width without overflow/scrollbar interference.
(cherry picked from commit 0e1e8cfa163bb27b01e33cc0d34fde2eac512e4e)
dashboard: adjust resize logic to observe border box instead of content box
The side effect of swapping the resize logic to after the tick was
that the disk widget remained in an expanded state, so revert this.
However, the interfaces widget still had a feedback loop due to
the inserted scrollbar. Fix this by using borderBoxSize to determine
width without overflow/scrollbar interference.
firewall: invalidate rule stats cache for legacy rules page
Since 5baba39831dff added the TTL but the page should fetch per
inspect push this restores the old behaviour. We could move the
controller to the legacy plugin so that it is not forgotten on
final removal but that's not for now.
firewall: change interfage group render/apply order
Well, apply needs to be pushed to render interfaces. Make
sure that we render before reloading filter which actually
calls ifgroup_setup() to rename groups.
(cherry picked from commit d47802bc88388fa5e26a07b9451b0ee63e971a0b)
(cherry picked from commit fa96a9a57b0d922c3642322c0c140c8995f14cdd)
Services: Kea DHCPv4/6: Switch custom DHCP option config generation to libdhcp_flex_option.so (#10514)
* Services: Kea DHCPv4: emit custom DHCPv4 options via flex-option hook
Route custom DHCPv4 option rows through libdhcp_flex_option instead of
regular option-data. The custom option framework (KeaOptionDataField) already serializes values
to final wire-format hex, but Kea's native option-data path still applies
built-in option definitions and may reinterpret or drop payloads for standard
or container options (e.g. 43 and 125).
Use flex-option supersede expressions to inject the serialized bytes directly
during response construction. Preserve the existing scoping model by translating
subnet scope to an additional class, and reservation scope to either MAC address
or client-id matching. Existing option match rules are kept as client-class
membership checks inside the same expression.
Built-in option_data fields remain unchanged and continue to use native Kea
option-data generation.
* Services: Kea DHCPv6: Add same flex option hook library support as in DHCPv4, with the limitation that it reservations need to be DUID based here.
firewall: revisit previous
Well, apply needs to be pushed to render interfaces. Make
sure that we render before reloading filter which actually
calls ifgroup_setup() to rename groups.
dashboard: include interfaces widget in dashboard default. Closes https://github.com/opnsense/core/issues/10456
This is the only one that makes sense from a functional perspective.
While here, adjust the resize/style logic a bit such that
updates are also propagated on first load, which makes sure the
interfaces table renders the correct amount of columns to prevent
wasted space.
(cherry picked from commit 83236171bb98b61b2aeb97e273f8ee28a53385f8)