|
|
@ -0,0 +1,45 @@ |
|
|
|
#!/bin/sh |
|
|
|
|
|
|
|
. /lib/functions.sh |
|
|
|
. /lib/mwan3/mwan3.sh |
|
|
|
. /lib/functions/network.sh |
|
|
|
|
|
|
|
[ "$ACTION" = "ifup" -o "$ACTION" = "ifdown" ] || exit 1 |
|
|
|
[ -n "$INTERFACE" ] || exit 2 |
|
|
|
|
|
|
|
if [ "$ACTION" = "ifup" ]; then |
|
|
|
[ -n "$DEVICE" ] || exit 3 |
|
|
|
fi |
|
|
|
|
|
|
|
config_load mwan3 |
|
|
|
config_get local_source globals local_source 'none' |
|
|
|
[ "${local_source}" = "none" ] && { |
|
|
|
exit 0 |
|
|
|
} |
|
|
|
|
|
|
|
[ "${local_source}" = "$INTERFACE" ] || { |
|
|
|
exit 0 |
|
|
|
} |
|
|
|
|
|
|
|
mwan3_lock |
|
|
|
src_ip=$(uci -q -P /var/state get mwan3.globals.src_ip 2>/dev/null) |
|
|
|
[ "${src_ip}" != "" ] && { |
|
|
|
ip route del default via "${src_ip}" dev lo 1>/dev/null 2>&1 |
|
|
|
ip addr del "${src_ip}/32" dev lo 1>/dev/null 2>&1 |
|
|
|
} |
|
|
|
|
|
|
|
usleep 10000 |
|
|
|
|
|
|
|
[ "$ACTION" = "ifup" ] && { |
|
|
|
network_get_ipaddr src_ip "${local_source}" |
|
|
|
if [ "${src_ip}" = "" ]; then |
|
|
|
$LOG warn "Unable to set source ip for own initiated traffic (${local_source})" |
|
|
|
else |
|
|
|
ip addr add "${src_ip}/32" dev lo |
|
|
|
ip route add default via "${src_ip}" dev lo |
|
|
|
uci -q -P /var/state set mwan3.globals.src_ip="${src_ip}" |
|
|
|
fi |
|
|
|
} |
|
|
|
mwan3_unlock |
|
|
|
|
|
|
|
exit 0 |