[kismac] [binaervarianz] r233 - in trunk: KisMAC.xcodeproj Resources/Nibs/English.lproj/PrefsAdvanced.nib Resources/Nibs/English.lproj/PrefsDriver.nib Sources/Core Sources/Preferences/PreferencePanes Sources/WaveDrivers

  • From: svn@xxxxxxxxxxxxxxxx
  • To: kismac@xxxxxxxxxxxxx
  • Date: Tue, 24 Apr 2007 06:45:38 +0200

Author: themacuser
Date: 2007-04-24 06:45:15 +0200 (Tue, 24 Apr 2007)
New Revision: 233

Modified:
   trunk/KisMAC.xcodeproj/project.pbxproj
   trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
   trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
   trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/objects.nib
   trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
   trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib
   trunk/Sources/Core/WaveScanner.mm
   trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h
   trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m
   trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h
   trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m
   trunk/Sources/WaveDrivers/WaveDriver.h
   trunk/Sources/WaveDrivers/WaveDriver.m
   trunk/Sources/WaveDrivers/WaveDriverKismet.h
   trunk/Sources/WaveDrivers/WaveDriverKismet.m
Log:
Improvements to WaveDriverKismet (now connects on start scan, and disconnects 
on stop scan) and a new driver - WaveDriverKismetDrone (you can use a kismet 
drone directly, without a kismet server).

Modified: trunk/KisMAC.xcodeproj/project.pbxproj
===================================================================
--- trunk/KisMAC.xcodeproj/project.pbxproj      2007-04-22 05:32:46 UTC (rev 
232)
+++ trunk/KisMAC.xcodeproj/project.pbxproj      2007-04-24 04:45:15 UTC (rev 
233)
@@ -483,6 +483,10 @@
                6CDAFD030AC4FA7D00A5D180 /* KismetXMLImporter.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 6CDAFD010AC4FA7D00A5D180 /* KismetXMLImporter.m 
*/; };
                6CF9EE6E0B6E9D2A00F54524 /* WaveDriverKismet.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 6CF9EE6C0B6E9D2A00F54524 /* WaveDriverKismet.h 
*/; };
                6CF9EE6F0B6E9D2A00F54524 /* WaveDriverKismet.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 6CF9EE6D0B6E9D2A00F54524 /* WaveDriverKismet.m 
*/; };
+               87B513670BD4ED2300DC8861 /* DriverPrefsView.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 87B513650BD4ED2300DC8861 /* DriverPrefsView.h 
*/; };
+               87B513680BD4ED2300DC8861 /* DriverPrefsView.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 87B513660BD4ED2300DC8861 /* DriverPrefsView.m 
*/; };
+               87C9272A0BAA137E0025A6AE /* WaveDriverKismetDrone.h in Headers 
*/ = {isa = PBXBuildFile; fileRef = 87C927280BAA137D0025A6AE /* 
WaveDriverKismetDrone.h */; };
+               87C9272B0BAA137E0025A6AE /* WaveDriverKismetDrone.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = 87C927290BAA137E0025A6AE /* 
WaveDriverKismetDrone.m */; };
                87CEBA8209AEF03700AEB0B8 /* GrowlController.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 87CEBA8009AEF03700AEB0B8 /* GrowlController.h 
*/; };
                87CEBA8309AEF03700AEB0B8 /* GrowlController.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 87CEBA8109AEF03700AEB0B8 /* GrowlController.m 
*/; };
                8D1107280486CEB800E47090 /* KisMAC_Prefix.pch in Headers */ = 
{isa = PBXBuildFile; fileRef = 32CA4F630368D1EE00C91783 /* KisMAC_Prefix.pch 
*/; };
@@ -839,6 +843,10 @@
                6CDAFD010AC4FA7D00A5D180 /* KismetXMLImporter.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= KismetXMLImporter.m; sourceTree = "<group>"; };
                6CF9EE6C0B6E9D2A00F54524 /* WaveDriverKismet.h */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = 
