Ticket #1940: 4address_sta.diff
| File 4address_sta.diff, 1.1 kB (added by anonymous, 3 months ago) |
|---|
-
net80211/ieee80211_input.c
old new 210 210 int hdrspace; 211 211 u_int8_t dir, type = -1, subtype; 212 212 u_int8_t *bssid; 213 u_int8_t *receiver; 213 214 u_int16_t rxseq; 214 215 215 216 if ((vap->iv_dev->flags & (IFF_RUNNING | IFF_UP)) != … … 449 450 vap->iv_stats.is_rx_wrongdir++; 450 451 goto out; 451 452 } 452 453 if ((vap->iv_flags_ext & IEEE80211_FEXT_WDS) && 454 (dir == IEEE80211_FC1_DIR_DSTODS)) { 455 receiver = wh->i_addr1; 456 if (!IEEE80211_ADDR_EQ(receiver, vap->iv_myaddr)) { 457 /* WDS, but not for us to forward */ 458 IEEE80211_DISCARD_MAC(vap, 459 IEEE80211_MSG_INPUT, 460 receiver, NULL, "%s", 461 "WDS but not to us"); 462 vap->iv_stats.is_rx_wrongbss++; 463 goto out; 464 } 465 } 466 453 467 if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { 454 468 /* Discard multicast if IFF_MULTICAST not set */ 455 469 if ((0 != memcmp(wh->i_addr3, dev->broadcast, ETH_ALEN)) &&
