Date: Sat, 18 Dec 2010 19:58:23 +0000 (UTC) From: Bernhard Schmidt <bschmidt@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r216528 - head/usr.sbin/wpa/hostapd Message-ID: <201012181958.oBIJwNGA026896@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: bschmidt Date: Sat Dec 18 19:58:23 2010 New Revision: 216528 URL: http://svn.freebsd.org/changeset/base/216528 Log: Add bsd_send_mlme_param to aggregate IEEE80211_IOC_MLME ioctls: - merge bsd_set_sta_authorized and bsd_sta_set_flags - change bsd_set_sta_authorized, bsd_sta_deauth and bsd_sta_disassoc to use bsd_send_mlme_param Modified: head/usr.sbin/wpa/hostapd/driver_freebsd.c Modified: head/usr.sbin/wpa/hostapd/driver_freebsd.c ============================================================================== --- head/usr.sbin/wpa/hostapd/driver_freebsd.c Sat Dec 18 19:56:45 2010 (r216527) +++ head/usr.sbin/wpa/hostapd/driver_freebsd.c Sat Dec 18 19:58:23 2010 (r216528) @@ -215,34 +215,35 @@ bsd_set_privacy(void *priv, int enabled) } static int -bsd_set_sta_authorized(void *priv, const u8 *addr, int authorized) +bsd_send_mlme_param(void *priv, const u8 op, const u16 reason, const u8 *addr) { - struct bsd_driver_data *drv = priv; - struct hostapd_data *hapd = drv->hapd; struct ieee80211req_mlme mlme; - wpa_printf(MSG_DEBUG, "%s: addr=%s authorized=%d\n", - __func__, ether_sprintf(addr), authorized); - - if (authorized) - mlme.im_op = IEEE80211_MLME_AUTHORIZE; - else - mlme.im_op = IEEE80211_MLME_UNAUTHORIZE; - mlme.im_reason = 0; - memcpy(mlme.im_macaddr, addr, IEEE80211_ADDR_LEN); + os_memset(&mlme, 0, sizeof(mlme)); + mlme.im_op = op; + mlme.im_reason = reason; + os_memcpy(mlme.im_macaddr, addr, IEEE80211_ADDR_LEN); return set80211var(priv, IEEE80211_IOC_MLME, &mlme, sizeof(mlme)); } static int -bsd_sta_set_flags(void *priv, const u8 *addr, int total_flags, - int flags_or, int flags_and) +bsd_set_sta_authorized(void *priv, const u8 *addr, + int total_flags, int flags_or, int flags_and) { + int authorized = -1; + /* For now, only support setting Authorized flag */ if (flags_or & WPA_STA_AUTHORIZED) - return bsd_set_sta_authorized(priv, addr, 1); + authorized = 1; if (!(flags_and & WPA_STA_AUTHORIZED)) - return bsd_set_sta_authorized(priv, addr, 0); - return 0; + authorized = 0; + + if (authorized < 0) + return 0; + + return bsd_send_mlme_param(priv, authorized ? + IEEE80211_MLME_AUTHORIZE : + IEEE80211_MLME_UNAUTHORIZE, 0, addr); } static int @@ -413,32 +414,16 @@ bsd_set_opt_ie(void *priv, const u8 *ie, static int bsd_sta_deauth(void *priv, const u8 *own_addr, const u8 *addr, int reason_code) { - struct bsd_driver_data *drv = priv; - struct hostapd_data *hapd = drv->hapd; - struct ieee80211req_mlme mlme; - - wpa_printf(MSG_DEBUG, "%s: addr=%s reason_code=%d\n", - __func__, ether_sprintf(addr), reason_code); - - mlme.im_op = IEEE80211_MLME_DEAUTH; - mlme.im_reason = reason_code; - memcpy(mlme.im_macaddr, addr, IEEE80211_ADDR_LEN); - return set80211var(priv, IEEE80211_IOC_MLME, &mlme, sizeof(mlme)); + return bsd_send_mlme_param(priv, IEEE80211_MLME_DEAUTH, reason_code, + addr); } static int -bsd_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, int reason_code) +bsd_sta_disassoc(void *priv, const u8 *own_addr, const u8 *addr, + int reason_code) { - struct bsd_driver_data *drv = priv; - struct hostapd_data *hapd = drv->hapd; - struct ieee80211req_mlme mlme; - - wpa_printf(MSG_DEBUG, "%s: addr=%s reason_code=%d\n", - __func__, ether_sprintf(addr), reason_code); - - mlme.im_reason = reason_code; - memcpy(mlme.im_macaddr, addr, IEEE80211_ADDR_LEN); - return set80211var(priv, IEEE80211_IOC_MLME, &mlme, sizeof(mlme)); + return bsd_send_mlme_param(priv, IEEE80211_MLME_DISASSOC, reason_code, + addr); } static void @@ -807,7 +792,7 @@ const struct wpa_driver_ops wpa_driver_b .get_seqnum = bsd_get_seqnum, .flush = bsd_flush, .set_generic_elem = bsd_set_opt_ie, - .sta_set_flags = bsd_sta_set_flags, + .sta_set_flags = bsd_set_sta_authorized, .read_sta_data = bsd_read_sta_driver_data, .hapd_send_eapol = bsd_send_eapol, .sta_disassoc = bsd_sta_disassoc,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201012181958.oBIJwNGA026896>