mirror of https://github.com/hak5/openwrt-owl.git
parent
1fb5433154
commit
929767622f
|
@ -0,0 +1,73 @@
|
||||||
|
Index: madwifi-dfs-r3053/net80211/ieee80211_beacon.c
|
||||||
|
===================================================================
|
||||||
|
--- madwifi-dfs-r3053.orig/net80211/ieee80211_beacon.c 2008-01-10 10:51:31.406580318 +0100
|
||||||
|
+++ madwifi-dfs-r3053/net80211/ieee80211_beacon.c 2008-01-10 10:56:54.040966203 +0100
|
||||||
|
@@ -538,9 +538,9 @@
|
||||||
|
vap->iv_flags &= ~IEEE80211_F_XRUPDATE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
- if ((ic->ic_flags_ext & IEEE80211_FEXT_ERPUPDATE) && (bo->bo_erp != NULL)) {
|
||||||
|
+ if ((vap->iv_flags_ext & IEEE80211_FEXT_ERPUPDATE) && (bo->bo_erp != NULL)) {
|
||||||
|
(void) ieee80211_add_erp(bo->bo_erp, ic);
|
||||||
|
- ic->ic_flags_ext &= ~IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ vap->iv_flags_ext &= ~IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* if it is a mode change beacon for dynamic turbo case */
|
||||||
|
Index: madwifi-dfs-r3053/net80211/ieee80211_input.c
|
||||||
|
===================================================================
|
||||||
|
--- madwifi-dfs-r3053.orig/net80211/ieee80211_input.c 2008-01-10 10:51:31.558588981 +0100
|
||||||
|
+++ madwifi-dfs-r3053/net80211/ieee80211_input.c 2008-01-10 10:55:51.565405916 +0100
|
||||||
|
@@ -3315,9 +3315,12 @@
|
||||||
|
/* Assume no ERP IE == 11b AP */
|
||||||
|
if ((!has_erp || (has_erp && (scan.erp & IEEE80211_ERP_NON_ERP_PRESENT))) &&
|
||||||
|
!(ic->ic_flags & IEEE80211_F_USEPROT)) {
|
||||||
|
+ struct ieee80211vap *tmpvap;
|
||||||
|
|
||||||
|
ic->ic_flags |= IEEE80211_F_USEPROT;
|
||||||
|
- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
|
||||||
|
+ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: madwifi-dfs-r3053/net80211/ieee80211_node.c
|
||||||
|
===================================================================
|
||||||
|
--- madwifi-dfs-r3053.orig/net80211/ieee80211_node.c 2008-01-10 10:51:31.622592626 +0100
|
||||||
|
+++ madwifi-dfs-r3053/net80211/ieee80211_node.c 2008-01-10 10:54:58.398376106 +0100
|
||||||
|
@@ -1998,8 +1998,12 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update ERP element if this is first non ERP station */
|
||||||
|
- if (ic->ic_nonerpsta == 1)
|
||||||
|
- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ if (ic->ic_nonerpsta == 1) {
|
||||||
|
+ struct ieee80211vap *tmpvap;
|
||||||
|
+ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
|
||||||
|
+ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
} else
|
||||||
|
ni->ni_flags |= IEEE80211_NODE_ERP;
|
||||||
|
}
|
||||||
|
@@ -2202,6 +2206,8 @@
|
||||||
|
IEEE80211_NOTE(vap, IEEE80211_MSG_ASSOC, ni,
|
||||||
|
"non-ERP station leaves, count now %d", ic->ic_nonerpsta);
|
||||||
|
if (ic->ic_nonerpsta == 0) {
|
||||||
|
+ struct ieee80211vap *tmpvap;
|
||||||
|
+
|
||||||
|
IEEE80211_DPRINTF(vap, IEEE80211_MSG_ASSOC,
|
||||||
|
"%s: disable use of protection\n", __func__);
|
||||||
|
ic->ic_flags &= ~IEEE80211_F_USEPROT;
|
||||||
|
@@ -2213,7 +2219,9 @@
|
||||||
|
ic->ic_flags |= IEEE80211_F_SHPREAMBLE;
|
||||||
|
ic->ic_flags &= ~IEEE80211_F_USEBARKER;
|
||||||
|
}
|
||||||
|
- ic->ic_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ TAILQ_FOREACH(tmpvap, &ic->ic_vaps, iv_next) {
|
||||||
|
+ tmpvap->iv_flags_ext |= IEEE80211_FEXT_ERPUPDATE;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
Index: madwifi-dfs-r3053/net80211/ieee80211_output.c
|
||||||
|
===================================================================
|
||||||
|
--- madwifi-dfs-r3053.orig/net80211/ieee80211_output.c 2008-01-10 15:40:39.777239675 +0100
|
||||||
|
+++ madwifi-dfs-r3053/net80211/ieee80211_output.c 2008-01-10 15:41:05.214689275 +0100
|
||||||
|
@@ -1297,7 +1297,7 @@
|
||||||
|
erp |= IEEE80211_ERP_NON_ERP_PRESENT;
|
||||||
|
if (ic->ic_flags & IEEE80211_F_USEPROT)
|
||||||
|
erp |= IEEE80211_ERP_USE_PROTECTION;
|
||||||
|
- if (ic->ic_flags & IEEE80211_F_USEBARKER)
|
||||||
|
+ if ((ic->ic_flags & IEEE80211_F_USEBARKER) || (ic->ic_nonerpsta > 0))
|
||||||
|
erp |= IEEE80211_ERP_LONG_PREAMBLE;
|
||||||
|
*frm++ = erp;
|
||||||
|
return frm;
|
|
@ -0,0 +1,15 @@
|
||||||
|
Index: madwifi-dfs-r3252/net80211/ieee80211_input.c
|
||||||
|
===================================================================
|
||||||
|
--- madwifi-dfs-r3252.orig/net80211/ieee80211_input.c 2008-01-26 00:03:20.203760157 +0100
|
||||||
|
+++ madwifi-dfs-r3252/net80211/ieee80211_input.c 2008-01-26 00:08:08.773799701 +0100
|
||||||
|
@@ -1133,8 +1133,8 @@
|
||||||
|
|
||||||
|
if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
|
||||||
|
skb1 = skb_copy(skb, GFP_ATOMIC);
|
||||||
|
- /* We duplicate the reference after skb_copy */
|
||||||
|
- ieee80211_skb_copy_noderef(skb, skb1);
|
||||||
|
+ /* Use the BSS node for retransmitting this multicast frame */
|
||||||
|
+ SKB_CB(skb1)->ni = ieee80211_ref_node(vap->iv_bss);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
/*
|
Loading…
Reference in New Issue