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