diff options
Diffstat (limited to 'meta/recipes-core/busybox/files/simple.script')
-rw-r--r-- | meta/recipes-core/busybox/files/simple.script | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/meta/recipes-core/busybox/files/simple.script b/meta/recipes-core/busybox/files/simple.script new file mode 100644 index 0000000000..757e487b97 --- /dev/null +++ b/meta/recipes-core/busybox/files/simple.script | |||
@@ -0,0 +1,88 @@ | |||
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 | [ -n "$subnet" ] && NETMASK="netmask $subnet" | ||
9 | |||
10 | # return 0 if root is mounted on a network filesystem | ||
11 | root_is_nfs() { | ||
12 | sed -n 's/^[^ ]* \([^ ]*\) \([^ ]*\) .*$/\1 \2/p' /proc/mounts | | ||
13 | grep -q "^/ \(nfs\|smbfs\|ncp\|coda\)$" | ||
14 | } | ||
15 | |||
16 | have_bin_ip=0 | ||
17 | if [ -x /sbin/ip ]; then | ||
18 | have_bin_ip=1 | ||
19 | BROADCAST="broadcast +" | ||
20 | fi | ||
21 | |||
22 | [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" | ||
23 | |||
24 | case "$1" in | ||
25 | deconfig) | ||
26 | if [ -x /sbin/resolvconf ]; then | ||
27 | /sbin/resolvconf -d "${interface}.udhcpc" | ||
28 | fi | ||
29 | if ! root_is_nfs ; then | ||
30 | if [ $have_bin_ip -eq 1 ]; then | ||
31 | ip addr flush dev $interface | ||
32 | ip link set dev $interface up | ||
33 | else | ||
34 | /sbin/ifconfig $interface 0.0.0.0 | ||
35 | fi | ||
36 | fi | ||
37 | ;; | ||
38 | |||
39 | renew|bound) | ||
40 | if [ $have_bin_ip -eq 1 ]; then | ||
41 | ip addr add dev $interface local $ip/$mask $BROADCAST | ||
42 | else | ||
43 | /sbin/ifconfig $interface $ip $BROADCAST $NETMASK | ||
44 | fi | ||
45 | |||
46 | if [ -n "$router" ] ; then | ||
47 | if ! root_is_nfs ; then | ||
48 | if [ $have_bin_ip -eq 1 ]; then | ||
49 | while ip route del default 2>/dev/null ; do | ||
50 | : | ||
51 | done | ||
52 | else | ||
53 | while route del default gw 0.0.0.0 dev $interface 2>/dev/null ; do | ||
54 | : | ||
55 | done | ||
56 | fi | ||
57 | fi | ||
58 | |||
59 | metric=0 | ||
60 | for i in $router ; do | ||
61 | if [ $have_bin_ip -eq 1 ]; then | ||
62 | ip route add default via $i metric $metric | ||
63 | else | ||
64 | route add default gw $i dev $interface metric $metric 2>/dev/null | ||
65 | fi | ||
66 | metric=$(($metric + 1)) | ||
67 | done | ||
68 | fi | ||
69 | |||
70 | # Update resolver configuration file | ||
71 | R="" | ||
72 | [ -n "$domain" ] && R="domain $domain | ||
73 | " | ||
74 | for i in $dns; do | ||
75 | echo "$0: Adding DNS $i" | ||
76 | R="${R}nameserver $i | ||
77 | " | ||
78 | done | ||
79 | |||
80 | if [ -x /sbin/resolvconf ]; then | ||
81 | echo -n "$R" | /sbin/resolvconf -a "${interface}.udhcpc" | ||
82 | else | ||
83 | echo -n "$R" > "$RESOLV_CONF" | ||
84 | fi | ||
85 | ;; | ||
86 | esac | ||
87 | |||
88 | exit 0 | ||