--- ipw2200-1.1.3/ipw2200.c 2006-07-17 21:43:57.000000000 +0000 +++ ipw2200-1.1.3inject/ipw2200inject.c 2006-07-18 00:29:15.000000000 +0000 @@ -10645,9 +10645,19 @@ static int ipw_tx_skb(struct ipw_priv *priv, struct ieee80211_txb *txb, int pri) { + int i = 0; + int kk; +/* for (kk=0; kk<36; kk++) + printk("%02X ", txb->fragments[0]->data[kk]); + printk("\n"); +*/ + skb_pull(txb->fragments[0], 18+6+6); +/* for (kk=0; kk<36; kk++) + printk("%02X ", txb->fragments[0]->data[kk]); + printk("\n"); + */ struct ieee80211_hdr_3addrqos *hdr = (struct ieee80211_hdr_3addrqos *) txb->fragments[0]->data; - int i = 0; struct tfd_frame *tfd; #ifdef CONFIG_IPW2200_QOS int tx_id = ipw_get_tx_queue_number(priv, pri); @@ -10660,6 +10670,28 @@ u16 remaining_bytes; int fc; +// memset(hdr->addr1,0x80,18); + memset(hdr, 0x08,1); +/* memset(((void*)hdr)+1,0x00,1); + memset(((void*)hdr)+2,0x04,1); + memset(((void*)hdr)+3,0x04,1); + memset(((void*)hdr)+4,0x00,1); + memset(((void*)hdr)+5,0x0f,1); + */ +// printk("tx_skb\n"); +char * kkk=hdr; +for(i=4; i<0x40; i++) { +// kkk[i]=0xff; +} +/* for (kk=0; kk<36; kk++) + printk("%02X ", txb->fragments[0]->data[kk]); + printk("\n"); + + printk("WENT\n"); + */ + i=0; + + hdr_len = ieee80211_get_hdrlen(le16_to_cpu(hdr->frame_ctl)); switch (priv->ieee->iw_mode) { case IW_MODE_ADHOC: @@ -10711,7 +10743,7 @@ if (likely(unicast)) tfd->u.data.tx_flags |= DCT_FLAG_ACK_REQD; - if (txb->encrypted && !priv->ieee->host_encrypt) { + if (0 && txb->encrypted && !priv->ieee->host_encrypt) { switch (priv->ieee->sec.level) { case SEC_LEVEL_3: tfd->u.data.tfd.tfd_24.mchdr.frame_ctl |=