diff --git a/net/mwan3/files/etc/init.d/mwan3 b/net/mwan3/files/etc/init.d/mwan3 index 33a1f46e53..bf86ecd61e 100755 --- a/net/mwan3/files/etc/init.d/mwan3 +++ b/net/mwan3/files/etc/init.d/mwan3 @@ -83,8 +83,10 @@ stop_service() { table="$($IPT -S)" { echo "*mangle"; + [ -z "${table##*PREROUTING -j mwan3_pre*}" ] && echo "-D PREROUTING -j mwan3_pre" [ -z "${table##*PREROUTING -j mwan3_hook*}" ] && echo "-D PREROUTING -j mwan3_hook" [ -z "${table##*OUTPUT -j mwan3_hook*}" ] && echo "-D OUTPUT -j mwan3_hook" + [ -z "${table##*POSTROUTING -j mwan3_post*}" ] && echo "-D POSTROUTING -j mwan3_post" echo "$table" | awk '{print "-F "$2}' | grep mwan3 | sort -u echo "$table" | awk '{print "-X "$2}' | grep mwan3 | sort -u echo "COMMIT" diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh index c69f381ea8..acd4a92912 100644 --- a/net/mwan3/files/lib/mwan3/mwan3.sh +++ b/net/mwan3/files/lib/mwan3/mwan3.sh @@ -338,12 +338,30 @@ mwan3_set_general_iptables() done fi + if [ -n "${current##*-N mwan3_pre*}" ]; then + mwan3_push_update -N mwan3_pre + mwan3_push_update -A mwan3_pre \ + -j MARK --set-xmark "0x0/$MMX_MASK" + fi + + if [ -n "${current##*-N mwan3_post*}" ]; then + mwan3_push_update -N mwan3_post + mwan3_push_update -A mwan3_post \ + -j MARK --set-xmark "0x0/$MMX_MASK" + fi + + if [ -n "${current##*-A PREROUTING -j mwan3_pre*}" ]; then + mwan3_push_update -A PREROUTING -j mwan3_pre + fi if [ -n "${current##*-A PREROUTING -j mwan3_hook*}" ]; then mwan3_push_update -A PREROUTING -j mwan3_hook fi if [ -n "${current##*-A OUTPUT -j mwan3_hook*}" ]; then mwan3_push_update -A OUTPUT -j mwan3_hook fi + if [ -n "${current##*-A POSTROUTING -j mwan3_post*}" ]; then + mwan3_push_update -A POSTROUTING -j mwan3_post + fi mwan3_push_update COMMIT mwan3_push_update ""