X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=package%2Fbase-files%2Fdefault%2Fusr%2Fshare%2Fudhcpc%2Fdefault.script;h=a244e05a157da9a45e6abbc89f4ee5f3d8e47fc6;hb=c4f3575368c5aeef4134d82125df2814d688cc2a;hp=9fac6286c9ffcf1eb3b30a808d5899087845aee9;hpb=0bb68e81eca839c8eed0c629b403ac558ea662e6;p=openwrt-10.03%2F.git diff --git a/package/base-files/default/usr/share/udhcpc/default.script b/package/base-files/default/usr/share/udhcpc/default.script index 9fac6286c..a244e05a1 100755 --- a/package/base-files/default/usr/share/udhcpc/default.script +++ b/package/base-files/default/usr/share/udhcpc/default.script @@ -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