From 3cdcadcb6d5d8e22110e2215f0f21940945ded92 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Fri, 2 May 2025 14:41:50 -0500 Subject: [PATCH] Add listener readiness check in runtest.sh --- listener.py | 2 ++ runtest.sh | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/listener.py b/listener.py index a83b36f..93d7f2d 100755 --- a/listener.py +++ b/listener.py @@ -303,6 +303,8 @@ def main(): hopper_thread = threading.Thread(target=channel_hopper, args=(args.monitor_iface,)) hopper_thread.daemon = True hopper_thread.start() + + print("LISTENING_STARTED", flush=True) while running: sniff(iface=args.monitor_iface, prn=handle_packet, store=False, timeout=5) diff --git a/runtest.sh b/runtest.sh index c420f9e..90bf123 100755 --- a/runtest.sh +++ b/runtest.sh @@ -168,12 +168,19 @@ for ((COUNTER = 1; COUNTER <= NUM_TESTS; COUNTER++)); do LISTENER_SAMPLE_FILE="${TEST_FILE%.csv}-listener-$COUNTER-$i.csv" log "Launching listener for sample $COUNTER/$i..." + + READY_FILE="/tmp/listener_ready_$COUNTER_$i" + sudo "${SCRIPT_DIRECTORY}/listener.py" \ --main-iface "$INTERFACE" \ --monitor-iface "$LISTEN_INTERFACE" \ --outfile "$LISTENER_SAMPLE_FILE" \ - "${LISTENER_ARGS[@]}" & + "${LISTENER_ARGS[@]}" > >(tee "$READY_FILE") & LISTENER_PID=$! + + # Wait for the READY_FILE to contain "LISTENING_STARTED" + timeout 5 bash -c "until grep -q LISTENING_STARTED $READY_FILE; do sleep 0.2; done" + fi log " Sample $i of $NUM_SAMPLES" START_TIME=$(date -Iseconds)