Fix CONFIG_CTRL_IFACE=udp6/udp6-remote builds
wpa_supplicant_global_ctrl_iface_receive() did not handle the from
address properly for the IPv6 case. This was broken by commit
d60886cdaf
('wpa_supplicant: Add monitor
support for global UDP ctrl_iface').
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
4f6985de09
commit
a6fbff2049
1 changed files with 7 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* WPA Supplicant / UDP socket -based control interface
|
* WPA Supplicant / UDP socket -based control interface
|
||||||
* Copyright (c) 2004-2005, Jouni Malinen <j@w1.fi>
|
* Copyright (c) 2004-2016, Jouni Malinen <j@w1.fi>
|
||||||
*
|
*
|
||||||
* This software may be distributed under the terms of the BSD license.
|
* This software may be distributed under the terms of the BSD license.
|
||||||
* See README for more details.
|
* See README for more details.
|
||||||
|
@ -602,7 +602,11 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
||||||
struct ctrl_iface_global_priv *priv = sock_ctx;
|
struct ctrl_iface_global_priv *priv = sock_ctx;
|
||||||
char buf[256], *pos;
|
char buf[256], *pos;
|
||||||
int res;
|
int res;
|
||||||
|
#ifdef CONFIG_CTRL_IFACE_UDP_IPV6
|
||||||
|
struct sockaddr_in6 from;
|
||||||
|
#else /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||||
struct sockaddr_in from;
|
struct sockaddr_in from;
|
||||||
|
#endif /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||||
socklen_t fromlen = sizeof(from);
|
socklen_t fromlen = sizeof(from);
|
||||||
char *reply = NULL;
|
char *reply = NULL;
|
||||||
size_t reply_len;
|
size_t reply_len;
|
||||||
|
@ -617,6 +621,7 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef CONFIG_CTRL_IFACE_UDP_REMOTE
|
#ifndef CONFIG_CTRL_IFACE_UDP_REMOTE
|
||||||
|
#ifndef CONFIG_CTRL_IFACE_UDP_IPV6
|
||||||
if (from.sin_addr.s_addr != htonl((127 << 24) | 1)) {
|
if (from.sin_addr.s_addr != htonl((127 << 24) | 1)) {
|
||||||
/*
|
/*
|
||||||
* The OS networking stack is expected to drop this kind of
|
* The OS networking stack is expected to drop this kind of
|
||||||
|
@ -628,6 +633,7 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx,
|
||||||
"source %s", inet_ntoa(from.sin_addr));
|
"source %s", inet_ntoa(from.sin_addr));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_CTRL_IFACE_UDP_IPV6 */
|
||||||
#endif /* CONFIG_CTRL_IFACE_UDP_REMOTE */
|
#endif /* CONFIG_CTRL_IFACE_UDP_REMOTE */
|
||||||
|
|
||||||
buf[res] = '\0';
|
buf[res] = '\0';
|
||||||
|
|
Loading…
Reference in a new issue