From a top-down perspective it only makes sense if ddns is enabled
globally, but in this case someone went copy+paste a bit too much.
Since now we force ddns-hostname from global state it makes sense
to tie the static override to this as well instead of making a sub-
switch for global functionality for an optional field to smoothen
the expected result.
If this override is actually useful is another question entirely.
* Wireless: Add EAP support for infrastructure mode
Add configuration for WPA2 Enterprise authentication for Wireless
infrastructure mode:
* EAP modes TLS, TTLS and PEAP
* Phase 2 modes MD5 and MSCHAPv2
* CA certificate for server verification
* Certificate for client authentication
* Wireless: dynamically show/hide relevant properties
For wireless interface configuration show/hide only currently
relevant settings to facilitate configuration.
* Show WEP settings only when WEP is enabled
* Show WPA settings only when WPA is enabled
* Show EAP settings only when EAP is enabled
* Show IEEE 802.1X settings only when relevant
* Hide AP-only/Adhoc-only settings when infrastructure mode
is selected
Reduce line wrap:
Remove "Dest " from the destination port header. Provides little value at the expense of increase line wrap. In this context and column position (to right of destination address) it is obvious to be the destination port. Source port in this context and column position would make no sense.
* Return a useful message to the UI if no mount is found in the model XML.
Otherwise this condition results in a SimpleXMLElement error, trying to
parse an empty string in toXml(), `$xml = new SimpleXMLElement($xml_root_node);`
Make sure selectpicker doesn't expand up underneath
the header making the first item not selectible under
certain conditions during expansion (scroll at 0).
The device reconfigure is done unconditionally before configuring the attached
interface. If we use reload we will configure the interface again, but if the
interface is disabled we wouldn't trigger the device creation. So go back to
the former code which didn't exhibit any real issue before we used $reload.
This goes for all "known" devices. We need to be careful of reload loops
that create a device and then reload it which could trigger another interface
configure, but at the moment at least all $reload consumers are outside of
the plugin device code / single action driggers.
Also see: 90f471cb19
ipaddr(v6) is not set when not configured which makes sense
but PHP wants us to acknowlege that we really want nothing
when the value doesn't exist. Stuffing it through the parse_config()
was another idea but in practice in legacy code null equals
<sometag/> and '' equals <sometag></sometag> so if we prime both
fields using null we write them back as empty which isn't bad per
se but also best avoided.
On failure of "pw" command the explode would split
"pw: no such user `foobar'" and then later check it.
If the user name was "pw" that would be suboptimal
for eligbility.
Instead ignore stderr and do not fill $userattrs which
is already handled by the if below but make it more
explicit using === null comparision.
interfaces_configure() is unaffected. While looking at the code
decided to make all callers except newwanip and vxlan hook use
$reload to request a full reconfiguration as that is most likely
what the user would expect in these cases in the first place.
We will be adding NPT logging support because the infrastructure
already supports it. 1:1 is a bit harder to deal with so hands
off for now and see how this works out.
Store debug and deployment and keep production as the implied default
if we want to change this later we can't get out of it without a migration
which we don't have for legacy configuration storage at the moment.
It's really not nice to fudge a link-local in dhcp code as the
bridge has a separate setting for it since 2019.
While here remove the restriction for bridge members on relay
that seems to originate from m0n0wall and abandoned by pfSense
in 2020.
Discussed with @swhite2 conceptually before and upon further
inspection we do not rely on the correct naming as long as the
number mapping remains correct.
This makes debug mode work on PHP 7.4 as well. PHP 8 is unaffected.
This reverts commit f83a74d4961c2a0c0b3500d8092590fdb17f534f.
The problem here is that people assign dynamic IP pool range address
to static device but dhcpd doesn't care about the static assignment
and will just hand out the IP again for a second device.
Also see: #5810
Here we remove all persistently stored data from /root/var as configured
by the *_var_mfs rc variable. The cap should be able to be adjusted in
the GUI but will follow in a separate commit.
Eventually this also helps us with #5475.
Currently we will call parseOptionData() for each field method in the list, which shouldn't be needed as the underlying model can't change while parsing. Ideally we would extend SimpleXMLElement to offer a sticky/cached version of the parser or cache results for model targets, the latter has the disadvantage that parseXml() should keep track of the path in the model in order to know what it already did.
As this is one of the last "hotspots" according to the profiler. it feels like a good idea to at least document the opportunity for future reference.
Turns out the upgrade to php80 probably increased strictness of 0 == null, revealing a flaw in the AutoNumberField implementation. Easy fix is to never start at 0 unless explicitly set, in which case it's not an issue.
Since PHP80 decided to turn certain notices into warnings, a way to silence these is necessary, which also presents us with the opportunity to make this configurable.