OPNSense/core a20161bsrc/opnsense/mvc/app/views/OPNsense/Firewall snat_rule.volt dnat_rule.volt

Remove hardcoded category colors in NAT templates as well
DeltaFile
+19-14src/opnsense/mvc/app/views/OPNsense/Firewall/snat_rule.volt
+19-14src/opnsense/mvc/app/views/OPNsense/Firewall/dnat_rule.volt
+19-14src/opnsense/mvc/app/views/OPNsense/Firewall/npt_rule.volt
+19-14src/opnsense/mvc/app/views/OPNsense/Firewall/onat_rule.volt
+76-564 files

OPNSense/core c3a0897src/etc/lighttpd_webgui/conf.d extforward.conf.example

backend: fix typo (#9846)

It's only an example address, but it may as well be valid xD

(cherry picked from commit 0a2bc2dcc695dc132230362236d1397ce87e7d0f)
DeltaFile
+2-2src/etc/lighttpd_webgui/conf.d/extforward.conf.example
+2-21 files

OPNSense/core 6ac5527src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterBaseController.php FilterController.php, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Add empty string as fallback for category color, and do not render the style in frontend if color is empty, that way fa-tag default style can be used here
DeltaFile
+8-4src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+10-63 files

OPNSense/core ba0c9fesrc/etc/rc.syshook.d/monitor 20-recover

system: one tabs vs. spaces issue

(cherry picked from commit ca2a344cb5a4c5d07e68b2893e294a871330a5b1)
DeltaFile
+1-1src/etc/rc.syshook.d/monitor/20-recover
+1-11 files

OPNSense/core de31ee3src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseListField.php

mvc: BaseListField: generic implementation of static options #9816
DeltaFile
+41-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+41-01 files

OPNSense/core 8021ed6src/opnsense/mvc/app/library/OPNsense/Firewall Rule.php, src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes PortField.php

firewall: fix running into error using well known protocols with "-" in them #9835

(cherry picked from commit e19ff66bea9eda342ee6a280204d50e23fd34190)
(cherry picked from commit 4c7b16eb4e280e10541360c6852748827c198833)
DeltaFile
+13-13src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php
+1-1src/opnsense/mvc/app/library/OPNsense/Firewall/Rule.php
+14-142 files

OPNSense/core 2abf678src/opnsense/mvc/app/models/OPNsense/Firewall Category.xml

Firewall: Categories - Prevent seperator char from being used in names, closes https://github.com/opnsense/core/issues/9845

Usually we would opt for a change in the consumer here, but since some pages (legacy and migrated legacy) use names instead of uuids, we can't fix this differently at the moment.
At the plus side, commas seem to be hardly used until now as this issue has existed for many years already.

I did look briefly in fixing getCategoryColors() to feed both color and labels, which works nicely for the newest pages, but can't be fixed for the just migrated DNAT page for example

(cherry picked from commit 06ecd4c9e221f781a92a98e84dd7b2ea0eb437fb)
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Firewall/Category.xml
+1-01 files

OPNSense/core a6727f8src/opnsense/mvc/app/models/OPNsense/OpenVPN OpenVPN.xml

openvpn: Adding options for legacy ciphers (#9829)

Signed-off-by: Bjoern Jakobsen <Bjoern.Jakobsen at lrz.de>
(cherry picked from commit 13040e25544d02f4a1262dca8d5f48a91ee17310)
DeltaFile
+46-8src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml
+46-81 files

OPNSense/core 687f5e1src/opnsense/mvc/app/views/OPNsense/Firewall onat_rule.volt dnat_rule.volt

firewal: fix nat rule enabled checks display (#9821)

(cherry picked from commit 435a36ee60f01c26c885b2525daa988872518115)
(cherry picked from commit 65b3a98547c28a2b9b75c3227ed2b24ef2212866)
DeltaFile
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/onat_rule.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/dnat_rule.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/npt_rule.volt
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/snat_rule.volt
+4-44 files

OPNSense/core 665f975src/opnsense/scripts/suricata/metadata/rules et-open.xml

Update et-open.xml (#9808)

Upgrade ET open ruleset to v7.0.3+ syntax
Update the rule files : removed 3coresec ; added dyn_dns, file_sharing, remote_access, retired, ta_abused_services

(cherry picked from commit 5ce6895e4a8d52421ec5759949ea0a40faf1d194)
DeltaFile
+7-3src/opnsense/scripts/suricata/metadata/rules/et-open.xml
+7-31 files

OPNSense/core 1120226src/opnsense/www/js opnsense_health.js

UI: restore canvas state in health graph (#9827)

Fixed health graph bug on Firefox causing graph to shrink after hovering over it for an extended amount of time. The problem was caused by ctx.save() being called repeatedly during hovering. This caused a rendering degradation, because Firefox is stricter about canvas state stack growth. Added ctx.restore() so every save state gets restored and removed from the stack so the canvas doesn't accumulate state. Graph behaves properly on Chrome and Firefox now.

Fixes #9528

(cherry picked from commit b88621a3d86b79bd4f8ffc15782e15e15e1e700d)
DeltaFile
+2-0src/opnsense/www/js/opnsense_health.js
+2-01 files

OPNSense/core fcdd527src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Remove hardcoded fallback color from categories as well
DeltaFile
+2-2src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+2-21 files

OPNSense/core c5b6839src/opnsense/mvc/app/views/OPNsense/Interface overview.volt, src/opnsense/www/js opnsense_bootgrid.js

Revert "interfaces: overview: clean up UI code and fix CARP badge alignment"

This reverts commit e10e86eb3a14c8bfac78c5f62f25cab661dba2f9.
DeltaFile
+133-130src/opnsense/mvc/app/views/OPNsense/Interface/overview.volt
+2-2src/opnsense/www/js/opnsense_bootgrid.js
+135-1322 files

OPNSense/core d5aa698src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Firewall: Rules [new]: Turn hardcoded badge colors into inherited label colors, use chip class for badges in tabulator rows
DeltaFile
+17-25src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+17-251 files

OPNSense/core feee434src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes InterfaceField.php CertificateField.php

mvc: BaseListField $hash access to static options #9816

Also make $internalStaticOptList private and reshuffle the callers
for maximum effect.
DeltaFile
+78-78src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php
+17-17src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/CertificateField.php
+16-11src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/AuthGroupField.php
+21-5src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+132-1114 files

OPNSense/core f33689bsrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes InterfaceField.php BaseListField.php

mvc: BaseListField $hash access to static options #9816
DeltaFile
+78-78src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php
+20-4src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+98-822 files

OPNSense/core 7b6e666src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes InterfaceField.php CertificateField.php, src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes InterfaceFieldTest.php CertificateFieldTest.php

mvc: move CertificateField and InterfaceField to newer static option API for #9816
DeltaFile
+21-23src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/InterfaceFieldTest.php
+13-20src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/InterfaceField.php
+12-19src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/CertificateField.php
+1-2src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+1-1src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/CertificateFieldTest.php
+48-655 files

OPNSense/core cd1cd45src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes PortFieldTest.php

tests: style
DeltaFile
+1-1src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/PortFieldTest.php
+1-11 files

OPNSense/core 0a2bc2dsrc/etc/lighttpd_webgui/conf.d extforward.conf.example

backend: fix typo (#9846)

It's only an example address, but it may as well be valid xD
DeltaFile
+2-2src/etc/lighttpd_webgui/conf.d/extforward.conf.example
+2-21 files

OPNSense/core 06ecd4csrc/opnsense/mvc/app/models/OPNsense/Firewall Category.xml

Firewall: Categories - Prevent seperator char from being used in names, closes https://github.com/opnsense/core/issues/9845

Usually we would opt for a change in the consumer here, but since some pages (legacy and migrated legacy) use names instead of uuids, we can't fix this differently at the moment.
At the plus side, commas seem to be hardly used until now as this issue has existed for many years already.

I did look briefly in fixing getCategoryColors() to feed both color and labels, which works nicely for the newest pages, but can't be fixed for the just migrated DNAT page for example
DeltaFile
+1-0src/opnsense/mvc/app/models/OPNsense/Firewall/Category.xml
+1-01 files

OPNSense/core 9d177b6src/opnsense/scripts/openvpn ovpn_event.py

VPN: OpenVPN: Instances - debounce learn-address calls so we limit the number of alias updates to a minimum.

When a lot of clients connect at the exact same time, it doesn't really make sense to keep calling the alias update procedure as logically we are only interested in the last one.
This change simply opens a file, keeps track of its modification stamp and if another updated it after us, assume that caller is responsible for making the magic happen.

Although there is a small downside to this (clients connecting constantly, nobody resposible for accounting), the gain is likely much bigger as it prevents these calls from floodin the system in all cases (saving a lot of load).
DeltaFile
+16-3src/opnsense/scripts/openvpn/ovpn_event.py
+16-31 files

OPNSense/core 75b2dedsrc/opnsense/scripts/openvpn ovpn_event.py

VPN: OpenVPN: Instances - debounce learn-address calls so we limit the number of alias updates to a minimum.

When a lot of clients connect at the exact same time, it doesn't really make sense to keep calling the alias update procedure as logically we are only interested in the last one.
This change simply opens a file, keeps track of its modification stamp and if another updated it after us, assume that caller is responsible for making the magic happen.

Although there is a small downside to this (clients connecting constantly, nobody resposible for accounting), the gain is likely much bigger as it prevents these calls from floodin the system in all cases (saving a lot of load).
DeltaFile
+16-3src/opnsense/scripts/openvpn/ovpn_event.py
+16-31 files

OPNSense/core 33f9574src/opnsense/scripts/openvpn ovpn_event.py

VPN: OpenVPN: Instances - extend logging on learn-address calls
DeltaFile
+6-0src/opnsense/scripts/openvpn/ovpn_event.py
+6-01 files

OPNSense/core eb3a99fsrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes BaseListField.php AuthGroupField.php

mvc: BaseListField: shared implementation of $internalStaticOptionList, proof of concept for https://github.com/opnsense/core/issues/9816 (#9839)

Wrap static access in protected functions which ensures content is static per inherited class:

hasStaticOptions()
getStaticOptions()
setStaticOptions(array)
resetStaticOptions()
DeltaFile
+26-0src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+7-13src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/AuthGroupField.php
+33-132 files

OPNSense/core 13040e2src/opnsense/mvc/app/models/OPNsense/OpenVPN OpenVPN.xml

openvpn: Adding options for legacy ciphers (#9829)

Signed-off-by: Bjoern Jakobsen <Bjoern.Jakobsen at lrz.de>
DeltaFile
+46-8src/opnsense/mvc/app/models/OPNsense/OpenVPN/OpenVPN.xml
+46-81 files

OPNSense/core b88621asrc/opnsense/www/js opnsense_health.js

UI: restore canvas state in health graph (#9827)

Fixed health graph bug on Firefox causing graph to shrink after hovering over it for an extended amount of time. The problem was caused by ctx.save() being called repeatedly during hovering. This caused a rendering degradation, because Firefox is stricter about canvas state stack growth. Added ctx.restore() so every save state gets restored and removed from the stack so the canvas doesn't accumulate state. Graph behaves properly on Chrome and Firefox now.

Fixes #9528
DeltaFile
+2-0src/opnsense/www/js/opnsense_health.js
+2-01 files

OPNSense/core 36b17adsrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes PortField.php, src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes PortFieldTest.php

tests: PortField: test well-known values against system #9835

Obsolete services have been removed which makes them error out.
Not sure if worth migrating or making the whole thing more clever.

Two appear to have been renamed.
DeltaFile
+28-25src/opnsense/mvc/tests/app/models/OPNsense/Base/FieldTypes/PortFieldTest.php
+2-10src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php
+30-352 files

OPNSense/core 4c7b16esrc/opnsense/mvc/app/models/OPNsense/Base/FieldTypes PortField.php

mvc: PortField: "wins" is known as "nameserver", sort list #9835

It makes sense to test all of these values in the unittest then
before this breaks during an OS update.
DeltaFile
+13-13src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/PortField.php
+13-131 files

OPNSense/core b62fca7src/www interfaces_assign.php

interfaces: capture enter key during assignment

This is done to trigger the correct action in the form.

Reported by: @sheridans
DeltaFile
+7-1src/www/interfaces_assign.php
+7-11 files

OPNSense/core e19ff66src/opnsense/mvc/app/library/OPNsense/Firewall Rule.php

firewall: fix running into error using well known protocols with "-" in them #9835

The ordering is debatable. For now just make sure that we didn't miss the
chance to look up the original one and accept it as is.
DeltaFile
+1-1src/opnsense/mvc/app/library/OPNsense/Firewall/Rule.php
+1-11 files