diff options
author | Felix Fietkau <nbd@openwrt.org> | 2008-07-18 22:57:30 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2008-07-18 22:57:30 +0000 |
commit | 9dc4917da8a85552aa733b269c985cebb35f00c5 (patch) | |
tree | 1d7b62d9d6fc2d792c0fd53c7b3d886dd7635882 /package/madwifi/patches-testing/304-erp_update.patch | |
parent | 8aa31d7ce01f62e092d91499529e80db27775558 (diff) | |
download | upstream-9dc4917da8a85552aa733b269c985cebb35f00c5.tar.gz upstream-9dc4917da8a85552aa733b269c985cebb35f00c5.tar.bz2 upstream-9dc4917da8a85552aa733b269c985cebb35f00c5.zip |
rename patches-r3776 to patches-testing
SVN-Revision: 11868
Diffstat (limited to 'package/madwifi/patches-testing/304-erp_update.patch')
-rw-r--r-- | package/madwifi/patches-testing/304-erp_update.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/package/madwifi/patches-testing/304-erp_update.patch b/package/madwifi/patches-testing/304-erp_update.patch new file mode 100644 index 0000000000..be64b95371 --- /dev/null +++ b/package/madwifi/patches-testing/304-erp_update.patch @@ -0,0 +1,68 @@ +--- a/net80211/ieee80211_beacon.c ++++ b/net80211/ieee80211_beacon.c +@@ -544,10 +544,10 @@ + vap->iv_flags &= ~IEEE80211_F_XRUPDATE; + } + #endif +- if ((ic->ic_flags_ext & IEEE80211_FEXT_ERPUPDATE) && ++ 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 */ +--- a/net80211/ieee80211_input.c ++++ b/net80211/ieee80211_input.c +@@ -3384,9 +3384,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; ++ } + } + } + +--- a/net80211/ieee80211_node.c ++++ b/net80211/ieee80211_node.c +@@ -1741,8 +1741,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; + } +@@ -1945,6 +1949,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; +@@ -1956,7 +1962,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; ++ } + } + } + } |