X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=setup.sh;h=951d3aca0e7b33408f7293dab3f5e5ca1d8da6fb;hb=a0971e1ea5dd4963e51a5dd0c24d90c443c1dc84;hp=4cf7a80d8c6ffdb89e89bab1042029d40583208c;hpb=71a0489975b6126f6a3129d1837b63912c4c427a;p=rrq%2Fhourglass.git diff --git a/setup.sh b/setup.sh index 4cf7a80..951d3ac 100755 --- a/setup.sh +++ b/setup.sh @@ -5,12 +5,19 @@ CONF="hourglass.conf" function getcfg() { - grep -E "\\s*[^;#]$1]\\s*=" $CONF | sed 's/.*=\s*(.*)/\1/;s/\s*$//' + awk -v K="$1" '$1==K {print;exit;}' $CONF | + sed 's/^[^=]*=\s*//;s/\s*$//' } - -NET="$(getcfg listener.ip)" +NET="$(getcfg listener.net)" TAP="$(getcfg listener.tap)" SET="$(getcfg ipset.table)" +CMD="${1-start}" + +cat <> /tmp/hourglass-listener.log - newlisp listener.lsp >> /tmp/hourglass-listener.log 2>&1 & + ./hourglass listener >> /tmp/hourglass-listener.log 2>&1 & while sleep 1 ; do ifconfig $TAP >& /dev/null && break - echo $TAP not up yet + echo $TAP not up yet >&2 done ifconfig $TAP $NET.1 up - iptables -t mangle -A FORWARD -p tcp --dport 53 -j RETURN - iptables -t mangle -A FORWARD -p udp --dport 53 -j RETURN iptables -t mangle -A FORWARD ${RULE[@]} fi ;; stop) - iptables -t mangle -F FORWARD if ifconfig $TAP >& /dev/null ; then - pkill -2 -f listener.lsp + pkill -2 -f "hourglass listener" else echo "Already stopped" fi ipset flush $SET + iptables -t mangle -D FORWARD ${RULE[@]} ;; *) echo "Unknown: $CMD"