a cleaner solution for disabling dyngw and dyngw_plain in freifunk-policyrouting init
This commit is contained in:
parent
ed7e17438a
commit
71dc54af6a
1 changed files with 26 additions and 15 deletions
|
@ -51,22 +51,33 @@ rt_tables() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_dyngw() {
|
handle_disable_dyngw() {
|
||||||
for cfg in $cfgs; do
|
local cfg="$1"
|
||||||
local dyngwlib=`uci show $cfg |grep dyn_gw.so |awk {' FS="."; print $1"."$2 '}`
|
local olsrd_cfg="$2"
|
||||||
if [ -n "$dyngwlib" ]; then
|
config_get library "$cfg" library
|
||||||
uci set $dyngwlib.ignore=1
|
case "$library" in
|
||||||
uci commit $cfg
|
olsrd_dyn_gw_plain*)
|
||||||
fi
|
config_get RtTable "$cfg" RtTable
|
||||||
|
if [ -z "$RtTable" ] || [ "$RtTable" = "254" ]; then
|
||||||
dyngwplainlib=`uci show $cfg |grep dyn_gw_plain |awk {' FS="."; print $1"."$2 '}`
|
config_set "$cfg" ignore '1'
|
||||||
if [ -n "$dyngwplainlib" ]; then
|
uci set $olsrd_cfg.$cfg.ignore="1"
|
||||||
rttable="$(uci -q get $dyngwplainlib.RtTable)"
|
uci commit $olsrd_cfg
|
||||||
if [ -z "$rttable" ] || [ "$rttable" = "254" ]; then
|
logger -s -t policyrouting -p info "dyngw_plain plugin disabled."
|
||||||
uci set $dyngwplainlib.ignore=1
|
|
||||||
uci commit $cfg
|
|
||||||
fi
|
fi
|
||||||
fi
|
;;
|
||||||
|
olsrd_dyn_gw.so*)
|
||||||
|
logger -s -t policyrouting -p info "$cfg"
|
||||||
|
uci set $olsrd_cfg.$cfg.ignore="1"
|
||||||
|
uci commit $olsrd_cfg
|
||||||
|
logger -s -t policyrouting -p info "dyngw plugin disabled."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_dyngw() {
|
||||||
|
for olsrd_cfg in $cfgs; do
|
||||||
|
config_load $olsrd_cfg
|
||||||
|
config_foreach handle_disable_dyngw LoadPlugin $olsrd_cfg
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue