diff --git a/package/base-files/files/lib/network/config.sh b/package/base-files/files/lib/network/config.sh index 90f5bf742..8188203d3 100755 --- a/package/base-files/files/lib/network/config.sh +++ b/package/base-files/files/lib/network/config.sh @@ -66,6 +66,7 @@ setup_interface() { local iface="$1" local config="$2" local proto + local macaddr [ -n "$config" ] || { config=$(find_config "$iface") @@ -76,7 +77,8 @@ setup_interface() { config_get iftype "$config" type ifconfig "$iface" 2>/dev/null >/dev/null && { - # make sure the interface is removed from any existing bridge + # make sure the interface is removed from any existing bridge and brought down + ifconfig "$iface" down unbridge "$iface" } @@ -101,7 +103,8 @@ setup_interface() { # Interface settings config_get mtu "$config" mtu - $DEBUG ifconfig "$iface" ${mtu:+mtu $mtu} up + config_get macddr "$config" macaddr + $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} up pidfile="/var/run/$iface.pid" case "$proto" in