From patchwork Fri Mar 4 09:20:23 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janusz.Dziedzic@tieto.com X-Patchwork-Id: 591842 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 53A601402A9 for ; Fri, 4 Mar 2016 20:21:36 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=tieto.com header.i=@tieto.com header.b=nTmoDrV8; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ablvM-0001uo-Ta; Fri, 04 Mar 2016 09:21:28 +0000 Received: from mail-lb0-x22c.google.com ([2a00:1450:4010:c04::22c]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ablvB-0001m2-7W for hostap@lists.infradead.org; Fri, 04 Mar 2016 09:21:21 +0000 Received: by mail-lb0-x22c.google.com with SMTP id bc4so53967599lbc.2 for ; Fri, 04 Mar 2016 01:21:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tieto.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=WIBF4oQCLUrGXS9CV2mqSz5G7M4oly0mC5UVxMj0+EY=; b=nTmoDrV8ncZoYBvEt1CmW6Vn8GOTQVjT6RydpOhNB8fHGrjWlqVoDawWstgrc18JD7 tIsm+ldsFHSih7zIv7Jl2pGVRT5o3O/6/ZMlJc3tellrjcv9m8wQka/DdpxMCF3q3m77 uh3DoEs6acc8Lo+8AYBTGtXObI7x1smjk3BT0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=WIBF4oQCLUrGXS9CV2mqSz5G7M4oly0mC5UVxMj0+EY=; b=kJ2f9D2EmGzmEfMsClxb9PI6PTSoWmGURqQtfCeDyF5L9gKhv9RKV6s8f+meqq2Kwv QV51XjcCLHpzGt2PmojVmjZpZBgfnag5vBASPoc7ofm3yzOP4ec4z36Cnya3pbuMmvch dz8cVQ4yjB0TXi4tE9dLQkr075HX3IfnQJut0MrJsJ23wravn1tYA3zXXirFRTe9/AdL CJ/IW6PbwYCm7sbNRyJQ4TyJsPqhiwYN1VA4+Op8riKv/P4rL55JI1JEYdSSiWvbOPZq /DI7W9zFqeI58tdJ01qdbvMnixGA0z+HzH56Cr63OT+LKpr7lzKBgTTjaRD4v2Qno1Xp yAAA== X-Gm-Message-State: AD7BkJIej4F3r/97Y9iMxBFt46eH+qMAEcEiXjkdM+pXytpA+v5nPTNhQVm+pxSsT6P+MRemJaBu5YWQwKHE4H5K1gN8PY/RH6g5gj53HqLD7i4GDn60EhJ21xAPPLVsNPLqc3TfAJYyk1HmHMhMfd2ZX0SqmtFMciz/Fkk9fDeeVGlveRrGXs0vx1wKz3+kwqyO X-Received: by 10.25.79.14 with SMTP id d14mr2692076lfb.98.1457083259073; Fri, 04 Mar 2016 01:20:59 -0800 (PST) Received: from dell6430.guest.wifi ([91.198.246.8]) by smtp.gmail.com with ESMTPSA id r191sm437001lfe.28.2016.03.04.01.20.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 04 Mar 2016 01:20:58 -0800 (PST) From: Janusz Dziedzic To: hostap@lists.infradead.org Subject: [PATCH v5 07/25] ctrl unix: use sockaddr_storage Date: Fri, 4 Mar 2016 10:20:23 +0100 Message-Id: <1457083241-7492-8-git-send-email-janusz.dziedzic@tieto.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1457083241-7492-1-git-send-email-janusz.dziedzic@tieto.com> References: <1457083241-7492-1-git-send-email-janusz.dziedzic@tieto.com> X-DomainID: tieto.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160304_012117_890042_D42B01EF X-CRM114-Status: GOOD ( 12.05 ) X-Spam-Score: -2.7 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.7 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [2a00:1450:4010:c04:0:0:0:22c listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: hostap@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: j@w1.fi, Janusz Dziedzic MIME-Version: 1.0 Sender: "Hostap" Errors-To: hostap-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Signed-off-by: Janusz Dziedzic --- hostapd/ctrl_iface.c | 23 +++++++++++------------ src/common/ctrl_iface_common.c | 16 ++++++++-------- src/common/ctrl_iface_common.h | 8 ++++---- wpa_supplicant/ctrl_iface_unix.c | 21 +++++++++------------ 4 files changed, 32 insertions(+), 36 deletions(-) diff --git a/hostapd/ctrl_iface.c b/hostapd/ctrl_iface.c index 6990373..4d90155 100644 --- a/hostapd/ctrl_iface.c +++ b/hostapd/ctrl_iface.c @@ -59,7 +59,7 @@ static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level, static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { return ctrl_iface_attach(&hapd->ctrl_dst, from, fromlen); @@ -67,7 +67,7 @@ static int hostapd_ctrl_iface_attach(struct hostapd_data *hapd, static int hostapd_ctrl_iface_detach(struct hostapd_data *hapd, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { return ctrl_iface_detach(&hapd->ctrl_dst, from, fromlen); @@ -75,7 +75,7 @@ static int hostapd_ctrl_iface_detach(struct hostapd_data *hapd, static int hostapd_ctrl_iface_level(struct hostapd_data *hapd, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen, char *level) { @@ -2061,7 +2061,7 @@ static int hostapd_ctrl_iface_track_sta_list(struct hostapd_data *hapd, static int hostapd_ctrl_iface_receive_process(struct hostapd_data *hapd, char *buf, char *reply, int reply_size, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { int reply_len, res; @@ -2314,7 +2314,7 @@ static void hostapd_ctrl_iface_receive(int sock, void *eloop_ctx, struct hostapd_data *hapd = eloop_ctx; char buf[4096]; int res; - struct sockaddr_un from; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); char *reply; const int reply_size = 4096; @@ -2604,7 +2604,7 @@ static int hostapd_ctrl_iface_remove(struct hapd_interfaces *interfaces, static int hostapd_global_ctrl_iface_attach(struct hapd_interfaces *interfaces, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { return ctrl_iface_attach(&interfaces->global_ctrl_dst, from, fromlen); @@ -2612,7 +2612,7 @@ static int hostapd_global_ctrl_iface_attach(struct hapd_interfaces *interfaces, static int hostapd_global_ctrl_iface_detach(struct hapd_interfaces *interfaces, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { return ctrl_iface_detach(&interfaces->global_ctrl_dst, from, fromlen); @@ -2817,7 +2817,7 @@ static int hostapd_global_ctrl_iface_ifname(struct hapd_interfaces *interfaces, const char *ifname, char *buf, char *reply, int reply_size, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { struct hostapd_data *hapd; @@ -2843,7 +2843,7 @@ static void hostapd_global_ctrl_iface_receive(int sock, void *eloop_ctx, void *interfaces = eloop_ctx; char buf[256]; int res; - struct sockaddr_un from; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); char *reply; int reply_len; @@ -3157,9 +3157,8 @@ static void hostapd_ctrl_iface_send(struct hostapd_data *hapd, int level, idx = 0; dl_list_for_each_safe(dst, next, ctrl_dst, struct wpa_ctrl_dst, list) { if (level >= dst->debug_level) { - wpa_hexdump(MSG_DEBUG, "CTRL_IFACE monitor send", - (u8 *) dst->addr.sun_path, dst->addrlen - - offsetof(struct sockaddr_un, sun_path)); + sockaddr_print(MSG_DEBUG, "CTRL_IFACE monitor send", + &dst->addr, dst->addrlen); msg.msg_name = &dst->addr; msg.msg_namelen = dst->addrlen; if (sendmsg(s, &msg, 0) < 0) { diff --git a/src/common/ctrl_iface_common.c b/src/common/ctrl_iface_common.c index 82ff276..4d79569 100644 --- a/src/common/ctrl_iface_common.c +++ b/src/common/ctrl_iface_common.c @@ -84,7 +84,7 @@ void sockaddr_print(int level, char *msg, struct sockaddr_storage *sock, socklen } int ctrl_iface_attach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { struct wpa_ctrl_dst *dst; @@ -97,20 +97,20 @@ int ctrl_iface_attach(struct dl_list *ctrl_dst, dst->debug_level = MSG_INFO; dl_list_add(ctrl_dst, &dst->list); - sockaddr_print(MSG_DEBUG, "CTRL_IFACE monitor attached", (struct sockaddr_storage *)from, fromlen); + sockaddr_print(MSG_DEBUG, "CTRL_IFACE monitor attached", from, fromlen); return 0; } int ctrl_iface_detach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { struct wpa_ctrl_dst *dst; dl_list_for_each(dst, ctrl_dst, struct wpa_ctrl_dst, list) { - if (!sockaddr_compare((struct sockaddr_storage *)from, (struct sockaddr_storage *)&dst->addr)) { - sockaddr_print(MSG_DEBUG, "CTRL_IFACE monitor detached", (struct sockaddr_storage *)from, fromlen); + if (!sockaddr_compare(from, &dst->addr)) { + sockaddr_print(MSG_DEBUG, "CTRL_IFACE monitor detached", from, fromlen); dl_list_del(&dst->list); os_free(dst); return 0; @@ -121,7 +121,7 @@ int ctrl_iface_detach(struct dl_list *ctrl_dst, } int ctrl_iface_level(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen, char *level) { @@ -130,8 +130,8 @@ int ctrl_iface_level(struct dl_list *ctrl_dst, wpa_printf(MSG_DEBUG, "CTRL_IFACE LEVEL %s", level); dl_list_for_each(dst, ctrl_dst, struct wpa_ctrl_dst, list) { - if (!sockaddr_compare((struct sockaddr_storage *)from, (struct sockaddr_storage *)&dst->addr)) { - sockaddr_print(MSG_DEBUG, "CTRL_IFACE changed monitor level", (struct sockaddr_storage *)from, fromlen); + if (!sockaddr_compare(from, &dst->addr)) { + sockaddr_print(MSG_DEBUG, "CTRL_IFACE changed monitor level", from, fromlen); dst->debug_level = atoi(level); return 0; } diff --git a/src/common/ctrl_iface_common.h b/src/common/ctrl_iface_common.h index b693847..dcd88e0 100644 --- a/src/common/ctrl_iface_common.h +++ b/src/common/ctrl_iface_common.h @@ -13,7 +13,7 @@ struct wpa_ctrl_dst { struct dl_list list; - struct sockaddr_un addr; + struct sockaddr_storage addr; socklen_t addrlen; int debug_level; int errors; @@ -23,13 +23,13 @@ int sockaddr_compare(struct sockaddr_storage *a, struct sockaddr_storage *b); void sockaddr_print(int level, char *msg, struct sockaddr_storage *sock, socklen_t socklen); int ctrl_iface_attach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen); int ctrl_iface_detach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen); int ctrl_iface_level(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen, char *level); diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c index b88e6c1..a79c5a6 100644 --- a/wpa_supplicant/ctrl_iface_unix.c +++ b/wpa_supplicant/ctrl_iface_unix.c @@ -101,7 +101,7 @@ static void wpas_ctrl_sock_debug(const char *title, int sock, const char *buf, static int wpa_supplicant_ctrl_iface_attach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen, int global) { return ctrl_iface_attach(ctrl_dst, from, fromlen); @@ -109,7 +109,7 @@ static int wpa_supplicant_ctrl_iface_attach(struct dl_list *ctrl_dst, static int wpa_supplicant_ctrl_iface_detach(struct dl_list *ctrl_dst, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen) { return ctrl_iface_detach(ctrl_dst, from, fromlen); @@ -117,7 +117,7 @@ static int wpa_supplicant_ctrl_iface_detach(struct dl_list *ctrl_dst, static int wpa_supplicant_ctrl_iface_level(struct ctrl_iface_priv *priv, - struct sockaddr_un *from, + struct sockaddr_storage *from, socklen_t fromlen, char *level) { @@ -134,7 +134,7 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx, struct ctrl_iface_priv *priv = sock_ctx; char buf[4096]; int res; - struct sockaddr_un from; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); char *reply = NULL, *reply_buf = NULL; size_t reply_len = 0; @@ -933,16 +933,13 @@ static void wpa_supplicant_ctrl_iface_send(struct wpa_supplicant *wpa_s, if (level < dst->debug_level) continue; - printf_encode(addr_txt, sizeof(addr_txt), - (u8 *) dst->addr.sun_path, dst->addrlen - - offsetof(struct sockaddr_un, sun_path)); msg.msg_name = (void *) &dst->addr; msg.msg_namelen = dst->addrlen; wpas_ctrl_sock_debug("ctrl_sock-sendmsg", sock, buf, len); if (sendmsg(sock, &msg, MSG_DONTWAIT) >= 0) { - wpa_printf(MSG_MSGDUMP, - "CTRL_IFACE monitor sent successfully to %s", - addr_txt); + sockaddr_print(MSG_MSGDUMP, + "CTRL_IFACE monitor sent successfully to ", + &dst->addr, dst->addrlen); dst->errors = 0; continue; } @@ -988,7 +985,7 @@ void wpa_supplicant_ctrl_iface_wait(struct ctrl_iface_priv *priv) { char buf[256]; int res; - struct sockaddr_un from; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); if (priv->sock == -1) @@ -1051,7 +1048,7 @@ static void wpa_supplicant_global_ctrl_iface_receive(int sock, void *eloop_ctx, struct ctrl_iface_global_priv *priv = sock_ctx; char buf[4096]; int res; - struct sockaddr_un from; + struct sockaddr_storage from; socklen_t fromlen = sizeof(from); char *reply = NULL, *reply_buf = NULL; size_t reply_len;