X-Git-Url: http://git.squeep.com/?p=firewall-squeep;a=blobdiff_plain;f=shaper.sh;h=3b2c6229d4899e58b18e64d2a2e424f1059b38b6;hp=8fdc296445799747ab9271a7171f9e52e0847736;hb=HEAD;hpb=b13e1cdba6118b9700dda5cee8ca6f10ca25e746 diff --git a/shaper.sh b/shaper.sh index 8fdc296..3b2c622 100755 --- a/shaper.sh +++ b/shaper.sh @@ -8,7 +8,11 @@ SHAPE_CHAIN='SHAPER-OUT' set -e -. ./common.sh +# . ./common.sh +IPTABLES=$(which iptables) +IP6TABLES=$(which ip6tables) +IPSET=$(which ipset) +TC=$(which tc) if [ $# -lt 1 ] then @@ -52,15 +56,24 @@ function shape(){ then $IPTABLES -t mangle -A "${SHAPE_CHAIN}" "$@" -j MARK --set-mark ${prio} fi + if ! $IP6TABLES -t mangle -C "${SHAPE_CHAIN}" "$@" -j MARK --set-mark ${prio} >/dev/null 2>&1 + then + $IP6TABLES -t mangle -A "${SHAPE_CHAIN}" "$@" -j MARK --set-mark ${prio} + fi } shape_if "${EXT_IF}" "${UPLINK}" "${BURST}" if ! $IPTABLES -t mangle -L "${SHAPE_CHAIN}" >/dev/null 2>&1 then - echo "initializing chain '${SHAPE_CHAIN}'" + echo "initializing ipv4 chain '${SHAPE_CHAIN}'" $IPTABLES -t mangle -N "${SHAPE_CHAIN}" fi +if ! $IP6TABLES -t mangle -L "${SHAPE_CHAIN}" >/dev/null 2>&1 +then + echo "initializing ipv6 chain '${SHAPE_CHAIN}'" + $IP6TABLES -t mangle -N "${SHAPE_CHAIN}" +fi # prioritize small and responsive things shape 1 -p icmp @@ -92,3 +105,12 @@ then $IPTABLES -t mangle -I POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}" fi +if ! $IP6TABLES -t mangle -C POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}" >/dev/null 2>&1 +then + $IP6TABLES -t mangle -I POSTROUTING -o "${EXT_IF}" -j "${SHAPE_CHAIN}" +fi + +if [[ ! -e /etc/local.d/shaper.start ]] +then + echo "add shaper to local rc start!" +fi