projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[package] ppp: use service_kill()
[openwrt.git]
/
package
/
madwifi
/
patches
/
370-wdsvap.patch
diff --git
a/package/madwifi/patches/370-wdsvap.patch
b/package/madwifi/patches/370-wdsvap.patch
index
488e7b2
..
e507afb
100644
(file)
--- a/
package/madwifi/patches/370-wdsvap.patch
+++ b/
package/madwifi/patches/370-wdsvap.patch
@@
-748,7
+748,7
@@
IEEE80211_NODE_STAT(ni, rx_data);
IEEE80211_NODE_STAT_ADD(ni, rx_bytes, skb->len);
ic->ic_lastdata = jiffies;
IEEE80211_NODE_STAT(ni, rx_data);
IEEE80211_NODE_STAT_ADD(ni, rx_bytes, skb->len);
ic->ic_lastdata = jiffies;
-@@ -1114,6 +1142,1
7
@@ ieee80211_deliver_data(struct ieee80211_
+@@ -1114,6 +1142,1
8
@@ ieee80211_deliver_data(struct ieee80211_
dev = vap->iv_xrvap->iv_dev;
#endif
dev = vap->iv_xrvap->iv_dev;
#endif
@@
-757,6
+757,7
@@
+ if (ni->ni_subif && ((eh)->ether_type != __constant_htons(ETHERTYPE_PAE))) {
+ if (ni->ni_vap == ni->ni_subif) {
+ ieee80211_dev_kfree_skb(&skb);
+ if (ni->ni_subif && ((eh)->ether_type != __constant_htons(ETHERTYPE_PAE))) {
+ if (ni->ni_vap == ni->ni_subif) {
+ ieee80211_dev_kfree_skb(&skb);
++ return;
+ } else {
+ vap = ni->ni_subif;
+ dev = vap->iv_dev;
+ } else {
+ vap = ni->ni_subif;
+ dev = vap->iv_dev;
@@
-766,7
+767,7
@@
/* perform as a bridge within the vap */
/* XXX intra-vap bridging only */
if (vap->iv_opmode == IEEE80211_M_HOSTAP &&
/* perform as a bridge within the vap */
/* XXX intra-vap bridging only */
if (vap->iv_opmode == IEEE80211_M_HOSTAP &&
-@@ -1139,7 +117
8
,16 @@ ieee80211_deliver_data(struct ieee80211_
+@@ -1139,7 +117
9
,16 @@ ieee80211_deliver_data(struct ieee80211_
if (ni1 != NULL) {
if (ni1->ni_vap == vap &&
ieee80211_node_is_authorized(ni1) &&
if (ni1 != NULL) {
if (ni1->ni_vap == vap &&
ieee80211_node_is_authorized(ni1) &&
@@
-783,7
+784,7
@@
skb1 = skb;
skb = NULL;
}
skb1 = skb;
skb = NULL;
}
-@@ -3084,8 +313
2
,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3084,8 +313
3
,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
(vap->iv_opmode == IEEE80211_M_STA && ni->ni_associd) ||
(vap->iv_opmode == IEEE80211_M_IBSS) ||
((subtype == IEEE80211_FC0_SUBTYPE_BEACON) &&
(vap->iv_opmode == IEEE80211_M_STA && ni->ni_associd) ||
(vap->iv_opmode == IEEE80211_M_IBSS) ||
((subtype == IEEE80211_FC0_SUBTYPE_BEACON) &&
@@
-793,7
+794,7
@@
vap->iv_stats.is_rx_mgtdiscard++;
return;
}
vap->iv_stats.is_rx_mgtdiscard++;
return;
}
-@@ -3471,13 +351
8,54
@@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3471,13 +351
9,56
@@ ieee80211_recv_mgmt(struct ieee80211vap
*/
if (ic->ic_flags & IEEE80211_F_SCAN) {
ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rtsf);
*/
if (ic->ic_flags & IEEE80211_F_SCAN) {
ieee80211_add_scan(vap, &scan, wh, subtype, rssi, rtsf);
@@
-821,13
+822,15
@@
+ if (!memcmp(avp->wds_mac, wh->i_addr2, IEEE80211_ADDR_LEN)) {
+ if (avp->iv_state != IEEE80211_S_RUN)
+ continue;
+ if (!memcmp(avp->wds_mac, wh->i_addr2, IEEE80211_ADDR_LEN)) {
+ if (avp->iv_state != IEEE80211_S_RUN)
+ continue;
++ if (!avp->iv_wdsnode)
++ continue;
+ found = 1;
+ break;
+ }
+ }
+ if (found)
+ ni = ni_or_null = avp->iv_wdsnode;
+ found = 1;
+ break;
+ }
+ }
+ if (found)
+ ni = ni_or_null = avp->iv_wdsnode;
-+ } else if (
vap->iv_opmode == IEEE80211_M_WDS
) {
++ } else if (
(vap->iv_opmode == IEEE80211_M_WDS) && vap->iv_wdsnode
) {
+ found = 1;
+ ni = ni_or_null = vap->iv_wdsnode;
+ }
+ found = 1;
+ ni = ni_or_null = vap->iv_wdsnode;
+ }
@@
-853,7
+856,7
@@
} else {
/*
* Copy data from beacon to neighbor table.
} else {
/*
* Copy data from beacon to neighbor table.
-@@ -3490,6 +35
78
,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
+@@ -3490,6 +35
81
,7 @@ ieee80211_recv_mgmt(struct ieee80211vap
IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
memcpy(ni->ni_tstamp.data, scan.tstamp,
sizeof(ni->ni_tstamp));
IEEE80211_ADDR_COPY(ni->ni_bssid, wh->i_addr3);
memcpy(ni->ni_tstamp.data, scan.tstamp,
sizeof(ni->ni_tstamp));
This page took
0.024303 seconds
and
4
git commands to generate.