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

Message ID 1512407906-6986-1-git-send-email-greearb@candelatech.com
State New
Headers show
Series
  • wpa-cli: Make ping/pong work more reliably.
Related show

Commit Message

Ben Greear Dec. 4, 2017, 5:18 p.m.
From: Ben Greear <greearb@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@candelatech.com>
---
 src/common/wpa_ctrl.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Patch

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