From 2f09a1e3c950c9b2993ae52d1b0e78317c344470 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 9 Mar 2017 08:53:52 +0100
Subject: [PATCH] iwcap: fix handling kill signal during dump

Do not run another loop iteration before checking the stop flag

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 package/network/utils/iwcap/src/iwcap.c | 26 ++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/package/network/utils/iwcap/src/iwcap.c b/package/network/utils/iwcap/src/iwcap.c
index 6bf25c57dd..bc69550ef3 100644
--- a/package/network/utils/iwcap/src/iwcap.c
+++ b/package/network/utils/iwcap/src/iwcap.c
@@ -490,19 +490,7 @@ int main(int argc, char **argv)
 	/* capture loop */
 	while (1)
 	{
-		if (run_stop)
-		{
-			msg("Shutting down ...\n");
-
-			if (promisc)
-				set_promisc(0);
-
-			if (ring)
-				ringbuf_free(ring);
-
-			return 0;
-		}
-		else if (run_dump)
+		if (run_dump)
 		{
 			msg("Dumping ring to %s ...\n", output);
 
@@ -535,6 +523,18 @@ int main(int argc, char **argv)
 
 			run_dump = 0;
 		}
+		if (run_stop)
+		{
+			msg("Shutting down ...\n");
+
+			if (promisc)
+				set_promisc(0);
+
+			if (ring)
+				ringbuf_free(ring);
+
+			return 0;
+		}
 
 		pktlen = recvfrom(capture_sock, pktbuf, sizeof(pktbuf), 0, NULL, 0);
 		frames_captured++;
-- 
GitLab