From 3b7624c120ce395f9020d2d965e170c88b81478b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Redon?= Date: Tue, 10 Jul 2018 16:03:27 +0200 Subject: [PATCH] host sniff: process remaining usb messages in buffer Change-Id: I1746c0187b2e5dbef44b4b336fee3bd9ded15079 --- host/simtrace2-sniff.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/host/simtrace2-sniff.c b/host/simtrace2-sniff.c index eb547b07..d5fe48ac 100644 --- a/host/simtrace2-sniff.c +++ b/host/simtrace2-sniff.c @@ -276,12 +276,15 @@ static void run_mainloop() if (xfer_len > 0) { //printf("URB: %s\n", osmo_hexdump(&buf[buf_i], xfer_len)); buf_i += xfer_len; - if (buf_i>=sizeof(buf)) { + if (buf_i >= sizeof(buf)) { perror("preventing USB buffer overflow"); return; } - int processed = process_usb_msg(buf, buf_i); - if (processed > 0 && processed <= buf_i) { + int processed; + while ((processed = process_usb_msg(buf, buf_i)) > 0) { + if (processed > buf_i) { + break; + } for (i = processed; i < buf_i; i++) { buf[i-processed] = buf[i]; }