Commit | Line | Data |
---|---|---|
3949f61c MW |
1 | #! /bin/sh -e |
2 | ### | |
3 | ### A simple script for capturing TrIPE sessions, for testing the Wireshark | |
4 | ### dissector. | |
5 | ||
6 | ty=${1?ty} param=${2-$ty} | |
7 | tripe=${TRIPE-tripe} | |
8 | rm -rf captmp | |
9 | mkdir captmp | |
10 | cd captmp | |
11 | ||
12 | cp ../keyring . | |
13 | for i in alice bob; do | |
14 | key add -eforever -a$ty -t$i -pparam-$param tripe | |
15 | done | |
16 | cp keyring keyring.pub | |
17 | ||
18 | for i in alice bob; do | |
19 | mkfifo $i.in $i.out | |
20 | TRIPE_SLIPIF=/usr/bin/tripe-uslip \ | |
21 | $tripe -d. -as.$i -F -nslip -t$i -p0 <$i.in >$i.out 2>$i.err& | |
22 | done | |
23 | exec 3>alice.in 4<alice.out; alice_in=3 alice_out=4 | |
24 | exec 5>bob.in 6<bob.out; bob_in=5 bob_out=6 | |
25 | ||
26 | docmd () { | |
27 | who=$1; shift | |
28 | eval in=\$${who}_in out=\$${who}_out | |
29 | echo "$*" >&$in | |
30 | while read tag tail; do | |
31 | : "$tag $tail" | |
32 | case $tag in | |
33 | INFO) echo $tail ;; | |
34 | FAIL) echo >&2 "command \`$*' failed: $tail"; exit 10 ;; | |
35 | OK) break ;; | |
36 | esac | |
37 | done <&$out | |
38 | } | |
39 | ||
40 | await () { | |
41 | who=$1 | |
42 | eval out=\$${who}_out | |
43 | while read tag kind rest; do | |
44 | : "$tag $kind $rest" | |
45 | case $tag,$kind in | |
46 | NOTE,KXDONE) break ;; | |
47 | esac | |
48 | done <&$out | |
49 | } | |
50 | ||
51 | docmd alice watch n-tw | |
52 | docmd bob watch n-tw | |
53 | ||
54 | p_alice=$(docmd alice port) | |
55 | p_bob=$(docmd bob port) | |
56 | ||
57 | tshark -ilo -f"udp port $p_alice or udp port $p_bob" \ | |
58 | -w../cap.$param& shark=$! | |
59 | pause | |
60 | ||
61 | docmd alice add -cork bob 127.0.0.1 $p_bob | |
62 | c=$(docmd bob getchal) | |
63 | docmd alice greet bob $c | |
64 | docmd bob add alice 127.0.0.1 $p_alice | |
65 | await alice& walice=$! | |
66 | await bob& wbob=$! | |
67 | wait $walice | |
68 | wait $wbob | |
69 | ||
70 | echo ping | tripe-uslip -p bob | |
71 | x=$(tripe-uslip -g alice) | |
72 | ||
73 | pause | |
74 | ||
75 | exec 3>&- 4>&- 5>&- 6>&- | |
76 | kill $shark | |
77 | wait |