factor: factor2 variable is unused now, drop it
[oweals/busybox.git] / examples / udhcp / sample.renew
index ea368fc9ef2c0e090bfbbf167d481e83d0e95e50..efd98cf15d7693076844f04553c480824ce4c480 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Sample udhcpc bound script
+# Sample udhcpc renew script
 
 RESOLV_CONF="/etc/udhcpc/resolv.conf"
 
@@ -18,14 +18,25 @@ then
        metric=0
        for i in $router
        do
+               if [ "$subnet" = "255.255.255.255" ]; then
+                       # special case for /32 subnets:
+                       # /32 instructs kernel to always use routing for all outgoing packets
+                       # (they can never be sent to local subnet - there is no local subnet for /32).
+                       # Used in datacenters, avoids the need for private ip-addresses between two hops.
+                       /sbin/ip route add $i dev $interface
+               fi
                /sbin/route add default gw $i dev $interface metric $((metric++))
        done
 fi
 
-echo -n > $RESOLV_CONF
-[ -n "$domain" ] && echo domain $domain >> $RESOLV_CONF
-for i in $dns
-do
-       echo adding dns $i
-       echo nameserver $i >> $RESOLV_CONF
-done
+# Only replace resolv.conf if we have at least one DNS server
+if [ -n "$dns" ]
+then
+       echo -n > $RESOLV_CONF
+       [ -n "$domain" ] && echo domain $domain >> $RESOLV_CONF
+       for i in $dns
+       do
+               echo adding dns $i
+               echo nameserver $i >> $RESOLV_CONF
+       done
+fi