50c52e6fe3e5fb6eeb17b638920de2ec875ea192
[packages/trusty/cirros-testvm.git] / cirros-testvm / src-cirros / buildroot-2015.05 / package / busybox / udhcpc.script
1 #!/bin/sh
2
3 # udhcpc script edited by Tim Riker <Tim@Rikers.org>
4
5 [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
6
7 RESOLV_CONF="/etc/resolv.conf"
8 [ -e $RESOLV_CONF ] || touch $RESOLV_CONF
9 [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
10 [ -n "$subnet" ] && NETMASK="netmask $subnet"
11
12 case "$1" in
13         deconfig)
14                 /sbin/ifconfig $interface up
15                 /sbin/ifconfig $interface 0.0.0.0
16
17                 # drop info from this interface
18                 # resolv.conf may be a symlink to /tmp/, so take care
19                 TMPFILE=$(mktemp)
20                 grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
21                 cat $TMPFILE > $RESOLV_CONF
22                 rm -f $TMPFILE
23
24                 if [ -x /usr/sbin/avahi-autoipd ]; then
25                         /usr/sbin/avahi-autoipd -k $interface
26                 fi
27                 ;;
28
29         leasefail|nak)
30                 if [ -x /usr/sbin/avahi-autoipd ]; then
31                         /usr/sbin/avahi-autoipd -wD $interface --no-chroot
32                 fi
33                 ;;
34
35         renew|bound)
36                 if [ -x /usr/sbin/avahi-autoipd ]; then
37                         /usr/sbin/avahi-autoipd -k $interface
38                 fi
39                 /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
40
41                 if [ -n "$router" ] ; then
42                         echo "deleting routers"
43                         while route del default gw 0.0.0.0 dev $interface 2> /dev/null; do
44                                 :
45                         done
46
47                         for i in $router ; do
48                                 route add default gw $i dev $interface
49                         done
50                 fi
51
52                 # drop info from this interface
53                 # resolv.conf may be a symlink to /tmp/, so take care
54                 TMPFILE=$(mktemp)
55                 grep -vE "# $interface\$" $RESOLV_CONF > $TMPFILE
56                 cat $TMPFILE > $RESOLV_CONF
57                 rm -f $TMPFILE
58
59                 [ -n "$domain" ] && echo "search $domain # $interface" >> $RESOLV_CONF
60                 for i in $dns ; do
61                         echo adding dns $i
62                         echo "nameserver $i # $interface" >> $RESOLV_CONF
63                 done
64                 ;;
65 esac
66
67 HOOK_DIR="$0.d"
68 for hook in "${HOOK_DIR}/"*; do
69     [ -f "${hook}" -a -x "${hook}" ] || continue
70     "${hook}" "${@}"
71 done
72
73 exit 0