Ticket #906: madwifi_monitor_direction_2.patch
| File madwifi_monitor_direction_2.patch, 1.2 kB (added by scottraynel@gmail.com, 6 years ago) |
|---|
-
net80211/ieee80211_monitor.c
old new 213 213 struct ieee80211vap *vap, *next; 214 214 int noise = 0; 215 215 u_int32_t rssi = 0; 216 u_int8_t pkttype = 0; 216 217 217 218 rssi = tx ? ds->ds_txstat.ts_rssi : ds->ds_rxstat.rs_rssi; 218 219 … … 227 228 struct ieee80211_frame *wh = (struct ieee80211_frame *)skb->data; 228 229 u_int8_t dir = wh->i_fc[1] & IEEE80211_FC1_DIR_MASK; 229 230 231 if (IEEE80211_IS_MULTICAST(wh->i_addr1)) { 232 if (memcmp(wh->i_addr1, dev->broadcast, ETH_ALEN) == 0) 233 pkttype = PACKET_BROADCAST; 234 else 235 pkttype = PACKET_MULTICAST; 236 } 237 else if (tx) 238 pkttype = PACKET_OUTGOING; 239 else 240 pkttype = PACKET_HOST; 241 242 230 243 next = TAILQ_NEXT(vap, iv_next); 231 244 if (vap->iv_opmode != IEEE80211_M_MONITOR || 232 245 vap->iv_state != IEEE80211_S_RUN) … … 426 439 skb1->dev = dev; /* NB: deliver to wlanX */ 427 440 skb1->mac.raw = skb1->data; 428 441 skb1->ip_summed = CHECKSUM_NONE; 429 skb1->pkt_type = PACKET_OTHERHOST;442 skb1->pkt_type = pkttype; 430 443 skb1->protocol = __constant_htons(0x0019); /* ETH_P_80211_RAW */ 431 444 432 445 netif_rx(skb1);
