From: Jouni Malinen Date: Thu, 11 Jul 2013 13:19:19 +0000 (+0300) Subject: Do not block on ctrl_iface monitor events X-Git-Tag: aosp-kk-from-upstream~131 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=commitdiff_plain;h=b62b29ea875b49c6007857338aff8895f363618b Do not block on ctrl_iface monitor events It looks like some of the global control interface cases ended up blocking in sendmsg() when trying to send an event. Since this can block all wpa_supplicant processing for multiple seconds, this is very undesirable. Avoid this by requesting sendmsg() to return an error rather than waiting for the message to be sent. Signed-hostap: Jouni Malinen --- diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c index 1b4b9b0..fc0d649 100644 --- a/wpa_supplicant/ctrl_iface_unix.c +++ b/wpa_supplicant/ctrl_iface_unix.c @@ -602,7 +602,7 @@ static void wpa_supplicant_ctrl_iface_send(const char *ifname, int sock, offsetof(struct sockaddr_un, sun_path)); msg.msg_name = (void *) &dst->addr; msg.msg_namelen = dst->addrlen; - if (sendmsg(sock, &msg, 0) < 0) { + if (sendmsg(sock, &msg, MSG_DONTWAIT) < 0) { int _errno = errno; wpa_printf(MSG_INFO, "CTRL_IFACE monitor[%d]: " "%d - %s",