add copyright headers to base-files scripts and config files
[openwrt.git] / package / base-files / default / usr / share / udhcpc / default.script
index 6c64aa3..4604648 100755 (executable)
@@ -1,38 +1,51 @@
 #!/bin/sh
-# udhcpc script edited by Tim Riker <Tim@Rikers.org>
-# (slightly modified for openwrt)
-
 [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
+. /etc/config/network
 
 RESOLV_CONF="/tmp/resolv.conf"
 
-case "$1" in
-        deconfig)
-                ifconfig $interface 0.0.0.0
-                ;;
-
-        renew|bound)
-                ifconfig $interface $ip \
-                netmask ${subnet:-255.255.255.0} \
-                broadcast ${broadcast:-+}
+hotplug_event() {
+       for ifname in lan wan wifi ${ifnames}; do
+               eval "proto=\"\${${ifname}_proto}\""
+               eval "if=\"\${${ifname}_ifname}\""
+               [ "$proto" = "dhcp" ] || continue
+               [ "$if" = "$interface" ] || continue
+               env -i ACTION="$1" INTERFACE="$ifname" PROTO=dhcp /sbin/hotplug iface
+       done
+}
 
-                if [ -n "$router" ] ; then
-                        echo "deleting routers"
-                        while route del default gw 0.0.0.0 dev $interface ; do
-                                :
-                        done
+case "$1" in
+       deconfig)
+               ifconfig $interface 0.0.0.0
+               hotplug_event ifdown
+       ;;
+       renew|bound)
+               ifconfig $interface $ip \
+               netmask ${subnet:-255.255.255.0} \
+               broadcast ${broadcast:-+}
 
-                        for i in $router ; do
-                                route add default gw $i dev $interface
-                        done
-                fi
+               if [ -n "$router" ] ; then
+                       echo "deleting routers"
+                       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
 
-                echo -n > $RESOLV_CONF
-                ${domain:+echo search $domain} >> $RESOLV_CONF
-                for i in $dns ; do
-                        echo adding dns $i
-                        echo nameserver $i >> $RESOLV_CONF
-                done
-                ;;
+               echo -n > $RESOLV_CONF
+               ${domain:+echo search $domain} >> $RESOLV_CONF
+               for i in $dns ; do
+                       echo "adding dns $i"
+                       echo "nameserver $i" >> $RESOLV_CONF
+               done
+               
+               hotplug_event ifup
+               
+               # user rules
+               [ -f /etc/udhcpc.user ] && . /etc/udhcpc.user
+       ;;
 esac
+
 exit 0
This page took 0.026317 seconds and 4 git commands to generate.