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
This commit is contained in:
parent
6e05304843
commit
e521445fee
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue