mwan3: cleanup function mwan3_create_iface_route
authorFlorian Eckert <fe@dev.tdt.de>
Tue, 14 Jul 2020 10:02:01 +0000 (12:02 +0200)
committerFlorian Eckert <fe@dev.tdt.de>
Wed, 15 Jul 2020 08:23:47 +0000 (10:23 +0200)
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
net/mwan3/files/lib/mwan3/mwan3.sh

index fd9f9fc417fa940f6b14ac3622de7afb14df711c..5ffef9405e1ee6da1a06aa8c1423d2895a2b87c9 100644 (file)
@@ -483,56 +483,44 @@ mwan3_delete_iface_iptables()
 
 mwan3_create_iface_route()
 {
-       local id route_args metric
+       local id via metric
 
-       config_get family $1 family ipv4
-       mwan3_get_iface_id id $1
+       config_get family "$1" family ipv4
+       mwan3_get_iface_id id "$1"
 
        [ -n "$id" ] || return 0
 
        if [ "$family" = "ipv4" ]; then
-               if ubus call network.interface.${1}_4 status &>/dev/null; then
-                       network_get_gateway route_args ${1}_4
-               else
-                       network_get_gateway route_args $1
-               fi
-
-               if [ -n "$route_args" -a "$route_args" != "0.0.0.0" ]; then
-                       route_args="via $route_args"
+               if ubus call "network.interface.${1}_4" status &>/dev/null; then
+                       network_get_gateway via "${1}_4"
                else
-                       route_args=""
+                       network_get_gateway via "$1"
                fi
 
-               network_get_metric metric $1
-               if [ -n "$metric" -a "$metric" != "0" ]; then
-                       route_args="$route_args metric $metric"
-               fi
+               network_get_metric metric "$1"
 
-               $IP4 route flush table $id
-               $IP4 route add table $id default $route_args dev $2
+               $IP4 route flush table "$id"
+               $IP4 route add table "$id" default \
+                               ${via:+via} $via \
+                               ${metric:+metric} $metric \
+                               dev "$2"
                mwan3_rtmon_ipv4
        fi
 
        if [ "$family" = "ipv6" ]; then
-               if ubus call network.interface.${1}_6 status &>/dev/null; then
-                       network_get_gateway6 route_args ${1}_6
-               else
-                       network_get_gateway6 route_args $1
-               fi
-
-               if [ -n "$route_args" -a "$route_args" != "::" ]; then
-                       route_args="via $route_args"
+               if ubus call "network.interface.${1}_6" status &>/dev/null; then
+                       network_get_gateway6 via "${1}_6"
                else
-                       route_args=""
+                       network_get_gateway6 via "$1"
                fi
 
-               network_get_metric metric $1
-               if [ -n "$metric" -a "$metric" != "0" ]; then
-                       route_args="$route_args metric $metric"
-               fi
+               network_get_metric metric "$1"
 
-               $IP6 route flush table $id
-               $IP6 route add table $id default $route_args dev $2
+               $IP6 route flush table "$id"
+               $IP6 route add table "$id" default \
+                       ${via:+via} $via \
+                       ${metric:+metric} $metric \
+                       dev "$2"
                mwan3_rtmon_ipv6
        fi
 }