WITH_2TRIPES([alice], [bob], [-nslip], [-talice], [-tbob], [
WITH_MITM([alice], [=bob_from_alice], [bob], [=alice_from_bob], [
- COPROCESSES([wait-knock], [
- echo WATCH +n
- while read line; do
- set x $line; shift
- echo >&2 ">>> $line"
- case "$1:$2:$3" in
- OK::) ;;
- NOTE:KNOCK:bob) shift 3; echo "$*" >knock-addr; break ;;
- NOTE:* | TRACE:* | WARN:*) ;;
- *) exit 63 ;;
- esac
- done
- ], [
- TRIPECTL -dalice
- ])& waiter=$!
-
- AT_CHECK([TRIPECTL -dbob ADD -knock bob -ephemeral alice INET 127.0.0.1 $alice_from_bob])
-
- wait $waiter; waitrc=$?
- AT_CHECK([echo $waitrc],, [0[]nl])
+m4_define([WAIT_KNOCK], [
+ COPROCESSES([wait-knock], [
+ echo "WATCH +n"
+ while read line; do
+ set x $line; shift
+ echo >&2 ">>> $line"
+ case "$[]1:$[]2:$[]3" in
+ OK::) ;;
+ NOTE:KNOCK:$2) shift 3; echo "$[]*" >knock-addr; break ;;
+ NOTE:* | TRACE:* | WARN:*) ;;
+ *) exit 63 ;;
+ esac
+ done
+ ], [
+ TRIPECTL -d$1
+ ])& waiter=$!
+
+ $3
+
+ wait $waiter; waitrc=$?
+ AT_CHECK([echo $waitrc],, [0[]nl])
+])
+
+ WAIT_KNOCK([alice], [bob], [
+ AT_CHECK([TRIPECTL -dbob ADD -knock bob -ephemeral alice INET 127.0.0.1 $alice_from_bob])
+ ])
AT_CHECK_UNQUOTED([cat knock-addr],, [INET 127.0.0.1 $bob_from_alice[]nl])
AWAIT_KXDONE([alice], [alice], [bob], [bob], [