26b95c1b927d7e004ab483a7ebfce78c6ef7133c
[external/busybox.git] / debian / tree / udhcpc / usr / share / udhcpc / default.script
1 #!/bin/sh
2 # Busybox udhcpc dispatcher script. Copyright (C) 2009 by Axel Beckert.
3 #
4 # Based on the busybox example scripts and the old udhcp source
5 # package default.* scripts.
6
7 RESOLV_CONF="/etc/resolv.conf"
8
9 case $1 in
10     bound|renew)
11         [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
12         [ -n "$subnet" ] && NETMASK="netmask $subnet"
13
14         /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
15
16         if [ -n "$router" ]; then
17             echo "$0: Resetting default routes"
18             while /sbin/route del default gw 0.0.0.0 dev $interface; do :; done
19
20             metric=0
21             for i in $router; do
22                 /sbin/route add default gw $i dev $interface metric $metric
23                 metric=$(($metric + 1))
24             done
25         fi
26
27         # Update resolver configuration file
28         R=""
29         [ -n "$domain" ] && R="domain $domain
30 "
31         for i in $dns; do
32             echo "$0: Adding DNS $i"
33             R="${R}nameserver $i
34 "
35         done
36
37         if [ -x /sbin/resolvconf ]; then
38             echo -n "$R" | resolvconf -a "${interface}.udhcpc"
39         else
40             echo -n "$R" > "$RESOLV_CONF"
41         fi
42         ;;
43
44     deconfig)
45         if [ -x /sbin/resolvconf ]; then
46             resolvconf -d "${interface}.udhcpc"
47         fi
48         /sbin/ifconfig $interface 0.0.0.0
49         ;;
50
51     leasefail)
52         echo "$0: Lease failed: $message"
53         ;;
54
55     nak)
56         echo "$0: Received a NAK: $message"
57         ;;
58
59     *)
60         echo "$0: Unknown udhcpc command: $1";
61         exit 1;
62         ;;
63 esac