OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 AllowNoInt=yes'
OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host4:list Net4:list2 Host:list Net:list2 Host6:list Net6:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
-OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool'
+OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool LinkQualityMult:list2'
OLSRD_INTERFACE_DEFAULTS_SCHEMA='AutoDetectChanges:bool'
T=' '
error() {
log "ERROR: $@"
}
-
+
validate_varname() {
local varname="$1"
[ -z "$varname" -o "$varname" != "${varname%%[!A-Za-z0-9_]*}" ] && return 1
return 1
fi
- oldIFS="$IFS"; IFS='-_'; set -- $option; IFS="$oldIFS"
+ oldIFS="$IFS"
+ IFS='-_'
+ set -- $option
option="$*"
+ IFS="$oldIFS"
_option="$option"
if [ "$option" = 'hosts' ]; then
if network_get_device IFNAME "$interface"; then
ifnames="$ifnames \"$IFNAME\""
ifsglobal="$ifsglobal $IFNAME"
+ elif network_get_physdev IFNAME "$interface"; then
+ local proto="$(uci -q get network.${interface}.proto)"
+ if [ "$proto" = "static" -o "$proto" = "none" ]; then
+ ifnames="$ifnames \"$IFNAME\""
+ ifsglobal="$ifsglobal $IFNAME"
+ fi
else
log "$funcname() Warning: Interface '$interface' not found, skipped"
fi
$IP6T -I input_rule -i $IFACE -p 4 -j ACCEPT
done
else
+ $IP4T -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
for IPT in $IP4T $IP6T; do
$IPT -I forwarding_rule -o tnl_+ -j ACCEPT
- $IPT -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
if [ "$nowan"="0" ]; then
for IFACE in $wanifnames; do
$IPT -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT