rewrite of the network scripts and configuration
[openwrt-10.03/.git] / package / base-files / default / usr / share / udhcpc / default.script
index 9fac6286c9ffcf1eb3b30a808d5899087845aee9..a244e05a157da9a45e6abbc89f4ee5f3d8e47fc6 100755 (executable)
@@ -1,18 +1,21 @@
 #!/bin/sh
 [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
+. /etc/functions.sh
+include network
 
 RESOLV_CONF="/tmp/resolv.conf"
 
 hotplug_event() {
-       nvram show 2>&- | grep _proto=dhcp | {
-               while :; do
-                       read FOO
-                       [ -z "$FOO" ] && break
-                       FOO="${FOO%%_*}"
-                       [ "$(nvram get ${FOO}_ifname)" = "${interface}" ] || continue
-                       env -i ACTION="$1" INTERFACE="${FOO}" PROTO=dhcp /sbin/hotplug iface
-               done
-       }
+       scan_interfaces
+       for ifc in $interfaces; do
+               config_get ifname $ifc ifname
+               [ "$ifname" = "$interface" ] || continue
+
+               config_get proto $ifc proto
+               [ "$proto" = "dhcp" ] || continue
+
+               env -i ACTION="$1" INTERFACE="$ifname" PROTO=dhcp /sbin/hotplug iface
+       done
 }
 
 case "$1" in
@@ -27,9 +30,10 @@ case "$1" in
 
                if [ -n "$router" ] ; then
                        echo "deleting routers"
-                       while route del default gw 0.0.0.0 dev $interface ; do :; done
+                       while route del default gw 0.0.0.0 dev $interface >&- 2>&- ; do :; done
                                        
                        for i in $router ; do
+                               echo "adding router $i"
                                route add default gw $i dev $interface
                        done
                fi
@@ -37,8 +41,8 @@ case "$1" in
                echo -n > $RESOLV_CONF
                ${domain:+echo search $domain} >> $RESOLV_CONF
                for i in $dns ; do
-                       echo adding dns $i
-                       echo nameserver $i >> $RESOLV_CONF
+                       echo "adding dns $i"
+                       echo "nameserver $i" >> $RESOLV_CONF
                done
                
                hotplug_event ifup