#!/bin/sh # udhcpc script edited by Tim Riker [ -z "$1" ] && echo "Error: should be called from udhcpc" && exit 1 ifconfig $interface up RESOLV_CONF="/etc/resolv.conf" [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" case "$1" in deconfig) # /sbin/ifconfig $interface 0.0.0.0 ;; renew|bound) # /sbin/ifconfig $interface $ip $BROADCAST $NETMASK echo "$ip $BROADCAST $NETMASK" if [ -n "$router" ] ; then echo "deleting routers" # while route del default gw 0.0.0.0 dev $interface ; do # : # done # for i in $router ; do # route add default gw $i dev $interface # done echo "$router" fi echo -n > $RESOLV_CONF [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF for i in $dns ; do echo adding dns $i echo nameserver $i >> $RESOLV_CONF done nvram set wan2_ifname=$interface nvram set wan2_gateway=$router nvram set wan2_ipaddr=$ip nvram set wan2_netmask=$subnet nvram set wan2_broadcast=$broadcast nvram commit ifconfig $(nvram get wan2_ifname) $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask) up ;; esac exit 0' > /tmp/udhcpc-wan2.script chmod a+x /tmp/udhcpc-wan2.script udhcpc -s /tmp/udhcpc-wan2.script -i vlan2 sleep 5 nvram commit ip rule flush ip rule add lookup main prio 32766 ip rule add lookup default prio 32767 ip rule add from $(nvram get wan_ipaddr) table 100 prio 100 ip rule add fwmark 0x100 table 100 prio 101 ip rule add from $(nvram get wan2_ipaddr) table 200 prio 200 ip rule add fwmark 0x200 table 200 prio 201 ip route flush table 100 ip route flush table 200 for TABLE in 100 200 do ip route | grep link | while read ROUTE do ip route add table $TABLE to $ROUTE done done ip route add table 100 default via $(nvram get wan_gateway) ip route add table 200 default via $(nvram get wan2_gateway) ip route delete default ip route add default scope global equalize nexthop via $(nvram get wan_gateway) dev $(nvram get wan_ifname) nexthop via $(nvram get wan2_gateway) dev $(nvram get wan2_ifname)