Author: sam
Date: Fri Jul 24 15:31:22 2009
New Revision: 195848
URL: http://svn.freebsd.org/changeset/base/195848

Log:
  Update for vaps:
  o do not force monitor mode; the wlanX ifnet must be an ahdemo mode vap
  o move channel change work before marking ifnet up to avoid churning
    the state machine
  o change default ifnet name to "wlan0"
  
  Approved by:  re (kensmith)

Modified:
  head/tools/tools/net80211/stumbler/stumbler.c
  head/tools/tools/net80211/w00t/README
  head/tools/tools/net80211/w00t/ap/ap.c
  head/tools/tools/net80211/w00t/assoc/assoc.c
  head/tools/tools/net80211/w00t/expand/expand.c
  head/tools/tools/net80211/w00t/prga/prga.c
  head/tools/tools/net80211/w00t/redir/redir.c
  head/tools/tools/net80211/wesside/wesside/wesside.c
  head/tools/tools/net80211/wlaninject/wlaninject.c

Modified: head/tools/tools/net80211/stumbler/stumbler.c
==============================================================================
--- head/tools/tools/net80211/stumbler/stumbler.c       Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/stumbler/stumbler.c       Fri Jul 24 15:31:22 
2009        (r195848)
@@ -275,9 +275,14 @@ void set_chan(int c) {
 void setup_if(char *dev) {
         struct ifreq ifr;
         unsigned int flags;
-        struct ifmediareq ifmr;
-        int *mwords;
-        
+
+        // set chan
+        memset(&chaninfo.ireq, 0, sizeof(chaninfo.ireq));
+        strcpy(chaninfo.ireq.i_name, dev);
+        chaninfo.ireq.i_type = IEEE80211_IOC_CHANNEL;
+
+        set_chan(1);
+
         // set iface up and promisc
         memset(&ifr, 0, sizeof(ifr));
         strcpy(ifr.ifr_name, dev);
@@ -293,39 +298,6 @@ void setup_if(char *dev) {
         ifr.ifr_flagshigh = flags >> 16;
         if (ioctl(ioctl_s, SIOCSIFFLAGS, &ifr) == -1)
                 die(1, "ioctl(SIOCSIFFLAGS)");
-
-        // set monitor mode
-        memset(&ifmr, 0, sizeof(ifmr));
-        strcpy(ifmr.ifm_name, dev);
-        if (ioctl(ioctl_s, SIOCGIFMEDIA, &ifmr) == -1)
-                die(1, "ioctl(SIOCGIFMEDIA)");
-
-        if (ifmr.ifm_count == 0) 
-                die(0, "0 media thinggies...\n");
-
-        mwords = (int *)malloc(ifmr.ifm_count * sizeof(int));
-        if (!mwords)
-                die(1, "malloc()");
-
-        ifmr.ifm_ulist = mwords;
-
-        if (ioctl(ioctl_s, SIOCGIFMEDIA, &ifmr) == -1)
-                die(1, "ioctl(SIOCGIFMEDIA)");
-        
-       free(mwords);
-
-        memset(&ifr, 0, sizeof(ifr));
-        strcpy(ifr.ifr_name, dev);
-        ifr.ifr_media = ifmr.ifm_current | IFM_IEEE80211_MONITOR;
-        if (ioctl(ioctl_s, SIOCSIFMEDIA, &ifr) == -1)
-                die(1, "ioctl(SIOCSIFMEDIA)");
-
-        // set chan
-        memset(&chaninfo.ireq, 0, sizeof(chaninfo.ireq));
-        strcpy(chaninfo.ireq.i_name, dev);
-        chaninfo.ireq.i_type = IEEE80211_IOC_CHANNEL;
-
-        set_chan(1);
 }
 
 void open_bpf(char *dev, int dlt) {

Modified: head/tools/tools/net80211/w00t/README
==============================================================================
--- head/tools/tools/net80211/w00t/README       Fri Jul 24 15:28:29 2009        
(r195847)
+++ head/tools/tools/net80211/w00t/README       Fri Jul 24 15:31:22 2009        
(r195848)
@@ -4,7 +4,7 @@ This is a collection of tools that use r
 None of the tools configure the interface, so be sure to run something
 like:
 
-ifconfig ath0 channel 7 mediaopt monitor promisc up
+ifconfig wlan create wlandev ath0 wlanmode ahdemo channel 7 promisc up
 
 beforehand.  The following tools are found here:
 

Modified: head/tools/tools/net80211/w00t/ap/ap.c
==============================================================================
--- head/tools/tools/net80211/w00t/ap/ap.c      Fri Jul 24 15:28:29 2009        
(r195847)
+++ head/tools/tools/net80211/w00t/ap/ap.c      Fri Jul 24 15:31:22 2009        
(r195848)
@@ -846,7 +846,7 @@ void next_event(struct params *p)
 
 int main(int argc, char *argv[])
 {
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *tap = "tap0";
        struct params p;
        int ch;

Modified: head/tools/tools/net80211/w00t/assoc/assoc.c
==============================================================================
--- head/tools/tools/net80211/w00t/assoc/assoc.c        Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/w00t/assoc/assoc.c        Fri Jul 24 15:31:22 
2009        (r195848)
@@ -710,7 +710,7 @@ int main(int argc, char *argv[])
        char mac[] = { 0x00, 0x00, 0xde, 0xfa, 0xce, 0xd };
        int ch;
        struct params p;
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *tap = "tap0";
        int timeout = 50*1000;
        struct timeval start;

Modified: head/tools/tools/net80211/w00t/expand/expand.c
==============================================================================
--- head/tools/tools/net80211/w00t/expand/expand.c      Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/w00t/expand/expand.c      Fri Jul 24 15:31:22 
2009        (r195848)
@@ -421,7 +421,7 @@ void usage(char *name)
 int main(int argc, char *argv[])
 {
        struct params p;
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *tap = "tap0";
        int ch;
 

Modified: head/tools/tools/net80211/w00t/prga/prga.c
==============================================================================
--- head/tools/tools/net80211/w00t/prga/prga.c  Fri Jul 24 15:28:29 2009        
(r195847)
+++ head/tools/tools/net80211/w00t/prga/prga.c  Fri Jul 24 15:31:22 2009        
(r195848)
@@ -602,7 +602,7 @@ void transmit(struct params *p)
 int main(int argc, char *argv[])
 {
        struct params p;
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *tap = "tap0";
        int ch;
 

Modified: head/tools/tools/net80211/w00t/redir/redir.c
==============================================================================
--- head/tools/tools/net80211/w00t/redir/redir.c        Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/w00t/redir/redir.c        Fri Jul 24 15:31:22 
2009        (r195848)
@@ -631,7 +631,7 @@ void usage(char *name)
 int main(int argc, char *argv[])
 {
        struct params p;
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *tap = "tap0";
        int ch;
 

Modified: head/tools/tools/net80211/wesside/wesside/wesside.c
==============================================================================
--- head/tools/tools/net80211/wesside/wesside/wesside.c Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/wesside/wesside/wesside.c Fri Jul 24 15:31:22 
2009        (r195848)
@@ -384,6 +384,15 @@ void setup_if(char *dev) {
                exit(1);
        }
 
+       // set chan
+       memset(&chaninfo.ireq, 0, sizeof(chaninfo.ireq));
+       strcpy(chaninfo.ireq.i_name, dev);
+       chaninfo.ireq.i_type = IEEE80211_IOC_CHANNEL;
+       
+       chaninfo.chan = 0;
+       chaninfo.s = s;
+       set_chan(1);
+
        // set iface up and promisc
        memset(&ifr, 0, sizeof(ifr));
        strcpy(ifr.ifr_name, dev);
@@ -404,49 +413,6 @@ void setup_if(char *dev) {
                exit(1);
        }
 
-       // set monitor mode
-       memset(&ifmr, 0, sizeof(ifmr));
-       strcpy(ifmr.ifm_name, dev);
-       if (ioctl(s, SIOCGIFMEDIA, &ifmr) == -1) {
-               perror("ioctl(SIOCGIFMEDIA)");
-               exit(1);
-       }
-
-       if (ifmr.ifm_count == 0) {
-               time_print("0 media thinggies...\n");
-               exit(1);
-       }
-
-       mwords = (int *)malloc(ifmr.ifm_count * sizeof(int));
-       if (!mwords) {
-               perror("malloc()");
-               exit(1);
-       }
-       ifmr.ifm_ulist = mwords;
-       
-       if (ioctl(s, SIOCGIFMEDIA, &ifmr) == -1) {
-               perror("ioctl(SIOCGIFMEDIA)");
-               exit(1);
-       }
-       free(mwords);
-
-       memset(&ifr, 0, sizeof(ifr));
-       strcpy(ifr.ifr_name, dev);
-       ifr.ifr_media = ifmr.ifm_current | IFM_IEEE80211_MONITOR;
-       if (ioctl(s, SIOCSIFMEDIA, &ifr) == -1) {
-               perror("ioctl(SIOCSIFMEDIA)");
-               exit(1);
-       }
-
-       // set chan
-       memset(&chaninfo.ireq, 0, sizeof(chaninfo.ireq));
-       strcpy(chaninfo.ireq.i_name, dev);
-       chaninfo.ireq.i_type = IEEE80211_IOC_CHANNEL;
-       
-       chaninfo.chan = 0;
-       chaninfo.s = s;
-       set_chan(1);
-
        printf("done\n");
 }
 

Modified: head/tools/tools/net80211/wlaninject/wlaninject.c
==============================================================================
--- head/tools/tools/net80211/wlaninject/wlaninject.c   Fri Jul 24 15:28:29 
2009        (r195847)
+++ head/tools/tools/net80211/wlaninject/wlaninject.c   Fri Jul 24 15:31:22 
2009        (r195848)
@@ -58,6 +58,14 @@ void setup_if(char *dev, int chan) {
        if ((s = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
                err(1, "socket()");
 
+       /* chan */
+       memset(&ireq, 0, sizeof(ireq));
+       snprintf(ireq.i_name, sizeof(ireq.i_name), "%s", dev);
+       ireq.i_type = IEEE80211_IOC_CHANNEL;
+       ireq.i_val = chan;
+       if (ioctl(s, SIOCS80211, &ireq) == -1)
+               err(1, "ioctl(SIOCS80211)");
+
        /* UP & PROMISC */
        memset(&ifr, 0, sizeof(ifr));
        snprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s", dev);
@@ -70,34 +78,6 @@ void setup_if(char *dev, int chan) {
        if (ioctl(s, SIOCSIFFLAGS, &ifr) == -1)
                err(1, "ioctl(SIOCSIFFLAGS)");
 
-       /* set monitor mode */
-       memset(&ifmr, 0, sizeof(ifmr));
-       snprintf(ifmr.ifm_name, sizeof(ifmr.ifm_name), "%s", dev);
-       if (ioctl(s, SIOCGIFMEDIA, &ifmr) == -1)
-               err(1, "ioctl(SIOCGIFMEDIA)");
-       if (ifmr.ifm_count == 0) {
-               printf("0 media thinggies...\n");
-               exit(1);
-       }
-       mwords = (int *)malloc(ifmr.ifm_count * sizeof(int));
-       if (!mwords)
-               err(1, "malloc()");
-       ifmr.ifm_ulist = mwords;
-       if (ioctl(s, SIOCGIFMEDIA, &ifmr) == -1)
-               err(1, "ioctl(SIOCGIFMEDIA)");
-       free(mwords);
-       ifr.ifr_media = ifmr.ifm_current | IFM_IEEE80211_MONITOR;
-       if (ioctl(s, SIOCSIFMEDIA, &ifr) == -1)
-               err(1, "ioctl(SIOCSIFMEDIA)");
-
-       /* chan */
-       memset(&ireq, 0, sizeof(ireq));
-       snprintf(ireq.i_name, sizeof(ireq.i_name), "%s", dev);
-       ireq.i_type = IEEE80211_IOC_CHANNEL;
-       ireq.i_val = chan;
-       if (ioctl(s, SIOCS80211, &ireq) == -1)
-               err(1, "ioctl(SIOCS80211)");
-
        close(s);
 }
 
@@ -546,7 +526,7 @@ int do_verify(struct ieee80211_frame *se
 int main(int argc, char *argv[])
 {
        int fd, fd2;
-       char *iface = "ath0";
+       char *iface = "wlan0";
        char *verify = NULL;
        int chan = 1;
        struct {
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to