mirror of
https://github.com/apache/nuttx.git
synced 2025-05-09 14:57:00 +08:00

The mis-referenced variable probably did not cause an error, but simply led to an empty string instead of the real network interface name.
71 lines
2.1 KiB
Bash
71 lines
2.1 KiB
Bash
#!/bin/sh
|
|
# Busybox udhcpc dispatcher script.
|
|
# Copyright (C) 2009 by Axel Beckert.
|
|
# Copyright (C) 2014 by Michael Tokarev.
|
|
#
|
|
# Based on the busybox example scripts and the old udhcp source
|
|
# Modified base on default.scripts.
|
|
|
|
log() {
|
|
logger -t "udhcpc[$PPID]" -p daemon.$1 "$interface: $2"
|
|
}
|
|
|
|
SIMWIFILOG_FILE=/var/run/simwifi/simwifi.log
|
|
DEFCONF_FILE=/var/run/simwifi/simwifi.conf
|
|
case $1 in
|
|
bound|renew)
|
|
|
|
# Configure new IP address.
|
|
# Do it unconditionally even if the address hasn't changed,
|
|
# to also set subnet, broadcast, mtu, ...
|
|
busybox ifconfig $interface ${mtu:+mtu $mtu} \
|
|
$ip netmask $subnet ${broadcast:+broadcast $broadcast}
|
|
|
|
# defwan equals to wlanx, should add router and DEF_NS
|
|
|
|
defwan=$(cat $DEFCONF_FILE | grep defwan | awk -F':' '{print $2}')
|
|
[ ".$defwan" = ".wlan0" ] && {
|
|
# get current ("old") routes (after setting new IP)
|
|
crouter=$(busybox ip -4 route show dev $interface |
|
|
busybox awk '$1 == "default" { print $3; }')
|
|
router="${router%% *}" # linux kernel supports only one (default) route
|
|
if [ ".$router" != ".$crouter" ]; then
|
|
# reset just default routes
|
|
busybox ip -4 route flush exact 0.0.0.0/0 dev $interface
|
|
fi
|
|
|
|
if [ -n "$router" ]; then
|
|
# special case for /32 subnets: use onlink keyword
|
|
[ ".$subnet" = .255.255.255.255 ] \
|
|
&& onlink=onlink || onlink=
|
|
busybox ip -4 route add default via $router dev $interface $onlink
|
|
log info "udhcpc add router $router on $interface"
|
|
fi
|
|
|
|
DEF_NS="nameserver 8.8.8.8"
|
|
RESOLV_CONF_FILE=${RESOLV_CONF:-/etc/resolv.conf}
|
|
[ -f $RESOLV_CONF_FILE -a -z "$(cat $RESOLV_CONF_FILE | grep 8.8.8.8)" ] && {
|
|
echo "$DEF_NS" >> "$RESOLV_CONF_FILE"
|
|
}
|
|
}
|
|
|
|
log info "$1: IP=$ip/$subnet router=$router domain=\"$domain\" dns=\"$dns\" lease=$lease"
|
|
;;
|
|
|
|
deconfig)
|
|
busybox ip link set $interface up
|
|
busybox ip -4 addr flush dev $interface
|
|
busybox ip -4 route flush dev $interface
|
|
log notice "deconfigured"
|
|
;;
|
|
|
|
leasefail | nak)
|
|
log err "configuration failed: $1: $message"
|
|
;;
|
|
|
|
*)
|
|
echo "$0: Unknown udhcpc command: $1" >&2
|
|
exit 1
|
|
;;
|
|
esac
|