a cleaner solution for disabling dyngw and dyngw_plain in freifunk-policyrouting init

This commit is contained in:
Manuel Munz 2016-01-04 22:34:55 +01:00
parent ed7e17438a
commit 71dc54af6a

View file

@ -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
} }