--- aircrack.c.orig	2004-10-05 22:48:29.000000000 +0300
+++ aircrack.c	2004-10-05 23:05:12.000000000 +0300
@@ -53,6 +53,7 @@ char usage[] =
 "      -k <keyid> : WEP KeyID to crack (0-3, default: 0)\n"
 "      -n <nbyte> : WEP key length (5 / 13, default: 13)\n"
 "      -p <nfork> : SMP support: # of processes to start\n"
+"      -q <quiet> : quiet mode (less print, more speed)\n"
 "\n";
 
 /* command-line parameters */
@@ -61,6 +62,7 @@ int debug_lvl = 0;              /* # of 
 int bssid_set = 0;              /* BSSID check flag     */
 int keyid_set = 0;              /* KeyID check flag     */
 int stability = 0;              /* unstable attacks on  */
+int quietmode = 0;              /* quiet mode  */
 unsigned char debug[13];        /* user-defined wepkey  */
 unsigned char bssid[6];         /* user-defined BSSID   */
 int keyid  =  0;                /* WEP KeyID            */
@@ -302,6 +304,7 @@ void show_stats( int B )
     et_m = ( delta - et_h * 3600 ) / 60;
     et_s =   delta - et_h * 3600 - et_m * 60;
 
+   if(quietmode=1) {
     printf( "\33[2;%dH\33[1maircrack 1.4\33[0m\n\n",
             ( ws.ws_col - 12 ) / 2 ); 
 
@@ -311,14 +314,14 @@ void show_stats( int B )
     printf( "   * Elapsed time [%02d:%02d:%02d] | tried "
             "%ld keys at %ld k/m\n", et_h, et_m, et_s, tried,
             ( 60 * tried ) / delta );
-
-    printf( "\n   KB    depth   votes\n" );
+    }
+    if(quietmode>1) printf( "\n   KB    depth   votes\n" );
 
     for( i = 0; i <= B; i++ )
     {
         int j, k = ( ws.ws_col - 20 ) / 9;
 
-        printf( "   %2d  %3d/%3d   ",
+        if(quietmode>1) printf( "   %2d  %3d/%3d   ",
                 i, depth[i], fudge[i] );
 
         for( j = depth[i]; j < k + depth[i]; j++ )
@@ -326,19 +329,19 @@ void show_stats( int B )
             if( j >= 256 ) break;
 
             if( wpoll[i][j].votes == INFINITY )
-                printf( "%02X(+inf) ", wpoll[i][j].index );
+                { if(quietmode>2) printf( "%02X(+inf) ", wpoll[i][j].index ); }
             else
-                printf( "%02X(%4d) ",  wpoll[i][j].index,
-                                       wpoll[i][j].votes );
+                { if(quietmode>2) printf( "%02X(%4d) ",  wpoll[i][j].index,
+                                       wpoll[i][j].votes ); }
         }
 
-        printf( "\n" );
+        if(quietmode>1) printf( "\n" );
     }
 
     if( B < 11 )
-        printf( "\33[J" );
+        if(quietmode>1) printf( "\33[J" );
 
-    printf( "\n" );
+    if(quietmode>1) printf( "\n" );
 }
 
 /* each child performs the attacks over nb_ivs / nfork */
@@ -855,7 +858,7 @@ int main( int argc, char *argv[] )
 
     while( 1 )
     {
-        int option = getopt( argc, argv, "b:d:f:k:n:p:s:" );
+        int option = getopt( argc, argv, "b:d:f:k:n:p:s:q:" );
 
         if( option < 0 ) break;
 
@@ -960,6 +963,16 @@ int main( int argc, char *argv[] )
 
                 break;
 
+            case 'q':
+
+                if( sscanf( optarg, "%d", &quietmode ) != 1 )
+                    goto usage;
+
+                if( quietmode < 0 || quietmode > 3 )
+                    goto usage;
+
+                break;
+
             default : goto usage;
         }
     }
