- #!/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_bool enabled globals 'enabled' '0'
- [ ${enabled} -gt 0 ] || exit 0
-
- config_get local_source globals local_source 'none'
- [ "${local_source}" = "none" ] && {
- exit 0
- }
-
- [ "${local_source}" = "$INTERFACE" ] || {
- exit 0
- }
-
- mwan3_lock
- src_ip=$(uci_get_state mwan3 globals src_ip)
- [ "${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
- }
-
- sleep 1
-
- [ "$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_toggle_state mwan3 globals src_ip "${src_ip}"
- fi
- }
- mwan3_unlock
-
- exit 0
|