aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorDirk Brenken <dev@brenken.org>2018-09-22 07:14:44 +0200
committerGitHub <noreply@github.com>2018-09-22 07:14:44 +0200
commitdd3f54ea0eeaf1c852ba1efefd14029c0af50d43 (patch)
treeb7241cb373aed0313393f6eb0f223dea675f64d6 /net
parent4cdbabbf826b4699bce48615bdedbb0478b0e7e4 (diff)
parent6a5836db326abb3c0efe0794fc67dcd7ce1dad15 (diff)
Merge pull request #6990 from ptpt52/mwan3-fix
mwan3: optimize the process of copying routing tables
Diffstat (limited to 'net')
-rw-r--r--net/mwan3/Makefile2
-rw-r--r--net/mwan3/files/lib/mwan3/mwan3.sh42
2 files changed, 22 insertions, 22 deletions
diff --git a/net/mwan3/Makefile b/net/mwan3/Makefile
index 741c92ce7..0ed7488a7 100644
--- a/net/mwan3/Makefile
+++ b/net/mwan3/Makefile
@@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=mwan3
-PKG_VERSION:=2.7.0
+PKG_VERSION:=2.7.1
PKG_RELEASE:=1
PKG_MAINTAINER:=Florian Eckert <fe@dev.tdt.de>
PKG_LICENSE:=GPLv2
diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh
index f252cb26b..541e64d24 100644
--- a/net/mwan3/files/lib/mwan3/mwan3.sh
+++ b/net/mwan3/files/lib/mwan3/mwan3.sh
@@ -25,27 +25,27 @@ mwan3_rtmon_ipv4()
local tid=1
local idx=0
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
idx=$((idx+1))
tid=$idx
[ "$(uci get mwan3.@interface[$((idx-1))].family)" = "ipv4" ] && {
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
}
if [ "$(uci get mwan3.@interface[$((idx-1))].enabled)" = "1" ]; then
ret=0
fi
done
+ rm -f /tmp/mwan3rtmon/ipv4.*
return $ret
}
@@ -54,27 +54,27 @@ mwan3_rtmon_ipv6()
local tid=1
local idx=0
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
idx=$((idx+1))
tid=$idx
[ "$(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
}
if [ "$(uci get mwan3.@interface[$((idx-1))].enabled)" = "1" ]; then
ret=0
fi
done
+ rm -f /tmp/mwan3rtmon/ipv6.*
return $ret
}