Browse Source

Fixed problem with not being able to decrypt/encrypt broadcast packets.

Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Hong Liu 19 years ago
parent
commit
5b74eda78d
2 changed files with 4 additions and 2 deletions
  1. 2 1
      net/ieee80211/ieee80211_rx.c
  2. 2 1
      net/ieee80211/ieee80211_tx.c

+ 2 - 1
net/ieee80211/ieee80211_rx.c

@@ -409,7 +409,8 @@ int ieee80211_rx(struct ieee80211_device *ieee, struct sk_buff *skb,
 		return 1;
 	}
 
-	if (is_multicast_ether_addr(hdr->addr1) ? ieee->host_mc_decrypt :
+	if ((is_multicast_ether_addr(hdr->addr1) ||
+	     is_broadcast_ether_addr(hdr->addr2)) ? ieee->host_mc_decrypt :
 	    ieee->host_decrypt) {
 		int idx = 0;
 		if (skb->len >= hdrlen + 3)

+ 2 - 1
net/ieee80211/ieee80211_tx.c

@@ -338,7 +338,8 @@ int ieee80211_xmit(struct sk_buff *skb, struct net_device *dev)
 	if (host_encrypt || ieee->host_open_frag) {
 		/* Determine fragmentation size based on destination (multicast
 		 * and broadcast are not fragmented) */
-		if (is_multicast_ether_addr(dest))
+		if (is_multicast_ether_addr(dest) ||
+		    is_broadcast_ether_addr(dest))
 			frag_size = MAX_FRAG_THRESHOLD;
 		else
 			frag_size = ieee->fts;