WaveDriverKismet.h; sourceTree = "<group>"; };
                6CF9EE6D0B6E9D2A00F54524 /* WaveDriverKismet.m */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; 
path = WaveDriverKismet.m; sourceTree = "<group>"; };
+               87B513650BD4ED2300DC8861 /* DriverPrefsView.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
DriverPrefsView.h; sourceTree = "<group>"; };
+               87B513660BD4ED2300DC8861 /* DriverPrefsView.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= DriverPrefsView.m; sourceTree = "<group>"; };
+               87C927280BAA137D0025A6AE /* WaveDriverKismetDrone.h */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = 
WaveDriverKismetDrone.h; sourceTree = "<group>"; };
+               87C927290BAA137E0025A6AE /* WaveDriverKismetDrone.m */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; 
path = WaveDriverKismetDrone.m; sourceTree = "<group>"; };
                87CEBA8009AEF03700AEB0B8 /* GrowlController.h */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = 
GrowlController.h; sourceTree = "<group>"; };
                87CEBA8109AEF03700AEB0B8 /* GrowlController.m */ = {isa = 
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; 
path = GrowlController.m; sourceTree = "<group>"; };
                8D1107320486CEB800E47090 /* KisMAC.app */ = {isa = 
PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; 
path = KisMAC.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -1154,6 +1162,8 @@
                003533DB06A5DD8500AB4577 /* PreferencePanes */ = {
                        isa = PBXGroup;
                        children = (
+                               87B513650BD4ED2300DC8861 /* DriverPrefsView.h 
*/,
+                               87B513660BD4ED2300DC8861 /* DriverPrefsView.m 
*/,
                                6C1D31BE09F37BC70005A9F8 /* PrefsAdvanced.h */,
                                6C1D31BF09F37BC70005A9F8 /* PrefsAdvanced.m */,
                                003533DC06A5DD8500AB4577 /* PrefsClient.h */,
@@ -1249,6 +1259,8 @@
                                0035341406A5DD8500AB4577 /* WaveDriverAirport.m 
*/,
                                00DF456108B1E969003F3C7E /* 
WaveDriverAirportExtreme.h */,
                                00DF456208B1E969003F3C7E /* 
WaveDriverAirportExtreme.m */,
+                               87C927280BAA137D0025A6AE /* 
WaveDriverKismetDrone.h */,
+                               87C927290BAA137E0025A6AE /* 
WaveDriverKismetDrone.m */,
                                0035341506A5DD8500AB4577 /* WaveDriverAtheros.h 
*/,
                                0035341606A5DD8500AB4577 /* WaveDriverAtheros.m 
*/,
                                0035341706A5DD8500AB4577 /* WaveDriverMacJack.h 
*/,
@@ -1674,6 +1686,8 @@
                                6CDAFD020AC4FA7D00A5D180 /* KismetXMLImporter.h 
in Headers */,
                                6C94AA2F0ADF3FBC001BE161 /* GPSSatInfo.h in 
Headers */,
                                6CF9EE6E0B6E9D2A00F54524 /* WaveDriverKismet.h 
in Headers */,
+                               87C9272A0BAA137E0025A6AE /* 
WaveDriverKismetDrone.h in Headers */,
+                               87B513670BD4ED2300DC8861 /* DriverPrefsView.h 
in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
@@ -2069,6 +2083,8 @@
                                6CDAFD030AC4FA7D00A5D180 /* KismetXMLImporter.m 
in Sources */,
                                6C94AA300ADF3FBC001BE161 /* GPSSatInfo.m in 
Sources */,
                                6CF9EE6F0B6E9D2A00F54524 /* WaveDriverKismet.m 
in Sources */,
+                               87C9272B0BAA137E0025A6AE /* 
WaveDriverKismetDrone.m in Sources */,
+                               87B513680BD4ED2300DC8861 /* DriverPrefsView.m 
in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };

Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib    
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/classes.nib    
2007-04-24 04:45:15 UTC (rev 233)
@@ -13,6 +13,7 @@
                 kismetserverip = id; 
                 kismetserverport = id; 
                 "pr_interval" = id; 
+                "show_debugmenu" = id; 
             }; 
             SUPERCLASS = PrefsClient; 
         }, 

Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib       
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/info.nib       
2007-04-24 04:45:15 UTC (rev 233)
@@ -7,7 +7,7 @@
        <key>IBEditorPositions</key>
        <dict>
                <key>109</key>
-               <string>83 159 501 569 0 0 1024 746 </string>
+               <string>165 185 501 529 0 0 1024 746 </string>
        </dict>
        <key>IBFramework Version</key>
        <string>446.1</string>
@@ -16,6 +16,6 @@
                <integer>109</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>8L127</string>
+       <string>8P135</string>
 </dict>
 </plist>

Modified: trunk/Resources/Nibs/English.lproj/PrefsAdvanced.nib/objects.nib
===================================================================
(Binary files differ)

Modified: trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib      
2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/classes.nib      
2007-04-24 04:45:15 UTC (rev 233)
@@ -20,6 +20,7 @@
                 enableAEForever = id; 
                 selAddDriver = id; 
                 selAll = id; 
+                selConfigure = id; 
                 selNone = id; 
                 selRemoveDriver = id; 
             }; 
@@ -27,15 +28,23 @@
             LANGUAGE = ObjC; 
             OUTLETS = {
                 "_aeForever" = NSButton; 
+                "_chanhop" = NSBox; 
                 "_channelSel" = NSMatrix; 
                 "_driver" = NSPopUpButton; 
                 "_driverTable" = NSTableView; 
                 "_dumpDestination" = NSTextField; 
                 "_dumpFilter" = NSMatrix; 
+                "_dumpFilterBox" = NSBox; 
                 "_firstChannel" = NSTextField; 
                 "_frequence" = NSTextField; 
+                "_globalsettings" = NSBox; 
+                "_injection" = NSBox; 
                 "_injectionDevice" = NSButton; 
+                "_kdrone_settings" = NSBox; 
+                "_kismet_host" = NSTextField; 
+                "_kismet_port" = NSTextField; 
                 "_removeDriver" = NSButton; 
+                "_savedumpsat" = NSBox; 
                 "_selAll" = NSButton; 
                 "_selNone" = NSButton; 
             }; 

Modified: trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib
===================================================================
--- trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib 2007-04-22 
05:32:46 UTC (rev 232)
+++ trunk/Resources/Nibs/English.lproj/PrefsDriver.nib/info.nib 2007-04-24 
04:45:15 UTC (rev 233)
@@ -3,11 +3,11 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>133 116 356 240 0 0 1280 1002 </string>
+       <string>119 29 356 240 0 0 1024 746 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>109</key>
-               <string>392 374 495 589 0 0 1280 1002 </string>
+               <string>264 147 495 589 0 0 1024 746 </string>
        </dict>
        <key>IBFramework Version</key>
        <string>446.1</string>
@@ -16,6 +16,6 @@
                <integer>109</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>8J135</string>
+       <string>8P135</string>
 </dict>
 </plist>

Modified: trunk/Sources/Core/WaveScanner.mm
===================================================================
--- trunk/Sources/Core/WaveScanner.mm   2007-04-22 05:32:46 UTC (rev 232)
+++ trunk/Sources/Core/WaveScanner.mm   2007-04-24 04:45:15 UTC (rev 233)
@@ -129,18 +129,19 @@
     NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
     
     interval = [defs floatForKey:@"activeScanInterval"];
-    
-    while (_scanning) {
-        nets = [wd networksInRange];
-        
-        if (nets) {
-            for(i=0; i<[nets count]; i++) {
-                network = [nets objectAtIndex:i];                
-                [_container addAppleAPIData:network];
-            }
-        }
-        [NSThread sleepUntilDate:[NSDate 
dateWithTimeIntervalSinceNow:interval]];
-    }
+    if ([wd startedScanning]) {
+               while (_scanning) {
+                       nets = [wd networksInRange];
+                       
+                       if (nets) {
+                               for(i=0; i<[nets count]; i++) {
+                                       network = [nets objectAtIndex:i];       
         
+                                       [_container addAppleAPIData:network];
+                               }
+                       }
+                       [NSThread sleepUntilDate:[NSDate 
dateWithTimeIntervalSinceNow:interval]];
+               }
+       }
 }
 
 //does the actual scanning (extra thread)
@@ -204,6 +205,10 @@
     } else geiger=Nil;
     
     [wd startCapture:0];
+       if (![wd startedScanning]) {
+               goto error;
+       }
+       
     while (_scanning) {                                //this is for canceling
                @try {
                        frame = [wd nextFrame];     //captures the next frame 
(locking)

Modified: trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h   2007-04-22 
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.h   2007-04-24 
04:45:15 UTC (rev 233)
@@ -18,7 +18,8 @@
        IBOutlet id pr_interval; //deauthenticate interval
        IBOutlet id kismetserverip; // Kismet server IP
        IBOutlet id kismetserverport; // Kismet server port
+       IBOutlet id show_debugmenu;
 }
 
 -(IBAction)setDefaults:(id)sender;
-@end
+@end
\ No newline at end of file

Modified: trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m   2007-04-22 
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsAdvanced.m   2007-04-24 
04:45:15 UTC (rev 233)
@@ -16,8 +16,7 @@
        [bpfdevice setStringValue:[controller objectForKey:@"bpfdevice"]];
        [bpfloc setStringValue:[controller objectForKey:@"bpfloc"]];
        [pr_interval setIntValue:[[controller objectForKey:@"pr_interval"] 
intValue]];
-       [kismetserverip setStringValue:[controller 
objectForKey:@"kismetserverip"]];
-       [kismetserverport setIntValue:[[controller 
objectForKey:@"kismetserverport"] intValue]];
+       [show_debugmenu setState:[[controller objectForKey:@"DebugMode"] 
intValue]];
 }
 
 -(BOOL)updateDictionary {
@@ -26,8 +25,7 @@
        [controller setObject:[bpfdevice stringValue] forKey:@"bpfdevice"];
        [controller setObject:[bpfloc stringValue] forKey:@"bpfloc"];
        [controller setObject:[NSNumber numberWithInt:[pr_interval intValue]] 
forKey:@"pr_interval"];
-       [controller setObject:[kismetserverip stringValue] 
forKey:@"kismetserverip"];
-       [controller setObject:[NSNumber numberWithInt:[kismetserverport 
intValue]] forKey:@"kismetserverport"];
+       [controller setObject:[NSNumber numberWithInt:[show_debugmenu state]] 
forKey:@"DebugMode"];
     return YES;
 }
 
@@ -42,10 +40,8 @@
                [controller setObject:[bpfloc stringValue] forKey:@"bpfloc"];
     } else if(sender == pr_interval) {
        [controller setObject:[NSNumber numberWithInt:[pr_interval intValue]] 
forKey:@"pr_interval"];
-       } else if(sender == kismetserverip) {
-               [controller setObject:[kismetserverip stringValue] 
forKey:@"kismetserverip"];
-       } else if(sender == kismetserverport) {
-               [controller setObject:[NSNumber numberWithInt:[kismetserverport 
intValue]] forKey:@"kismetserverport"];
+       } else if(sender == show_debugmenu) {
+               [controller setObject:[NSNumber numberWithInt:[show_debugmenu 
state]] forKey:@"DebugMode"];
        } else {
         NSLog(@"Error: Invalid sender(%@) in setValueForSender:",sender);
     }
@@ -57,8 +53,7 @@
        [bpfdevice setStringValue:@"wlt1"];
        [bpfloc setStringValue:@"/dev/bpf0"];
        [pr_interval setIntValue:100];
-       [kismetserverip setStringValue:@"127.0.0.1"];
-       [kismetserverport setIntValue:2501];
+       [show_debugmenu setState:NSOffState];
 }
 
 @end
\ No newline at end of file

Modified: trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h     2007-04-22 
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsDriver.h     2007-04-24 
04:45:15 UTC (rev 233)
@@ -17,17 +17,27 @@
     IBOutlet NSMatrix       *_channelSel;
     IBOutlet NSButton       *_selAll;
     IBOutlet NSButton       *_selNone;
-    
+       
     IBOutlet NSButton       *_injectionDevice;
     
     IBOutlet NSPopUpButton  *_driver;
     IBOutlet NSButton       *_removeDriver;
     IBOutlet NSTableView    *_driverTable;
-    
+
     IBOutlet NSMatrix       *_dumpFilter;
     IBOutlet NSTextField    *_dumpDestination;
+       
+       IBOutlet NSTextField    *_kismet_host;
+       IBOutlet NSTextField    *_kismet_port;
     
     IBOutlet NSButton       *_aeForever;
+       
+       IBOutlet NSBox                  *_chanhop;
+       IBOutlet NSBox                  *_kdrone_settings;
+       IBOutlet NSBox                  *_injection;
+       IBOutlet NSBox                  *_dumpFilterBox;
+       IBOutlet NSBox                  *_savedumpsat;
+       IBOutlet NSBox                  *_globalsettings;
 }
 
 - (IBAction)selAddDriver:(id)sender;

Modified: trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m
===================================================================
--- trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m     2007-04-22 
05:32:46 UTC (rev 232)
+++ trunk/Sources/Preferences/PreferencePanes/PrefsDriver.m     2007-04-24 
04:45:15 UTC (rev 233)
@@ -57,7 +57,7 @@
 }
 
 -(NSDictionary*) getCurrentSettings {
-    int i = [_driverTable selectedRow];
+       int i = [_driverTable selectedRow];
     
     if (i<0) return Nil;
     
@@ -69,6 +69,7 @@
     bool enableChannel = NO;
     bool enableInjection = NO;
     bool enableDumping = NO;
+       bool enableIPAndPort = NO;
     Class driverClass;
     NSDictionary *d = Nil;
     unsigned int x, y;
@@ -87,6 +88,16 @@
         if ([driverClass allowsChannelHopping]) enableChannel = YES;
         if ([driverClass allowsInjection]) enableInjection = YES;
         if ([driverClass type] == passiveDriver) enableDumping = YES;
+               if ([driverClass wantsIPAndPort]) enableIPAndPort = YES;
+               if (enableIPAndPort) {
+                       [_chanhop setHidden:true];
+                       [_kdrone_settings setHidden:false];
+                       [_kismet_host setStringValue:[d 
objectForKey:@"kismetserverhost"]];
+                       [_kismet_port setIntValue:[[d 
objectForKey:@"kismetserverport"] intValue]];
+               } else {
+                       [_chanhop setHidden:false];
+                       [_kdrone_settings setHidden:true];
+               }
         
     }
     
@@ -96,13 +107,13 @@
     [_selNone       setEnabled:enableChannel];
     [_channelSel    setEnabled:enableChannel];
     [_firstChannel  setEnabled:enableChannel];
-    
+           
     [_dumpDestination       setEnabled:enableDumping];
     [_dumpFilter            setEnabled:enableDumping];
     
-    [_injectionDevice       setEnabled:enableInjection];
+    [_injectionDevice        setEnabled:enableInjection];
     if (!enableInjection) {
-         [_injectionDevice setTitle:@"Injection Not Supported"];
+               [_injectionDevice setTitle:@"Injection Not Supported"];
     }else
         [_injectionDevice setTitle:@"use as primary device"];
     
@@ -161,7 +172,7 @@
     int i = [_driverTable selectedRow];
     int val = 0, startCorrect = 0;
     unsigned int x, y;
-    
+       
     [controller setObject:[NSNumber numberWithFloat: [_frequence     
floatValue]]    forKey:@"frequence"];
     [controller setObject:[NSNumber numberWithBool: [_aeForever state] == 
NSOnState] forKey:@"aeForever"];
 
@@ -200,6 +211,9 @@
     [d setObject:[_dumpDestination stringValue] forKey:@"dumpDestination"];
     [d setObject:[NSNumber numberWithInt:[_dumpFilter selectedRow]] 
forKey:@"dumpFilter"];
     
+       [d setObject:[_kismet_host stringValue] forKey:@"kismetserverhost"];
+       [d setObject:[NSNumber numberWithInt:[_kismet_port intValue]] 
forKey:@"kismetserverport"];
+       
     a = [[controller objectForKey:@"ActiveDrivers"] mutableCopy];
     [a replaceObjectAtIndex:i withObject:d];
     [controller setObject:a forKey:@"ActiveDrivers"];
@@ -252,10 +266,19 @@
 - (IBAction)selAddDriver:(id)sender {
     NSMutableArray *drivers;
     NSString *driverClassName;
+       NSNumber *kserverport;
        int result;
     
     driverClassName = [NSString stringWithCString:WaveDrivers[[[_driver 
selectedItem] tag]]];
     
+       if ([driverClassName isEqualToString:@"WaveDriverKismet"]) {
+               kserverport = [NSNumber numberWithInt:2501];
+       } else if ([driverClassName isEqualToString:@"WaveDriverKismetDrone"]) {
+               kserverport = [NSNumber numberWithInt:3501];
+       } else {
+               kserverport = [NSNumber numberWithInt:0];
+       }
+       
     drivers = [[controller objectForKey:@"ActiveDrivers"] mutableCopy];
     [drivers addObject:[NSDictionary dictionaryWithObjectsAndKeys:
         driverClassName, @"driverID",
@@ -278,6 +301,8 @@
         [NSNumber numberWithInt: 0]     , @"dumpFilter",
         @"~/DumpLog %y-%m-%d %H:%M"    , @"dumpDestination",
         [NSClassFromString(driverClassName) deviceName], @"deviceName", //todo 
make this unique for ever instance
+               @"127.0.0.1", @"kismetserverhost",
+               kserverport, @"kismetserverport",
         nil]];
     [controller setObject:drivers forKey:@"ActiveDrivers"];
     
@@ -295,10 +320,11 @@
                                                        OK,nil, nil);
                }
        }
+
        
     [_driverTable reloadData];
     [_driverTable selectRow:[drivers count]-1 byExtendingSelection:NO];
-    [self updateUI];
+       [self updateUI];
     [drivers release];
 }
 

Modified: trunk/Sources/WaveDrivers/WaveDriver.h
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriver.h      2007-04-22 05:32:46 UTC (rev 
232)
+++ trunk/Sources/WaveDrivers/WaveDriver.h      2007-04-24 04:45:15 UTC (rev 
233)
@@ -53,6 +53,7 @@
 
 + (enum WaveDriverType) type;
 + (bool) allowsInjection;
++ (bool) wantsIPAndPort;
 + (bool) allowsChannelHopping;
 + (bool) allowsMultipleInstances;
 + (NSString*) description;
@@ -63,6 +64,7 @@
 
 - (enum WaveDriverType) type;
 - (bool) allowsInjection;
+- (bool) wantsIPAndPort;
 - (bool) allowsChannelHopping;
 - (bool) allowsMultipleInstances;
 - (bool) unloadBackend;
@@ -91,6 +93,10 @@
 // for passive scanning
 - (WLFrame*) nextFrame;
 
+// for the kismet drones
+-(bool) startedScanning;
+-(bool) stoppedScanning;
+
 // for packet injection
 - (bool) sendFrame:(UInt8*)f withLength:(int) size atInterval:(int)interval;
 - (bool) stopSendingFrames;

Modified: trunk/Sources/WaveDrivers/WaveDriver.m
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriver.m      2007-04-22 05:32:46 UTC (rev 
232)
+++ trunk/Sources/WaveDrivers/WaveDriver.m      2007-04-24 04:45:15 UTC (rev 
233)
@@ -26,7 +26,10 @@
 #import "WaveDriverAirport.h"
 #import "WaveHelper.h"
 
-char WaveDrivers [][30] = { "WaveDriverAirport", "WaveDriverKismet", 
"WaveDriverAirportExtreme", "WaveDriverViha", "WaveDriverAtheros", 
"WaveDriverAironet", "WaveDriverMacJack",  "WaveDriverPrismGT", 
"WaveDriverUSBIntersil", "\0" };
+char WaveDrivers [][30] = { "WaveDriverAirport", "WaveDriverKismet", 
"WaveDriverKismetDrone", 
+                                                       
"WaveDriverAirportExtreme", "WaveDriverViha", "WaveDriverAtheros", 
+                                                       "WaveDriverAironet", 
"WaveDriverMacJack",  "WaveDriverPrismGT", 
+                                                       
"WaveDriverUSBIntersil", "\0" };
 
 @implementation WaveDriver
 
@@ -45,6 +48,10 @@
     return NO;
 }
 
++ (bool) wantsIPAndPort {
+    return NO;
+}
+
 + (bool) allowsChannelHopping {
     return NO;
 }
@@ -81,6 +88,10 @@
     return [[self class] allowsInjection];
 }
 
+- (bool) wantsIPAndPort {
+    return [[self class] wantsIPAndPort];
+}
+
 - (bool) allowsChannelHopping {
     return [[self class] allowsChannelHopping];
 }
@@ -92,6 +103,7 @@
 - (bool) unloadBackend {
     return [[self class] unloadBackend];
 }
+
 - (NSString*) deviceName {
     return [[self class] deviceName];
 }
@@ -293,6 +305,16 @@
 
 #pragma mark -
 
+-(bool) startedScanning {
+       return YES;
+}
+
+-(bool) stoppedScanning {
+       return YES;
+}
+
+#pragma mark -
+
 - (bool) sendFrame:(UInt8*)f withLength:(int) size atInterval:(int)interval {
     return NO;
 }

Modified: trunk/Sources/WaveDrivers/WaveDriverKismet.h
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverKismet.h        2007-04-22 05:32:46 UTC 
(rev 232)
+++ trunk/Sources/WaveDrivers/WaveDriverKismet.h        2007-04-24 04:45:15 UTC 
(rev 233)
@@ -1,10 +1,15 @@
 /*
         
-        File:                  WaveDriverKismet.m
+        File:                  WaveDriverKismet.h
         Program:               KisMAC
                Author:                 Geordie Millar
                                                themacuser@xxxxxxxxx
                Description:    Scan with a Kismet server in KisMac.
+
+               Details:                Tested with Kismet 2006.04.R1 on 
OpenWRT White Russian RC6 on a Diamond Digital R100
+                                               (broadcom mini-PCI card, wrt54g 
capturesource)
+                                               and Kismet 2006.04.R1 on Voyage 
Linux on a PC Engines WRAP.2E
+                                               (CM9 mini-PCI card, madwifing)
                 
         This file is part of KisMAC.
 

Modified: trunk/Sources/WaveDrivers/WaveDriverKismet.m
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverKismet.m        2007-04-22 05:32:46 UTC 
(rev 232)
+++ trunk/Sources/WaveDrivers/WaveDriverKismet.m        2007-04-24 04:45:15 UTC 
(rev 233)
@@ -5,6 +5,11 @@
                Author:                 Geordie Millar
                                                themacuser@xxxxxxxxx
                Description:    Scan with a Kismet server in KisMac.
+
+               Details:                Tested with Kismet 2006.04.R1 on 
OpenWRT White Russian RC6 on a Diamond Digital R100
+                                               (broadcom mini-PCI card, wrt54g 
capturesource)
+                                               and Kismet 2006.04.R1 on Voyage 
Linux on a PC Engines WRAP.2E
+                                               (CM9 mini-PCI card, madwifing)
                 
         This file is part of KisMAC.
 
@@ -41,6 +46,46 @@
     self = [super init];
     if (!self)  return nil;
     
+    KismetInstances++;
+
+    return self;
+}
+
++(int) kismetInstanceCount {
+    return KismetInstances;
+}
+
+#pragma mark -
+
++ (enum WaveDriverType) type {
+    return activeDriver;
+}
+
++ (bool) wantsIPAndPort {
+    return YES;
+}
+
++ (NSString*) description {
+    return NSLocalizedString(@"Kismet Server, Passive Mode", "long driver 
description");
+}
+
++ (NSString*) deviceName {
+    return NSLocalizedString(@"Kismet Server", "short driver description");
+}
+
+#pragma mark -
+
++ (bool) loadBackend {
+    return YES;
+}
+
++ (bool) unloadBackend {
+    return YES;
+}
+
+#pragma mark -
+
+- (bool) startedScanning {
        NSUserDefaults *defs;
     defs = [NSUserDefaults standardUserDefaults];
        
@@ -56,9 +101,31 @@
                return nil;
        }
        
-       hostname = [[defs objectForKey:@"kismetserverip"] cString];
-       port = [[defs objectForKey:@"kismetserverport"] intValue];
+       int foundhostname=0;
+       int foundport=0;
        
+       NSArray *a;
+       a = [defs objectForKey:@"ActiveDrivers"];
+       NSEnumerator *e = [a objectEnumerator];
+       NSDictionary *drvr;
+       @try {
+               while ( (drvr = [e nextObject]) ) {
+                       if ([[drvr objectForKey:@"driverID"] 
isEqualToString:@"WaveDriverKismet"]) {
+                               hostname = [[drvr 
objectForKey:@"kismetserverhost"] cString];
+                               foundhostname = 1;
+                               port = [[defs objectForKey:@"kismetserverport"] 
intValue];
+                               foundport = 1;
+                       }
+               }
+       }
+       @catch (NSException * ex) {
+               NSLog(@"Exception getting the hostname and port from plist...");
+       }
+
+       if (foundhostname + foundport < 2) {
+               NSLog(@"Error getting the hostname and port from plist...");
+       }       
+       
        ip = inet_addr(hostname);
                
        serv_name.sin_addr.s_addr = ip;
@@ -77,42 +144,17 @@
        }
                
        write(sockd, initstr, strlen(initstr));
-    
-    KismetInstances++;
-
-    return self;
+       
+       return YES;
 }
 
-+(int) kismetInstanceCount {
-    return KismetInstances;
+- (bool) stopCapture {
+       close(sockd);
+       return YES;
 }
 
 #pragma mark -
 
-+ (enum WaveDriverType) type {
-    return activeDriver;
-}
-
-+ (NSString*) description {
-    return NSLocalizedString(@"Kismet Server, Passive Mode", "long driver 
description");
-}
-
-+ (NSString*) deviceName {
-    return NSLocalizedString(@"Kismet Server", "short driver description");
-}
-
-#pragma mark -
-
-+ (bool) loadBackend {
-    return YES;
-}
-
-+ (bool) unloadBackend {
-    return YES;
-}
-
-#pragma mark -
-
 - (NSArray*) networksInRange {
        int len,i,j,flags,t,signalint;
        int usenetarray = 0;
@@ -150,9 +192,9 @@
                                        bssid = [NSData 
dataWithBytes:bssidstring length:6];                                    // 
bssid, simple enough
                                        signalint = [[rcvd3 objectAtIndex:4] 
intValue];                                                 // signal level, as 
an int
                                        if (signalint > 1000 || signalint < 0) 
{ signalint = 0; }                               // sometimes it comes through 
as an invalid number
-                                       signal = [NSNumber 
numberWithInt:signalint];                                                    // 
signal level as NSNumber
+                                       signal = [NSNumber 
numberWithInt:signalint];                                                    // 
signal level as NSNumber, you can't put int into array
                                        noise = [NSNumber numberWithInt:0];     
                                                                        // this 
is only subtracted from signal, not needed
-                                       channel = [NSNumber 
numberWithInt:[[rcvd3 objectAtIndex:6] intValue]];  // channel
+                                       channel = [NSNumber 
numberWithInt:[[rcvd3 objectAtIndex:6] intValue]];  // channel...
                                        
                                        flags = 0;
                                        


Other related posts:

  • » [kismac] [binaervarianz] r233 - in trunk: KisMAC.xcodeproj Resources/Nibs/English.lproj/PrefsAdvanced.nib Resources/Nibs/English.lproj/PrefsDriver.nib Sources/Core Sources/Preferences/PreferencePanes Sources/WaveDrivers