[ -x /usr/sbin/ip6tables ] || exit 7
[ -x /usr/bin/logger ] || exit 8
-config_get family $INTERFACE family ipv4
-
-if [ "$family" == "ipv4" ]; then
- network_get_gateway gateway $INTERFACE
-elif [ "$family" == "ipv6" ]; then
- network_get_gateway6 gateway $INTERFACE
-fi
-
if [ "$ACTION" == "ifup" ]; then
+ config_get family $INTERFACE family ipv4
+ if [ "$family" = "ipv4" ]; then
+ ubus call network.interface.${INTERFACE}_4 status &>/dev/null
+ if [ "$?" -eq "0" ]; then
+ network_get_gateway gateway ${INTERFACE}_4
+ else
+ network_get_gateway gateway $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
+ else
+ network_get_gateway6 gateway ${INTERFACE}
+ fi
+ fi
+
[ -n "$gateway" ] || exit 9
fi
if [ "$family" == "ipv4" ]; then
- network_get_ipaddr src_ip $1
+ ubus call network.interface.${1}_4 status &>/dev/null
+ if [ "$?" -eq "0" ]; then
+ network_get_ipaddr src_ip ${1}_4
+ else
+ network_get_ipaddr src_ip $1
+ fi
$IPS -! create mwan3_connected list:set
if [ "$family" == "ipv6" ]; then
- network_get_ipaddr6 src_ipv6 $1
+ ubus call network.interface.${1}_6 status &>/dev/null
+ if [ "$?" -eq "0" ]; then
+ network_get_ipaddr6 src_ipv6 ${1}_6
+ else
+ network_get_ipaddr6 src_ipv6 $1
+ fi
$IPS -! create mwan3_connected_v6 hash:net family inet6
[ -n "$id" ] || return 0
if [ "$family" == "ipv4" ]; then
+ ubus call network.interface.${1}_4 status &>/dev/null
+ if [ "$?" -eq "0" ]; then
+ network_get_gateway route_args ${1}_4
+ else
+ network_get_gateway route_args $1
+ fi
- network_get_gateway route_args $1
route_args="via $route_args dev $2"
$IP4 route flush table $id
if [ "$family" == "ipv6" ]; then
- network_get_gateway6 route_args $1
+ ubus call network.interface.${1}_6 status &>/dev/null
+ if [ "$?" -eq "0" ]; then
+ network_get_gateway6 route_args ${1}_6
+ else
+ network_get_gateway6 route_args $1
+ fi
+
route_args="via $route_args dev $2"
$IP6 route flush table $id