mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-03-12 03:58:40 +01:00
50 lines
1.2 KiB
Bash
Executable file
50 lines
1.2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
[ "$INTERFACE" != "wan" ] && exit
|
|
|
|
automode="$(uci -q get netmode.setup.automode)"
|
|
[ "$automode" == "0" ] && exit
|
|
|
|
. /lib/functions.sh
|
|
. /lib/functions/network.sh
|
|
. /lib/functions/netmode.sh
|
|
|
|
network_flush_cache
|
|
network_get_ipaddr ipaddr $INTERFACE
|
|
[ -z "$ipaddr" ] && exit
|
|
|
|
repeaterready="$(uci -q get netmode.setup.repeaterready)"
|
|
curmode="$(uci -q get netmode.setup.curmode)"
|
|
|
|
if [ "$(netmode_get_ip_type $ipaddr)" == "private" ]; then
|
|
if [ "$repeaterready" == "1" -o "${curmode:0:8}" == "repeater" ]; then
|
|
# flush the ip on br-lan; br-lan will anyhow be deleted.
|
|
# this is needed if the ip received on the wan is also from the same net
|
|
logger -s -p user.info -t $0: [netmode] ip addr flush dev br-lan >/dev/console
|
|
ip addr flush dev br-lan 2>/dev/null
|
|
|
|
# flush iptables in case the MASTER
|
|
# tries to configure us before
|
|
# firewall is disabled the proper way
|
|
logger -s -p user.info -t $0: [netmode] iptables -F >/dev/console
|
|
iptables -F
|
|
|
|
disable_firewall 1
|
|
fi
|
|
else
|
|
disable_firewall 0
|
|
fi
|
|
|
|
case "$curmode" in
|
|
repeater*)
|
|
;;
|
|
*)
|
|
[ "$repeaterready" == "1" ] || return
|
|
if [ "$(netmode_get_ip_type $ipaddr)" == "private" ]; then
|
|
wificontrol_takes_over || switch_netmode repeater
|
|
else
|
|
switch_netmode routed
|
|
fi
|
|
;;
|
|
esac
|
|
|