PERFORCE change 134226 for review
Sam Leffler
sam at FreeBSD.org
Sun Jan 27 11:08:34 PST 2008
http://perforce.freebsd.org/chv.cgi?CH=134226
Change 134226 by sam at sam_ebb on 2008/01/27 19:08:32
add a public function ieee80211_node_deauth to drop a station
associated to an ap vap; useful for drivers that need to drop
a station for various reasons
Affected files ...
.. //depot/projects/vap/sys/net80211/ieee80211_hostap.c#6 edit
.. //depot/projects/vap/sys/net80211/ieee80211_node.c#20 edit
.. //depot/projects/vap/sys/net80211/ieee80211_node.h#13 edit
Differences ...
==== //depot/projects/vap/sys/net80211/ieee80211_hostap.c#6 (text+ko) ====
@@ -1505,8 +1505,7 @@
return 1;
bad:
- IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_DEAUTH, reason);
- ieee80211_node_leave(ni);
+ ieee80211_node_deauth(ni, reason);
return 0;
}
==== //depot/projects/vap/sys/net80211/ieee80211_node.c#20 (text+ko) ====
@@ -721,6 +721,20 @@
ieee80211_notify_node_leave(ni);
}
+/*
+ * Send a deauthenticate frame and drop the station.
+ */
+void
+ieee80211_node_deauth(struct ieee80211_node *ni, int reason)
+{
+ /* NB: bump the refcnt to be sure temporay nodes are not reclaimed */
+ ieee80211_ref_node(ni);
+ if (ni->ni_associd != 0)
+ IEEE80211_SEND_MGMT(ni, IEEE80211_FC0_SUBTYPE_DEAUTH, reason);
+ ieee80211_node_leave(ni);
+ ieee80211_free_node(ni);
+}
+
static struct ieee80211_node *
node_alloc(struct ieee80211_node_table *nt)
{
==== //depot/projects/vap/sys/net80211/ieee80211_node.h#13 (text+ko) ====
@@ -275,6 +275,7 @@
int ieee80211_sta_join(struct ieee80211vap *,
const struct ieee80211_scan_entry *);
void ieee80211_sta_leave(struct ieee80211_node *);
+void ieee80211_node_deauth(struct ieee80211_node *, int);
int ieee80211_ies_init(struct ieee80211_ies *, const uint8_t *, int);
void ieee80211_ies_cleanup(struct ieee80211_ies *);
More information about the p4-projects
mailing list