From e521445fee7bb06b4b802cfd04e039555df10ed3 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 14 Mar 2019 18:15:27 +0100 Subject: [PATCH] Generalize ttcn3-tcpdump-*.sh Prepare for supporting alternative packet dumpers: * reword comments * rename pidfile * move tcpdump-specific option inside if * move comment about sudo closer to actual sudo invocation Those are cosmetic changes which do not affect how packet dump is made but makes it easier to support alternative packet dumpers in follow-up commit. Change-Id: Ib2528db65348c0422fe8b7c7c53656fbce4f6405 --- ttcn3-tcpdump-start.sh | 18 +++++++++--------- ttcn3-tcpdump-stop.sh | 10 +++++----- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ttcn3-tcpdump-start.sh b/ttcn3-tcpdump-start.sh index 747002be5..b8ad01acd 100755 --- a/ttcn3-tcpdump-start.sh +++ b/ttcn3-tcpdump-start.sh @@ -1,6 +1,6 @@ #!/bin/sh -PIDFILE=/tmp/tcpdump.pid +PIDFILE=/tmp/dumper.pid TCPDUMP=/usr/sbin/tcpdump TESTCASE=$1 @@ -16,19 +16,19 @@ if [ -e $PIDFILE ]; then rm $PIDFILE fi +if [ "$(id -u)" = "0" ]; then + CMD="$TCPDUMP -U" +else # NOTE: This requires you to be root or something like # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file -if [ "$(id -u)" = "0" ]; then - CMD=$TCPDUMP -else - CMD="sudo $TCPDUMP" + CMD="sudo $TCPDUMP -U" fi -$CMD -U -s 1500 -n -i any -w "$TTCN3_PCAP_PATH/$TESTCASE.pcap" >$TTCN3_PCAP_PATH/$TESTCASE.pcap.stdout 2>&1 & +$CMD -s 1500 -n -i any -w "$TTCN3_PCAP_PATH/$TESTCASE.pcap" >$TTCN3_PCAP_PATH/$TESTCASE.pcap.stdout 2>&1 & PID=$! echo $PID > $PIDFILE -# Wait until tcpdump creates the pcap file and starts recording. -# We generate some traffic until we see tcpdump catches it. +# Wait until packet dumper creates the pcap file and starts recording. +# We generate some traffic until we see packet dumper catches it. # Timeout is 10 seconds. ping 127.0.0.1 >/dev/null 2>&1 & PID=$! @@ -36,7 +36,7 @@ i=0 while [ ! -f "$TTCN3_PCAP_PATH/$TESTCASE.pcap" ] || [ "$(stat -c '%s' "$TTCN3_PCAP_PATH/$TESTCASE.pcap")" -eq 32 ] do - echo "Waiting for tcpdump to start... $i" + echo "Waiting for packet dumper to start... $i" sleep 1 i=$((i+1)) if [ $i -eq 10 ]; then diff --git a/ttcn3-tcpdump-stop.sh b/ttcn3-tcpdump-stop.sh index baabefe4a..f53cf5d19 100755 --- a/ttcn3-tcpdump-stop.sh +++ b/ttcn3-tcpdump-stop.sh @@ -1,6 +1,6 @@ #!/bin/sh -PIDFILE=/tmp/tcpdump.pid +PIDFILE=/tmp/dumper.pid TESTCASE=$1 VERDICT="$2" @@ -17,14 +17,14 @@ if [ "z$TTCN3_PCAP_PATH" = "z" ]; then TTCN3_PCAP_PATH=/tmp fi -# Wait for up to 2 seconds if we keep receiving traffinc from tcpdump, +# Wait for up to 2 seconds if we keep receiving traffinc from packet dumper, # otherwise we might lose last packets from test. i=0 prev_count=-1 count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcap") while [ $count -gt $prev_count ] && [ $i -lt 2 ] do - echo "Waiting for tcpdump to finish... $i (prev_count=$prev_count, count=$count)" + echo "Waiting for packet dumper to finish... $i (prev_count=$prev_count, count=$count)" sleep 1 prev_count=$count count=$(stat --format="%s" "$TTCN3_PCAP_PATH/$TESTCASE.pcap") @@ -32,11 +32,11 @@ do done if [ -e $PIDFILE ]; then - # NOTE: This requires you to be root or something like - # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file if [ "$(id -u)" = "0" ]; then kill "$(cat "$PIDFILE")" else + # NOTE: This requires you to be root or something like + # "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file sudo kill "$(cat "$PIDFILE")" fi rm $PIDFILE