[package] base-files: use uci_get() wrapper (#7312)
[openwrt.git] / package / base-files / files / etc / hotplug.d / iface / 10-routes
index 7e957f7..0116682 100644 (file)
@@ -20,15 +20,20 @@ add_route() {
                return 1
        }
        [ -n "$gateway" ] || {
-               echo "Missing gateway in route section $config"
-               return 1
+               config_get gateway "$interface" gateway
        }
 
-       netmask="${netmask:-255.255.255.255}"
+       # handle "0.0.0.0" as "no gateway given" to allow
+       # defining gateway-less routes while still keeping
+       # the possibility to have static routes with a
+       # proper gateway on interfaces with dynamic ips 
+       [ "$gateway" = "0.0.0.0" ] && gateway=""
+
        dest="${netmask:+-net "$target" netmask "$netmask"}"
        dest="${dest:--host "$target"}"
        
-       /sbin/route add $dest gw "$gateway" ${dev:+dev "$dev"} ${metric:+ metric "$metric"}
+       /sbin/route add $dest ${gateway:+gw "$gateway"} \
+               ${dev:+dev "$dev"} ${metric:+ metric "$metric"}
 }
 
 add_route6() {
@@ -52,18 +57,17 @@ add_route6() {
                return 1
        }
        [ -n "$gateway" ] || {
-               echo "Missing gateway in route section $config"
-               return 1
+               config_get gateway "$interface" gateway
        }
 
-       /sbin/route -A inet6 add $target gw "$gateway" ${dev:+dev "$dev"} ${metric:+ metric "$metric"}
+       /sbin/route -A inet6 add $target ${gateway:+gw "$gateway"} \
+               ${dev:+dev "$dev"} ${metric:+ metric "$metric"}
 }
 
 case "$ACTION" in
        ifup)
                include /lib/network
                scan_interfaces
-               . /var/state/network
                config_foreach "add_route" route
                config_foreach "add_route6" route6
        ;;
This page took 0.024313 seconds and 4 git commands to generate.