diff --git a/net/mwan3/files/etc/hotplug.d/iface/15-mwan3 b/net/mwan3/files/etc/hotplug.d/iface/15-mwan3 index 27033d582..3ef856580 100644 --- a/net/mwan3/files/etc/hotplug.d/iface/15-mwan3 +++ b/net/mwan3/files/etc/hotplug.d/iface/15-mwan3 @@ -26,24 +26,20 @@ if [ "$ACTION" == "ifup" ]; then if [ "$family" = "ipv4" ]; then ubus call network.interface.${INTERFACE}_4 status &>/dev/null if [ "$?" -eq "0" ]; then - network_get_gateway gateway ${INTERFACE}_4 network_get_ipaddr src_ip ${INTERFACE}_4 else - network_get_gateway gateway $INTERFACE network_get_ipaddr src_ip ${INTERFACE} fi elif [ "$family" = "ipv6" ]; then ubus call network.interface.${INTERFACE}_6 status &>/dev/null if [ "$?" -eq "0" ]; then - network_get_gateway6 gateway ${INTERFACE}_6 network_get_ipaddr6 src_ip ${INTERFACE}_6 else - network_get_gateway6 gateway ${INTERFACE} network_get_ipaddr6 src_ip ${INTERFACE} fi fi - [ -n "$gateway" ] || exit 9 + [ -n "$src_ip" ] || exit 9 fi if [ "$initial_state" = "offline" ]; then diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index 32c9f7888..cacef1cea 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -324,10 +324,14 @@ mwan3_create_iface_route() network_get_gateway route_args $1 fi - route_args="via $route_args dev $2" + if [ -n "$route_args" -a "$route_args" != "0.0.0.0" ]; then + route_args="via $route_args" + else + route_args="" + fi $IP4 route flush table $id - $IP4 route add table $id default $route_args + $IP4 route add table $id default $route_args dev $2 fi if [ "$family" == "ipv6" ]; then @@ -337,10 +341,14 @@ mwan3_create_iface_route() network_get_gateway6 route_args $1 fi - route_args="via $route_args dev $2" + if [ -n "$route_args" -a "$route_args" != "::" ]; then + route_args="via $route_args" + else + route_args="" + fi $IP6 route flush table $id - $IP6 route add table $id default $route_args + $IP6 route add table $id default $route_args dev $2 fi }