From fa7187bfde9bed2bbf25c73337c787ea75b5dfc7 Mon Sep 17 00:00:00 2001 From: Antonio Quartulli Date: Sun, 29 Jan 2012 12:23:27 +0200 Subject: [PATCH] IBSS RSN: Provide ibss_rsn_get_peer() helper function This is a useful function that simplifies some code and can eventually be used somewhere else in future. Signed-hostap: Antonio Quartulli --- wpa_supplicant/ibss_rsn.c | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/wpa_supplicant/ibss_rsn.c b/wpa_supplicant/ibss_rsn.c index d4fa39d74..f9a909001 100644 --- a/wpa_supplicant/ibss_rsn.c +++ b/wpa_supplicant/ibss_rsn.c @@ -24,6 +24,18 @@ #include "ibss_rsn.h" +static struct ibss_rsn_peer * ibss_rsn_get_peer(struct ibss_rsn *ibss_rsn, + const u8 *addr) +{ + struct ibss_rsn_peer *peer; + + for (peer = ibss_rsn->peers; peer; peer = peer->next) + if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0) + break; + return peer; +} + + static void ibss_rsn_free(struct ibss_rsn_peer *peer) { wpa_auth_sta_deinit(peer->auth); @@ -383,13 +395,11 @@ int ibss_rsn_start(struct ibss_rsn *ibss_rsn, const u8 *addr) if (ibss_rsn == NULL) return -1; - for (peer = ibss_rsn->peers; peer; peer = peer->next) { - if (os_memcmp(addr, peer->addr, ETH_ALEN) == 0) { - wpa_printf(MSG_DEBUG, "RSN: IBSS Authenticator and " - "Supplicant for peer " MACSTR " already " - "running", MAC2STR(addr)); - return 0; - } + if (ibss_rsn_get_peer(ibss_rsn, addr)) { + wpa_printf(MSG_DEBUG, "RSN: IBSS Authenticator and Supplicant " + "for peer " MACSTR " already running", + MAC2STR(addr)); + return 0; } wpa_printf(MSG_DEBUG, "RSN: Starting IBSS Authenticator and " @@ -577,11 +587,9 @@ int ibss_rsn_rx_eapol(struct ibss_rsn *ibss_rsn, const u8 *src_addr, if (ibss_rsn == NULL) return -1; - for (peer = ibss_rsn->peers; peer; peer = peer->next) { - if (os_memcmp(src_addr, peer->addr, ETH_ALEN) == 0) - return ibss_rsn_process_rx_eapol(ibss_rsn, peer, - buf, len); - } + peer = ibss_rsn_get_peer(ibss_rsn, src_addr); + if (peer) + return ibss_rsn_process_rx_eapol(ibss_rsn, peer, buf, len); if (ibss_rsn_eapol_dst_supp(buf, len) > 0) { /*