diff options
author | adrian <adrian@FreeBSD.org> | 2011-12-15 00:52:30 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-12-15 00:52:30 +0000 |
commit | 78bb8e5fa2902f0e0d26781527fb5bcd4d13fb36 (patch) | |
tree | c0a506e92899f5b8dd0cdd2989e1bbc7470db542 /sys/net80211/ieee80211_mesh.c | |
parent | e23259ae4e0dd7e56235ac44f70300d0a986b284 (diff) | |
download | FreeBSD-src-78bb8e5fa2902f0e0d26781527fb5bcd4d13fb36.zip FreeBSD-src-78bb8e5fa2902f0e0d26781527fb5bcd4d13fb36.tar.gz |
Modify the ACL code slightly to support a few nifty things:
* Call it before sending probe responses, so the ACL code has the
chance to reject sending them.
* Pass the whole frame to the ACL code now, rather than just the
destination MAC - that way the ACL module can look at the frame
contents to determine what the response should be.
This is part of some uncommitted work to support band steering.
Sponsored by: Hobnob, Inc.
Diffstat (limited to 'sys/net80211/ieee80211_mesh.c')
-rw-r--r-- | sys/net80211/ieee80211_mesh.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_mesh.c b/sys/net80211/ieee80211_mesh.c index cfffd87..d6e992b 100644 --- a/sys/net80211/ieee80211_mesh.c +++ b/sys/net80211/ieee80211_mesh.c @@ -1120,7 +1120,8 @@ mesh_input(struct ieee80211_node *ni, struct mbuf *m, int rssi, int nf) * * NB: this check is also done upon peering link initiation. */ - if (vap->iv_acl != NULL && !vap->iv_acl->iac_check(vap, wh->i_addr2)) { + if (vap->iv_acl != NULL && + !vap->iv_acl->iac_check(vap, wh, wh->i_addr2)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, "%s", "disallowed by ACL"); vap->iv_stats.is_rx_acl++; @@ -1379,7 +1380,7 @@ mesh_recv_mgmt(struct ieee80211_node *ni, struct mbuf *m0, int subtype, * Peer only based on the current ACL policy. */ if (vap->iv_acl != NULL && - !vap->iv_acl->iac_check(vap, wh->i_addr2)) { + !vap->iv_acl->iac_check(vap, wh, wh->i_addr2)) { IEEE80211_DISCARD(vap, IEEE80211_MSG_ACL, wh, NULL, "%s", "disallowed by ACL"); vap->iv_stats.is_rx_acl++; |