[PATCH] wpa-cli: Make ping/pong work more reliably.

greearb at candelatech.com greearb at candelatech.com
Mon Dec 4 09:18:26 PST 2017


From: Ben Greear <greearb at candelatech.com>

In 2013 or so, IFNAME=foo was prepended to at least the
Unix socket communication from wpa_supplicant to wpa_cli.

This broke the (fragile) logic that made ping/pong work more
often when the supplicant is busy sending logging info to
the wpa_cli.

Adding check for IFNAME=foo makes this work better.

Signed-off-by: Ben Greear <greearb at candelatech.com>
---
 src/common/wpa_ctrl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/common/wpa_ctrl.c b/src/common/wpa_ctrl.c
index 623c2a7..1f1c9c4 100644
--- a/src/common/wpa_ctrl.c
+++ b/src/common/wpa_ctrl.c
@@ -540,7 +540,8 @@ retry_send:
 			res = recv(ctrl->s, reply, *reply_len, 0);
 			if (res < 0)
 				return res;
-			if (res > 0 && reply[0] == '<') {
+			if ((res > 0 && reply[0] == '<') ||
+			    (res > 6 && strncmp(reply, "IFNAME=", 7) == 0)) {
 				/* This is an unsolicited message from
 				 * wpa_supplicant, not the reply to the
 				 * request. Use msg_cb to report this to the
-- 
2.7.5




More information about the Hostap mailing list