* Allow the bridge to come up without members. While the GUI made sure
to avoid empty bridges there is no reason for it and underneath if the
interface was disabled the GUI made the interface disappear from the
selection. So now allow an empty bridge (may be nice for migration)
and show disabled interfaces in the edit page. Fix all callers to not
assume the member property is always set. Can probably go away once
bridges are moved to MVC.
* Inline interface_bridge_add_member() since link_interface_to_bridge()
is the only caller. Improve the parameter passing a bit too.
* Add bridge interface return code to (_)interfaces_bridge_configure().
* Improve device resolution and a few mwexecf() replacements.
* Log the reason why a device could not be attached to bridge when one
device is not there as expected.
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.
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.
OpenVPN was put on the "delayed" ("virtual") list in d090ccc3dceb4
but more out of convenience than common sense. To make sense of it
now check if the assigned device is provided by the plugin system
except for a bridge which is still having a special role in the code.
The role of bridges is somewhat disputed. We may be able to set them
up earlier detaching them from the older ordering logic but more tests
need to be done in order to pull it off.
Add *Interfaces: Other Types: Loopback*.
- while here, also add the device name in interfaces.php and support setting an initial description on new interfaces (copy device description if available)
- check usages of lo0 and change to lo if not specific for our default loopback
Use original element (<div>/<small>) with "data-for" attribute.
The old jquery "for" attribute selectors can be removed once conversion to "data-for" attribute is complete (including plugins).
The old jquery selectors to remove once conversion is complete.
opnsense_ui.js & head.inc
$("*[for='" + $(this).attr('id') + "']")....
$('[for*="help_for"]')....
width, align, valign, cellpadding, cellspacing, border, summary
Error: The width attribute on the table element is obsolete. Use CSS instead.
Error: The align attribute on the table element is obsolete. Use CSS instead.
Error: The valign attribute on the table element is obsolete. Use CSS instead.
Error: The cellpadding attribute on the table element is obsolete. Use CSS instead.
Error: The cellspacing attribute on the table element is obsolete. Use CSS instead.
Error: The border attribute on the table element is obsolete. Use CSS instead.
Error: The summary attribute on the table element is obsolete. Consider describing the structure of the table in a caption element or in a figure element containing the table; or, simplify the structure of the table so that no description is needed.
o consolidate "unbound_" prefix for unbound.inc for pluginification
o services.inc includes unbound.inc rightfully, a bit like a
plugin would do in the future, but this also means we can
zap all requires from top pages, which are entirely spurious.
o get_dns_servers() moves to system.inc because it is used by
status_interfaces.php
o RIP read_hosts()