aboutsummaryrefslogtreecommitdiff
path: root/net/mwan3
diff options
context:
space:
mode:
authorFlorian Eckert <fe@dev.tdt.de>2022-02-25 16:02:49 +0100
committerFlorian Eckert <fe@dev.tdt.de>2022-03-14 09:34:49 +0100
commit9c2abb19e2e48befe9993a7ab3861d760b90241a (patch)
tree36fcb1acfd0b46e259896c7e5eed488e339b4172 /net/mwan3
parente985f0dcd10745733ce3004296b4dff3331e1afe (diff)
mwan3: use sticky ipset generation mwan3_push_update pattern
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
Diffstat (limited to 'net/mwan3')
-rw-r--r--net/mwan3/files/lib/mwan3/mwan3.sh39
1 files changed, 28 insertions, 11 deletions
diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh
index 34932a8a7..7db12f9d0 100644
--- a/net/mwan3/files/lib/mwan3/mwan3.sh
+++ b/net/mwan3/files/lib/mwan3/mwan3.sh
@@ -707,6 +707,33 @@ mwan3_set_sticky_iptables()
done
}
+mwan3_set_sticky_ipset()
+{
+ local rule="$1"
+ local mmx="$2"
+ local timeout="$3"
+
+ local error
+ local update=""
+
+ mwan3_push_update -! create "mwan3_sticky_v4_$rule" \
+ hash:ip,mark markmask "$mmx" \
+ timeout "$timeout"
+
+ [ $NO_IPV6 -eq 0 ] &&
+ mwan3_push_update -! create "mwan3_sticky_v6_$rule" \
+ hash:ip,mark markmask "$mmx" \
+ timeout "$timeout" family inet6
+
+ mwan3_push_update -! create "mwan3_sticky_$rule" list:set
+
+ mwan3_push_update -! add "mwan3_sticky_$rule" "mwan3_sticky_v4_$rule"
+ [ $NO_IPV6 -eq 0 ] &&
+ mwan3_push_update -! add "mwan3_sticky_$rule" "mwan3_sticky_v6_$rule"
+
+ error=$(echo "$update" | $IPS restore 2>&1) || LOG error "set_sticky_ipset_${rule}: $error"
+}
+
mwan3_set_user_iptables_rule()
{
local ipset family proto policy src_ip src_port src_iface src_dev
@@ -790,17 +817,7 @@ mwan3_set_user_iptables_rule()
rule_policy=1
policy="mwan3_policy_$use_policy"
if [ "$sticky" -eq 1 ]; then
- $IPS -! create "mwan3_sticky_v4_$rule" \
- hash:ip,mark markmask "$MMX_MASK" \
- timeout "$timeout"
- [ $NO_IPV6 -eq 0 ] &&
- $IPS -! create "mwan3_sticky_v6_$rule" \
- hash:ip,mark markmask "$MMX_MASK" \
- timeout "$timeout" family inet6
- $IPS -! create "mwan3_sticky_$rule" list:set
- $IPS -! add "mwan3_sticky_$rule" "mwan3_sticky_v4_$rule"
- [ $NO_IPV6 -eq 0 ] &&
- $IPS -! add "mwan3_sticky_$rule" "mwan3_sticky_v6_$rule"
+ mwan3_set_sticky_ipset "$rule" "$MMX_MASK" "$timeout"
fi
fi