net/mwan3: add/remove src_ip from routing table
Add or remove local_source ip also if mwan3 is stopped or started
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
(cherry picked from commit 2d9dfa3b1b
)
This commit is contained in:
parent
13c7705415
commit
7d1344d95e
1 changed files with 26 additions and 2 deletions
|
@ -118,7 +118,7 @@ status()
|
|||
|
||||
start()
|
||||
{
|
||||
local enabled
|
||||
local enabled src_ip local_source
|
||||
|
||||
config_load mwan3
|
||||
config_get_bool enabled globals 'enabled' 0
|
||||
|
@ -127,12 +127,30 @@ start()
|
|||
exit 0
|
||||
}
|
||||
|
||||
config_get local_source globals local_source 'none'
|
||||
[ "${local_source}" = "none" ] || {
|
||||
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
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
config_foreach ifup interface
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
local ipset route rule table IP IPT pid
|
||||
local ipset route rule table IP IPT pid src_ip
|
||||
|
||||
for pid in $(pgrep -f "mwan3track"); do
|
||||
kill -TERM "$pid" > /dev/null 2>&1
|
||||
|
@ -178,6 +196,12 @@ stop()
|
|||
|
||||
mwan3_lock_clean
|
||||
rm -rf $MWAN3_STATUS_DIR $MWAN3TRACK_STATUS_DIR
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
restart() {
|
||||
|
|
Loading…
Reference in a new issue