Add support for static routes per interface. You can specify one or more routes,...
[openwrt-10.03/.git] / package / base-files / default / etc / hotplug.d / net / 10-net
index 4bb69378ffcb8de840afd871f7e44837f180aff6..b68ec1be28cce1465c1df4445733c7f4b9f90c16 100644 (file)
@@ -47,10 +47,22 @@ do_ifup() {
                        eval "netmask=\"\${${2}_netmask}\""
                        eval "gateway=\"\${${2}_gateway}\""
                        eval "dns=\"\${${2}_dns}\""
+                       eval "static_route=\"\${${2}_static_route}\""
        
                        $DEBUG ifconfig $if $ip ${netmask:+netmask $netmask} broadcast + up
                        [ -n "$ip6" ] && $DEBUG ifconfig $if add $ip6
 
+                       [ -n "$static_route" ] && {
+                               for route in $static_route; do
+                                       if [ "$(echo $route | cut -d \/ -f2)" != "32" ];
+                                       then
+                                               route add -net $(echo $route | cut -d \/ -f1) netmask $(echo $route | cut -d \/ -f1) dev $if
+                                       else
+                                               route add -host $(echo $route | cut -d \/ -f1) dev $if
+                                       fi
+                               done
+                       }
+
                        ${gateway:+$DEBUG route add default gw $gateway}
        
                        [ -f /tmp/resolv.conf ] || {