Fixed is_network_packet() to include checking for broadcast packets.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
This commit is contained in:
Peter Jones 2005-08-26 16:51:06 -05:00 committed by James Ketrenos
parent 24a47dbd89
commit 90700fd982
1 changed files with 7 additions and 5 deletions

View File

@ -8096,21 +8096,23 @@ static inline int is_network_packet(struct ipw_priv *priv,
if (!memcmp(header->addr2, priv->net_dev->dev_addr, ETH_ALEN))
return 0;
/* multicast packets to our IBSS go through */
if (is_multicast_ether_addr(header->addr1))
/* {broad,multi}cast packets to our BSSID go through */
if (is_multicast_ether_addr(header->addr1) ||
is_broadcast_ether_addr(header->addr1))
return !memcmp(header->addr3, priv->bssid, ETH_ALEN);
/* packets to our adapter go through */
return !memcmp(header->addr1, priv->net_dev->dev_addr,
ETH_ALEN);
case IW_MODE_INFRA: /* Header: Dest. | AP{BSSID} | Source */
case IW_MODE_INFRA: /* Header: Dest. | BSSID | Source */
/* packets from our adapter are dropped (echo) */
if (!memcmp(header->addr3, priv->net_dev->dev_addr, ETH_ALEN))
return 0;
/* {broad,multi}cast packets to our IBSS go through */
if (is_multicast_ether_addr(header->addr1))
/* {broad,multi}cast packets to our BSS go through */
if (is_multicast_ether_addr(header->addr1) ||
is_broadcast_ether_addr(header->addr1))
return !memcmp(header->addr2, priv->bssid, ETH_ALEN);
/* packets to our adapter go through */