#! /bin/sh -e ### ### A simple script for capturing TrIPE sessions, for testing the Wireshark ### dissector. ty=${1?ty} param=${2-$ty} tripe=${TRIPE-tripe} rm -rf captmp mkdir captmp cd captmp cp ../keyring . for i in alice bob; do key add -eforever -a$ty -t$i -pparam-$param tripe done cp keyring keyring.pub for i in alice bob; do mkfifo $i.in $i.out TRIPE_SLIPIF=/usr/bin/tripe-uslip \ $tripe -d. -as.$i -F -nslip -t$i -p0 <$i.in >$i.out 2>$i.err& done exec 3>alice.in 4bob.in 6&$in while read tag tail; do : "$tag $tail" case $tag in INFO) echo $tail ;; FAIL) echo >&2 "command \`$*' failed: $tail"; exit 10 ;; OK) break ;; esac done <&$out } await () { who=$1 eval out=\$${who}_out while read tag kind rest; do : "$tag $kind $rest" case $tag,$kind in NOTE,KXDONE) break ;; esac done <&$out } docmd alice watch n-tw docmd bob watch n-tw p_alice=$(docmd alice port) p_bob=$(docmd bob port) tshark -ilo -f"udp port $p_alice or udp port $p_bob" \ -w../cap.$param& shark=$! pause docmd alice add -cork bob 127.0.0.1 $p_bob c=$(docmd bob getchal) docmd alice greet bob $c docmd bob add alice 127.0.0.1 $p_alice await alice& walice=$! await bob& wbob=$! wait $walice wait $wbob echo ping | tripe-uslip -p bob x=$(tripe-uslip -g alice) pause exec 3>&- 4>&- 5>&- 6>&- kill $shark wait