Cheers,
--
Cristian
--- busybox-svn/examples/udhcp/simple.script (revision 26144)
+++ busybox-svn/examples/udhcp/simple.script (working copy)
@@ -2,45 +2,70 @@
# udhcpc script edited by Tim Riker <[email protected]>
-[ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1
+tag="${0##*/}[$$]"
-RESOLV_CONF="/etc/resolv.conf"
-NETMASK=""
-[ -n "$subnet" ] && NETMASK="netmask $subnet"
+croak() {
+ echo "$tag: $*" >&2
+}
+
+[ $# -gt 0 ] && [ "$1" ] || {
+ croak "missing or empty argument(s)"
+ exit 1
+}
+
+RESOLV_CONF=/etc/resolv.conf
+NETMASK=
+[ -z "$subnet" ] || NETMASK="netmask $subnet"
BROADCAST="broadcast +"
-[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast"
+[ -z "$broadcast" ] || BROADCAST="broadcast $broadcast"
case "$1" in
deconfig)
echo "Setting IP address 0.0.0.0 on $interface"
- ifconfig $interface 0.0.0.0
+ ifconfig $interface 0.0.0.0 || {
+ croak "failed to $1 $interface"
+ exit 1
+ }
;;
renew|bound)
echo "Setting IP address $ip on $interface"
- ifconfig $interface $ip $NETMASK $BROADCAST
+ ifconfig $interface $ip $NETMASK $BROADCAST || {
+ croak "failed to $1 $interface"
+ exit 1
+ }
- if [ -n "$router" ] ; then
+ if [ "$router" ]; then
echo "Deleting routers"
- while route del default gw 0.0.0.0 dev $interface ; do
+ while route del default gw 0.0.0.0 dev $interface; do
:
done
metric=0
- for i in $router ; do
- echo "Adding router $i"
- route add default gw $i dev $interface metric $((metric++))
+ for r in $router; do
+ echo "Adding router $r"
+ route add default gw $r dev $interface \
+ metric $((metric++)) || {
+ croak "failed"
+ exit 1
+ }
done
fi
- echo "Recreating $RESOLV_CONF"
- echo -n > $RESOLV_CONF-$$
- [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF-$$
- for i in $dns ; do
- echo " Adding DNS server $i"
- echo nameserver $i >> $RESOLV_CONF-$$
- done
- mv $RESOLV_CONF-$$ $RESOLV_CONF
+ if [ "$dns" ]; then
+ echo "Recreating $RESOLV_CONF"
+ echo -n > $RESOLV_CONF-$$ || {
+ croak "failed; readonly fs?"
+ exit 1
+ }
+ [ -z "$domain" ] ||
+ echo search $domain >> $RESOLV_CONF-$$
+ for d in $dns; do
+ echo " Adding DNS server $d"
+ echo nameserver $d >> $RESOLV_CONF-$$
+ done
+ mv -f $RESOLV_CONF-$$ $RESOLV_CONF
+ fi
;;
esac
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox