delete_bifcs.cgi and save_bifc.cgi only called deactivate_interface()
which brings the link down but never removes the virtual device.
Added destroy_interface_device() that does ip link delete for these.
Also had to add bridge creation (ip link add type bridge) because unlike
bond (81d44f8) and VLAN (7761066) that was still missing.
Other fixes in this commit:
debian-linux-lib.pl: bonding opts were single-element arrays causing
trailing spaces in /etc/network/interfaces on every save.
linux-lib.pl: ip link set up/down was gated behind a
bond/vlan/no-ifconfig check but ip addr add runs unconditionally - so
interfaces got an IP but stayed DOWN. Dropped the unnecessary guard.
ⓘ Follow up on #2794 by making `redirect_port` work even when `redirect_host` is not set. Keep existing host precedence and correctly handle proxy headers, IPv6 addresses, default ports, and invalid port values.
ⓘ Fix linked-server by keeping the child URL recognizable to the parent, then generating the final WebSocket URL on the same host and port the browser is using. This keeps the connection working with the current Webmin session.
ⓘ Normalize undefined and empty XML-RPC values during encoding and parsing, preventing uninitialized-value warnings and uncontrolled error-log growth.
https://github.com/webmin/webmin/issues/2793
ⓘ Extend HTTP and FTP download callbacks with destination validation while preserving legacy tracking callbacks and enforcing SSRF policy across redirects, proxies, caches, and direct/passive sockets.
https://github.com/webmin/webmin/pull/2789#discussion_r3567985773
Block non-public HTTP, HTTPS and FTP destinations by default in File Manager, Mailboxes and Upload and Download, with per-user IP/CIDR exceptions, redirect and proxy protection, cache isolation, and current-ACL enforcement for scheduled jobs.
ⓘ Create and detect VLAN devices before applying live configuration, parse live VLANs with their physical parent instead of a virtual alias, normalize persisted dotted VLAN names when the parent device exists, consistently target the real VLAN device across the ip, ifup and vconfig paths, skip recreating existing devices or activating absent disabled ones, and add regression coverage.
https://github.com/webmin/webmin/pull/2785
ⓘ Require a live Usermin miniserv PID before allowing one-time login URL creation, so the feature is only offered when the session backend can actually be used.