diff options
author | Florian Eckert <fe@dev.tdt.de> | 2022-02-25 16:02:49 +0100 |
---|---|---|
committer | Florian Eckert <fe@dev.tdt.de> | 2022-03-14 09:34:49 +0100 |
commit | 9c2abb19e2e48befe9993a7ab3861d760b90241a (patch) | |
tree | 36fcb1acfd0b46e259896c7e5eed488e339b4172 /net/mwan3 | |
parent | e985f0dcd10745733ce3004296b4dff3331e1afe (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.sh | 39 |
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 |