Changeset 143 for trunk

Show
Ignore:
Timestamp:
05/07/07 00:20:31 (20 months ago)
Author:
jwright
Message:

Fixed bug in airpcap where failure to set TX rate returned an error - Error sending packet: IOCTL failed: 87; default TX rate for Airpcap is TX80211_RATE_2MB

Location:
trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/airpinject.c

    r114 r143  
    195195        rtaphdr->it_present = tx80211_le32(TX80211_RTAP_PRESENT); 
    196196        rtaphdr->wr_flags = 0; 
    197         rtaphdr->wr_rate = in_pkt->txrate; /* 0 is default */ 
     197 
     198        if (in_pkt->txrate == 0) { 
     199                /* Airpcap can't handle a rate of 0, set to 2 Mbps as default */ 
     200                rtaphdr->wr_rate = TX80211_RATE_2MB; 
     201        } else { 
     202                rtaphdr->wr_rate = in_pkt->txrate;  
     203        } 
     204 
    198205        rtaphdr->wr_chan_freq = tx80211_chan2mhz(channel); 
    199206 
  • trunk/tx.c

    r129 r143  
    121121        struct tx80211 in_tx; 
    122122        struct tx80211_packet in_packet; 
    123         int cnt = 1, delay = 0, ret = 0, c = 0, channel = 0; 
     123        int cnt = 1, delay = 0, ret = 0, c = 0, channel = 0, txcnt=0; 
    124124        int drivertype = INJ_NODRIVER; 
    125125        char iface[16 + 1]; 
     
    245245                } 
    246246 
     247                txcnt++; 
    247248                if (delay > 0) { 
    248249                        usleep(delay); 
     
    251252 
    252253        tx80211_close(&in_tx); 
     254        printf("%d packets transmitted.\n", txcnt); 
    253255        return 0; 
    254256} 
  • trunk/tx80211.c

    r140 r143  
    236236int tx80211_init(struct tx80211 *in_tx, const char *in_ifname, int in_injector) 
    237237{ 
     238        int ret = TX80211_ENOERR; 
     239 
    238240        /* Zero the struct entirely */ 
    239241        memset(in_tx, 0, sizeof(struct tx80211)); 
     
    246248#ifdef SYS_LINUX 
    247249        case INJ_WLANNG: 
    248                 tx80211_wlanng_init(in_tx); 
     250                ret = tx80211_wlanng_init(in_tx); 
    249251                break; 
    250252 
    251253        case INJ_AIRJACK: 
    252                 tx80211_airjack_init(in_tx); 
     254                ret = tx80211_airjack_init(in_tx); 
    253255                break; 
    254256 
    255257        case INJ_PRISM54: 
    256                 tx80211_prism54_init(in_tx); 
     258                ret = tx80211_prism54_init(in_tx); 
    257259                break; 
    258260 
    259261        case INJ_MADWIFIOLD: 
    260                 tx80211_madwifiold_init(in_tx); 
     262                ret = tx80211_madwifiold_init(in_tx); 
    261263                break; 
    262264 
    263265        case INJ_MADWIFING: 
    264                 tx80211_madwifing_init(in_tx); 
     266                ret = tx80211_madwifing_init(in_tx); 
    265267                break; 
    266268 
    267269        case INJ_HOSTAP: 
    268                 tx80211_hostap_init(in_tx); 
     270                ret = tx80211_hostap_init(in_tx); 
    269271                break; 
    270272 
    271273        case INJ_RT2500: 
    272                 tx80211_rt2500_init(in_tx); 
     274                ret = tx80211_rt2500_init(in_tx); 
    273275                break; 
    274276 
    275277        case INJ_RT2570: 
    276                 tx80211_rt2570_init(in_tx); 
     278                ret = tx80211_rt2570_init(in_tx); 
    277279                break; 
    278280 
    279281        case INJ_RT73: 
    280                 tx80211_rt73_init(in_tx); 
     282                ret = tx80211_rt73_init(in_tx); 
    281283                break; 
    282284 
    283285        case INJ_RTL8180: 
    284                 tx80211_rtl8180_init(in_tx); 
     286                ret = tx80211_rtl8180_init(in_tx); 
    285287                break; 
    286288 
    287289        case INJ_ZD1211RW: 
    288                 tx80211_zd1211rw_init(in_tx); 
     290                ret = tx80211_zd1211rw_init(in_tx); 
    289291                break; 
    290292#endif /* SYS_LINUX */ 
     
    292294#ifdef SYS_CYGWIN 
    293295        case INJ_AIRPCAP: 
    294                 tx80211_airpcap_init(in_tx); 
     296                ret = tx80211_airpcap_init(in_tx); 
    295297                break; 
    296298#endif /* SYS_CYGWIN */ 
     
    301303        } 
    302304 
    303         return TX80211_ENOERR; 
     305        return ret; 
    304306} 
    305307