tizen 2.3.1 release
[external/busybox.git] / debian / tree / busybox-udeb / usr / share / udhcpc / default.script
1 #!/bin/sh -e
2
3 # udhcpc client script to be used by Debian Installer
4 # Copyright (C) 2009, 2010 Otavio Salvador <otavio@debian.org>
5
6 comma_separate() {
7         echo "$1" | sed 's/ /,/g'
8 }
9
10 do_resolv_conf() {
11         local cfg=/etc/resolv.conf
12
13         if [ -n "$domain" ] || [ -n "$dns" ]; then
14                 echo -n > $cfg
15                 if [ -n "$domain" ]; then
16                         echo search $domain >> $cfg
17                 fi
18
19                 for i in $dns ; do
20                         echo nameserver $i >> $cfg
21                 done
22         fi
23 }
24
25 do_hostname() {
26         local current=$(cat /proc/sys/kernel/hostname)
27
28         if [ -z "$current" ] || [ "$current" = "(none)" ]; then
29                 echo "$hostname" > /proc/sys/kernel/hostname
30         fi
31 }
32
33 do_leases() {
34         local file="/var/lib/udhcp/udhcpc.leases"
35
36         mkdir -p /var/lib/udhcp
37         cat >> $file <<EOF
38 lease {
39   interface "$interface";
40   fixed-address $ip;
41   filename "$boot_file";
42   option subnet-mask $subnet;
43   option domain-name "$domain";
44   option host-name "$hostname";
45   option domain-name-servers $(comma_separate "$dns");
46   option dhcp-server-identifier $serverid;
47   option dhcp-lease-time $lease;
48   option routers $(comma_separate "$router");
49   option ntp-servers $(comma_separate "$ntpsrv");
50 }
51 EOF
52 }
53
54 case "$1" in
55         deconfig)
56                 ip link set "$interface" up
57                 ip addr flush dev "$interface"
58                 ;;
59
60         bound|renew)
61                 do_hostname
62                 
63                 ip addr add "$ip/$subnet" dev "$interface"
64
65                 if [ -n "$mtu" ]; then
66                         ip link set "$interface" mtu "$mtu"
67                 fi
68
69                 for r in "$router"; do
70                         ip route add default via "$r"
71                 done
72
73                 do_resolv_conf
74
75                 # Get the domain name into a file suitable for netcfg to read.
76                 printf "$domain" > /tmp/domain_name
77
78                 if [ -n "$ntpsrv" ]; then
79                         printf "$ntpsrv" > /tmp/dhcp-ntp-servers
80                 fi
81
82                 logger -t udhcpc "Got IP $ip (using $interface) and routing through $router"
83
84                 do_leases
85                 ;;
86         *)
87                 echo "udhcpc: has been called with an unknown param: $1"
88                 ;;
89 esac
90
91 exit 0