From 2a54979695597f362bd5cfcccb77dfb99b61ed9e Mon Sep 17 00:00:00 2001 From: Ben Greear Date: Mon, 4 Dec 2017 09:18:26 -0800 Subject: [PATCH] wpa_ctrl: Make wpa_cli ping/pong work more reliably 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 wpa_supplicant is busy sending logging info to wpa_cli. Adding check for IFNAME=foo makes this work better. Signed-off-by: Ben Greear --- 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 623c2a768..1f1c9c422 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