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*4882a593SmuzhiyunIPCMD=`which ip` 9*4882a593Smuzhiyun 10*4882a593Smuzhiyuncase $1 in 11*4882a593Smuzhiyun bound|renew) 12*4882a593Smuzhiyun $IPCMD address add broadcast $broadcast $ip/$subnet dev $interface 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun if [ -n "$router" ]; then 15*4882a593Smuzhiyun echo "$0: Resetting default routes" 16*4882a593Smuzhiyun while $IPCMD route del default dev $interface; do :; done 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun metric=0 19*4882a593Smuzhiyun for i in $router; do 20*4882a593Smuzhiyun $IPCMD route add default dev $interface via $router metric $metric 21*4882a593Smuzhiyun metric=$(($metric + 1)) 22*4882a593Smuzhiyun done 23*4882a593Smuzhiyun fi 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun # Update resolver configuration file 26*4882a593Smuzhiyun R="" 27*4882a593Smuzhiyun [ -n "$domain" ] && R="domain $domain 28*4882a593Smuzhiyun" 29*4882a593Smuzhiyun for i in $dns; do 30*4882a593Smuzhiyun echo "$0: Adding DNS $i" 31*4882a593Smuzhiyun R="${R}nameserver $i 32*4882a593Smuzhiyun" 33*4882a593Smuzhiyun done 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun if [ -x /sbin/resolvconf ]; then 36*4882a593Smuzhiyun echo -n "$R" | resolvconf -a "${interface}.udhcpc" 37*4882a593Smuzhiyun else 38*4882a593Smuzhiyun echo -n "$R" > "$RESOLV_CONF" 39*4882a593Smuzhiyun fi 40*4882a593Smuzhiyun ;; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun deconfig) 43*4882a593Smuzhiyun if [ -x /sbin/resolvconf ]; then 44*4882a593Smuzhiyun resolvconf -d "${interface}.udhcpc" 45*4882a593Smuzhiyun fi 46*4882a593Smuzhiyun $IPCMD address flush dev $interface 47*4882a593Smuzhiyun ;; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun leasefail) 50*4882a593Smuzhiyun echo "$0: Lease failed: $message" 51*4882a593Smuzhiyun ;; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun nak) 54*4882a593Smuzhiyun echo "$0: Received a NAK: $message" 55*4882a593Smuzhiyun ;; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun *) 58*4882a593Smuzhiyun echo "$0: Unknown udhcpc command: $1"; 59*4882a593Smuzhiyun exit 1; 60*4882a593Smuzhiyun ;; 61*4882a593Smuzhiyunesac 62