| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- #!/bin/sh
- [ -z "$1" ] && echo "Error: should be run by udhcpc" && exit 1
- . /etc/functions.sh
- include /lib/network
- RESOLV_CONF="/tmp/resolv.conf.auto"
- hotplug_event() {
- 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="$ifc" DEVICE="$ifname" PROTO=dhcp /sbin/hotplug-call iface
- 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:-+}
- [ -n "$router" ] && {
- for i in $router ; do
- echo "adding router $i"
- route add default gw $i dev $interface
- valid="$valid|$i"
- done
- echo "deleting old routes"
- $(route -n | awk '/^0.0.0.0\W{9}('$valid')\W/ {next} /^0.0.0.0/ {print "route del -net "$1" gw "$2";"}')
- }
-
- [ -n "$dns" ] && {
- 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
|