The level key words are easy to find in the source code, but knowing
which verbose description they belong to is difficult without pulling
up our source code as well. Make it explicit.
This prevents validation errors when interfaces are temporarily
disabled. Other device components received similar fixes in the
past due to this "glitch" of not offering valid devices and selectpickers
would lose their correct value on save too (the field is a bit different
here but the same principle applies).
When attaching a GIF tunnel to an IPv6 device it's more likely a LAN
device but that is being missed when WAN is reloaded here. Much of the
other code still accounts for this so this merely goes with the flow
and since we only operate in IPv6 scope that is ok.
* dhcp6: key lease map by type in addition to duid
* Update src/opnsense/scripts/dhcp/get_leases6.py
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
---------
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
In the old situation, one would need explicit pf rules on top of
this feature to make this work. With the removal of IPFW,
those rules are now enough to make the same happen.
Usually log lines start with a line ending, which means the first hit is always an empty line with reading things backwards.
This empty line has no relevance, but only indicates we're at the end of the file.
This commits stores the file starting position in all cases and ignores the output when we trying to yield the end of the file.
* Interfaces: Devices: Bridge - refactor to MVC for https://github.com/opnsense/core/issues/8353
* move existing properties to model which overlays existing config path
* add a simple wrapper script for [re]configuration which diffs and applies using the new _interfaces_bridge_configure() implementation
* Update src/opnsense/mvc/app/models/OPNsense/Interfaces/Bridge.xml
Co-authored-by: Franco Fichtner <franco@opnsense.org>
---------
Co-authored-by: Franco Fichtner <franco@opnsense.org>
In order to plan->do->act we need the current settings of the existing bridge, which is where legacy_interfaces_details() comes into play, which needs some additional parsing.
Next we can diff per type of setting and apply when changed.
Although this is highly uncommon, it's very annoying when the certificate path leads to an "Fatat error: Allowed memory size exhausted...".
If we do end in a loop (e.g. same ca already in the path), exit the calculation and return what we found sofar.
* dashboard: Use search link for certificates not in the trust model
* dashboard: Use toLocaleDateString to only display the expiry date but not the exact time.
* dashboard: Show the commonname of a certificate if it exists. Since certificates from external sources all have the same description, they would not be easily distinguished otherwise.
* Fix style
* dashboard: The value of hidden items must be changed to uuid to ensure uniqueness when hiding certificates
* dashboard: Simplify hiddenItemOptions value
We do this for different reasons, but mainly for code maintenance
and simplicity. It also fixes a few aquire/display bugs with
overlapping linl-local VIPs across interfaces, but not all.
* dnsmasq: Implement a light validation for option6 values as they require to be wrapped inside square brackets if they contain an IPv6 address
* dnsmasq: Improve the IPv6 bracket check, also handle multiple ipv6 addresses that are comma separated, use isIpv6Address()
* dnsmasq: Put IPv6 value check inline since dhcp-match and dhcp-option have been unified in master.
* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
* dnsmasq: trim value directly
---------
Co-authored-by: Ad Schellevis <AdSchellevis@users.noreply.github.com>
The length and input isn't bound but when writing resolv.conf
we will adhere to the requirement mentioned in the man page:
The search list is currently limited to six domains
with a total of 256 characters.
We simply don't always know how many the system was being provided
with from the ISP so it is what it is.