+ ifconfig "$iface" up 2>/dev/null >/dev/null
+ return 1
+ }
+ ;;
+ esac
+ return 0
+}
+
+set_interface_ifname() {
+ local config="$1"
+ local ifname="$2"
+
+ config_get device "$1" device
+ uci_set_state network "$config" ifname "$ifname"
+ uci_set_state network "$config" device "$device"
+}
+
+setup_interface_none() {
+ env -i ACTION="ifup" INTERFACE="$2" DEVICE="$1" PROTO=none /sbin/hotplug-call "iface" &
+}
+
+setup_interface_static() {
+ local iface="$1"
+ local config="$2"
+
+ config_get ipaddr "$config" ipaddr
+ config_get netmask "$config" netmask
+ config_get ip6addr "$config" ip6addr
+ [ -z "$ipaddr" -o -z "$netmask" ] && [ -z "$ip6addr" ] && return 1
+
+ config_get gateway "$config" gateway
+ config_get ip6gw "$config" ip6gw
+ config_get dns "$config" dns
+ config_get bcast "$config" broadcast
+
+ [ -z "$ipaddr" ] || $DEBUG ifconfig "$iface" "$ipaddr" netmask "$netmask" broadcast "${bcast:-+}"
+ [ -z "$ip6addr" ] || $DEBUG ifconfig "$iface" add "$ip6addr"
+ [ -z "$gateway" ] || $DEBUG route add default gw "$gateway" dev "$iface"
+ [ -z "$ip6gw" ] || $DEBUG route -A inet6 add default gw "$ip6gw" dev "$iface"
+ [ -z "$dns" ] || {
+ for ns in $dns; do
+ grep "$ns" /tmp/resolv.conf.auto 2>/dev/null >/dev/null || {
+ echo "nameserver $ns" >> /tmp/resolv.conf.auto