svn commit: r195047 - projects/mesh11s/sys/net80211
Rui Paulo
rpaulo at FreeBSD.org
Fri Jun 26 11:04:44 UTC 2009
Author: rpaulo
Date: Fri Jun 26 11:04:43 2009
New Revision: 195047
URL: http://svn.freebsd.org/changeset/base/195047
Log:
Fixed a bug caused by incorrect parsion of peer link action frames.
Sponsored by: The FreeBSD Foundation
Modified:
projects/mesh11s/sys/net80211/ieee80211_mesh.c
Modified: projects/mesh11s/sys/net80211/ieee80211_mesh.c
==============================================================================
--- projects/mesh11s/sys/net80211/ieee80211_mesh.c Fri Jun 26 10:23:17 2009 (r195046)
+++ projects/mesh11s/sys/net80211/ieee80211_mesh.c Fri Jun 26 11:04:43 2009 (r195047)
@@ -873,10 +873,19 @@ mesh_recv_action(struct ieee80211_node *
meshpeer = (struct ieee80211_meshpeer_ie *) frm;
meshpeer->peer_llinkid =
LE_READ_2(&meshpeer->peer_llinkid);
- meshpeer->peer_linkid =
- LE_READ_2(&meshpeer->peer_linkid);
- meshpeer->peer_rcode =
- LE_READ_2(&meshpeer->peer_rcode);
+ /* NB: peer link ID is opt on these frames */
+ if (meshpeer->peer_subtype ==
+ IEEE80211_MESH_PEER_LINK_CLOSE &&
+ meshpeer->peer_len == 5) {
+ meshpeer->peer_rcode =
+ LE_READ_2(&meshpeer->peer_linkid);
+ meshpeer->peer_linkid = 0;
+ } else {
+ meshpeer->peer_linkid =
+ LE_READ_2(&meshpeer->peer_linkid);
+ meshpeer->peer_rcode =
+ LE_READ_2(&meshpeer->peer_rcode);
+ }
break;
}
frm += frm[1] + 2;
More information about the svn-src-projects
mailing list