Here comes the new UCI. Enjoy :)
[openwrt/svn-archive/archive.git] / package / base-files / files / lib / network / config.sh
index 6856582974df089dee35ed58aef41cb392797496..611da718cd5cc88d4d60be56b3be4c363d408ef3 100755 (executable)
@@ -74,7 +74,7 @@ prepare_interface() {
        # if we're called for the bridge interface itself, don't bother trying
        # to create any interfaces here. The scripts have already done that, otherwise
        # the bridge interface wouldn't exist.
-       [ "br-$config" = "$iface" -o -f "$iface" ] && return 0;
+       [ "br-$config" = "$iface" -o -e "$iface" ] && return 0;
        
        ifconfig "$iface" 2>/dev/null >/dev/null && {
                # make sure the interface is removed from any existing bridge and brought down
@@ -138,8 +138,9 @@ setup_interface() {
        # Interface settings
        config_get mtu "$config" mtu
        config_get macaddr "$config" macaddr
-       $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} up
-       uci set "/var/state/network.$config.ifname=$iface"
+       grep "$iface:" /proc/net/dev > /dev/null && \
+               $DEBUG ifconfig "$iface" ${macaddr:+hw ether "$macaddr"} ${mtu:+mtu $mtu} up
+       uci_set_state network "$config" ifname "$iface"
 
        pidfile="/var/run/$iface.pid"
        case "$proto" in
@@ -150,12 +151,14 @@ setup_interface() {
                        [ -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"
+                       [ -z "$ip6gw" ] || $DEBUG route -A inet6 add default gw "$ip6gw"
                        [ -z "$dns" ] || {
                                for ns in $dns; do
                                        grep "$ns" /tmp/resolv.conf.auto 2>/dev/null >/dev/null || {