| #!/bin/sh |
| # Sample udhcpc renew script |
| |
| RESOLV_CONF="/etc/udhcpc/resolv.conf" |
| |
| [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" |
| [ -n "$subnet" ] && NETMASK="netmask $subnet" |
| |
| ifconfig $interface $ip $BROADCAST $NETMASK |
| |
| if [ -n "$router" ] |
| then |
| echo "deleting routers" |
| while route del default gw 0.0.0.0 dev $interface |
| do : |
| done |
| |
| 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. |
| ip route add $i dev $interface |
| fi |
| route add default gw $i dev $interface metric $((metric++)) |
| done |
| fi |
| |
| # 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 |