Merge pull request #4853 from StevenHessing/noddos
[feed/packages.git] / net / mwan3 / files / etc / hotplug.d / iface / 14-mwan3
1 #!/bin/sh
2
3 . /lib/functions.sh
4 . /lib/mwan3/mwan3.sh
5 . /lib/functions/network.sh
6
7 [ "$ACTION" = "ifup" -o "$ACTION" = "ifdown" ] || exit 1
8 [ -n "$INTERFACE" ] || exit 2
9
10 if [ "$ACTION" = "ifup" ]; then
11 [ -n "$DEVICE" ] || exit 3
12 fi
13
14 config_load mwan3
15 config_get local_source globals local_source 'none'
16 [ "${local_source}" = "none" ] && {
17 exit 0
18 }
19
20 [ "${local_source}" = "$INTERFACE" ] || {
21 exit 0
22 }
23
24 mwan3_lock
25 src_ip=$(uci_get_state mwan3 globals src_ip)
26 [ "${src_ip}" != "" ] && {
27 ip route del default via "${src_ip}" dev lo 1>/dev/null 2>&1
28 ip addr del "${src_ip}/32" dev lo 1>/dev/null 2>&1
29 }
30
31 usleep 10000
32
33 [ "$ACTION" = "ifup" ] && {
34 network_get_ipaddr src_ip "${local_source}"
35 if [ "${src_ip}" = "" ]; then
36 $LOG warn "Unable to set source ip for own initiated traffic (${local_source})"
37 else
38 ip addr add "${src_ip}/32" dev lo
39 ip route add default via "${src_ip}" dev lo
40 uci_toggle_state mwan3 globals src_ip "${src_ip}"
41 fi
42 }
43 mwan3_unlock
44
45 exit 0