@ -25,27 +25,27 @@ mwan3_rtmon_ipv4()
local tid = 1
local tid = 1
local idx = 0
local idx = 0
local ret = 1
local ret = 1
main_tbsum = $( $IP4 route list table main | grep -v ^default | md5sum | head -c32)
mkdir -p /tmp/mwan3rtmon
( $IP4 route list table main | grep -v ^default | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv4.main
while uci get mwan3.@interface[ $idx ] >/dev/null 2>& 1 ; do
while uci get mwan3.@interface[ $idx ] >/dev/null 2>& 1 ; do
idx = $(( idx+1))
idx = $(( idx+1))
tid = $idx
tid = $idx
[ " $( uci get mwan3.@interface[ $(( idx-1)) ] .family) " = "ipv4" ] && {
[ " $( uci get mwan3.@interface[ $(( idx-1)) ] .family) " = "ipv4" ] && {
if $IP4 route list table $tid | grep -q ^default; then
if $IP4 route list table $tid | grep -q ^default; then
tbsum = $( $IP4 route list table $tid | grep -v ^default | md5sum | head -c32)
if [ " $tbsum " != " $main_tbsum " ] ; then
$IP4 route list table $tid | grep -v ^default | while read line; do
$IP4 route del table $tid $line
done
$IP4 route list table main | grep -v ^default | while read line; do
$IP4 route add table $tid $line
done
fi
( $IP4 route list table $tid | grep -v ^default | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv4.$tid
cat /tmp/mwan3rtmon/ipv4.$tid | grep -v -x -F -f /tmp/mwan3rtmon/ipv4.main | while read line; do
$IP4 route del table $tid $line
done
cat /tmp/mwan3rtmon/ipv4.main | grep -v -x -F -f /tmp/mwan3rtmon/ipv4.$tid | while read line; do
$IP4 route add table $tid $line
done
fi
fi
}
}
if [ " $( uci get mwan3.@interface[ $(( idx-1)) ] .enabled) " = "1" ] ; then
if [ " $( uci get mwan3.@interface[ $(( idx-1)) ] .enabled) " = "1" ] ; then
ret = 0
ret = 0
fi
fi
done
done
rm -f /tmp/mwan3rtmon/ipv4.*
return $ret
return $ret
}
}
@ -54,27 +54,27 @@ mwan3_rtmon_ipv6()
local tid = 1
local tid = 1
local idx = 0
local idx = 0
local ret = 1
local ret = 1
main_tbsum = $( $IP6 route list table main | grep -v "^default\|^::/" | md5sum | head -c32)
mkdir -p /tmp/mwan3rtmon
( $IP6 route list table main | grep -v "^default\|^::/0\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.main
while uci get mwan3.@interface[ $idx ] >/dev/null 2>& 1 ; do
while uci get mwan3.@interface[ $idx ] >/dev/null 2>& 1 ; do
idx = $(( idx+1))
idx = $(( idx+1))
tid = $idx
tid = $idx
[ " $( uci get mwan3.@interface[ $(( idx-1)) ] .family) " = "ipv6" ] && {
[ " $( uci get mwan3.@interface[ $(( idx-1)) ] .family) " = "ipv6" ] && {
if $IP6 route list table $tid | grep -q ^::/0; then
tbsum = $( $IP6 route list table $tid | grep -v "^default\|^::/" | md5sum | head -c32)
if [ " $tbsum " != " $main_tbsum " ] ; then
$IP6 route list table $tid | grep -v "^default\|^::/" | while read line; do
$IP6 route del table $tid $line
done
$IP6 route list table main | grep -v "^default\|^::/" | while read line; do
$IP6 route add table $tid $line
done
fi
if $IP6 route list table $tid | grep -q "^default\|^::/0" ; then
( $IP6 route list table $tid | grep -v "^default\|^::/0\|^unreachable" | sort -n; echo empty fixup) >/tmp/mwan3rtmon/ipv6.$tid
cat /tmp/mwan3rtmon/ipv6.$tid | grep -v -x -F -f /tmp/mwan3rtmon/ipv6.main | while read line; do
$IP6 route del table $tid $line
done
cat /tmp/mwan3rtmon/ipv6.main | grep -v -x -F -f /tmp/mwan3rtmon/ipv6.$tid | while read line; do
$IP6 route add table $tid $line
done
fi
fi
}
}
if [ " $( uci get mwan3.@interface[ $(( idx-1)) ] .enabled) " = "1" ] ; then
if [ " $( uci get mwan3.@interface[ $(( idx-1)) ] .enabled) " = "1" ] ; then
ret = 0
ret = 0
fi
fi
done
done
rm -f /tmp/mwan3rtmon/ipv6.*
return $ret
return $ret
}
}