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 7RESOLV_CONF="/etc/resolv.conf" 8 9case $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 ;; 63esac 64