[kismac] [binaervarianz] r146 - in trunk: KisMAC.xcodeproj Sources/3rd Party Sources/WaveDrivers

  • From: svn@xxxxxxxxxxxxxxxx
  • To: kismac@xxxxxxxxxxxxx
  • Date: Fri, 28 Apr 2006 12:54:05 +0200

Author: robin
Date: 2006-04-28 12:54:05 +0200 (Fri, 28 Apr 2006)
New Revision: 146

Modified:
   trunk/KisMAC.xcodeproj/project.pbxproj
   trunk/Sources/3rd Party/Apple80211.h
   trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.h
   trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.m
Log:
* themacuser's patch to remove the "airport" tool from Airport Extreme passive 
mode channel switching - large improvement in overall CPU load.  Closes ticket 
#103.


Modified: trunk/KisMAC.xcodeproj/project.pbxproj
===================================================================
--- trunk/KisMAC.xcodeproj/project.pbxproj      2006-04-28 05:59:51 UTC (rev 
145)
+++ trunk/KisMAC.xcodeproj/project.pbxproj      2006-04-28 10:54:05 UTC (rev 
146)
@@ -857,7 +857,7 @@
                6CA3BCCA09B2A58F00DCB407 /* Accelerate.framework */ = {isa = 
PBXFileReference; lastKnownFileType = wrapper.framework; name = 
Accelerate.framework; path = /System/Library/Frameworks/Accelerate.framework; 
sourceTree = "<absolute>"; };
                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; };
+               8D1107320486CEB800E47090 /* KisMAC.app */ = {isa = 
PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; 
path = KisMAC.app; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */

Modified: trunk/Sources/3rd Party/Apple80211.h
===================================================================
--- trunk/Sources/3rd Party/Apple80211.h        2006-04-28 05:59:51 UTC (rev 
145)
+++ trunk/Sources/3rd Party/Apple80211.h        2006-04-28 10:54:05 UTC (rev 
146)
@@ -409,6 +409,13 @@
        void *outBuf);
 
 
+extern WIErr WirelessPrivate(
+                                                        WirelessContextPtr 
inContext,
+                                                        void* in_ptr,
+                                                        int in_bytes,
+                                                        void* out_ptr,
+                                                        int out_bytes);
+
 /*
        ***** MISSING FUNCTIONS *****
        

Modified: trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.h
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.h        2006-04-28 
05:59:51 UTC (rev 145)
+++ trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.h        2006-04-28 
10:54:05 UTC (rev 146)
@@ -26,11 +26,13 @@
 #import <Cocoa/Cocoa.h>
 #import <pcap.h>
 #import "WaveDriver.h"
+#import "Apple80211.h"
 
 @interface WaveDriverAirportExtreme : WaveDriver {
        pcap_t *_device;
 }
 
+WIErr wlc_ioctl(int command, int bufsize, void* buffer, int outsize, void* 
out);
 + (BOOL)monitorModeEnabled;
 + (void)setMonitorMode:(BOOL)enable;
 

Modified: trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.m
===================================================================
--- trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.m        2006-04-28 
05:59:51 UTC (rev 145)
+++ trunk/Sources/WaveDrivers/WaveDriverAirportExtreme.m        2006-04-28 
10:54:05 UTC (rev 146)
@@ -27,8 +27,10 @@
 #import "ImportController.h"
 #import "WaveHelper.h"
 #import <BIGeneric/BIGeneric.h>
+#import "Apple80211.h"
 
 static bool explicitlyLoadedAirportExtremeDriver = NO;
+WirelessContextPtr gWCtxt = NULL;
 
 @implementation WaveDriverAirportExtreme
 
@@ -274,9 +276,25 @@
        return _currentChannel;
 }
 
+WIErr
+wlc_ioctl(int command, int bufsize, void* buffer, int outsize, void* out) {
+       if (!buffer) bufsize = 0;
+       int* buf = malloc(bufsize+8);
+       buf[0] = 3; 
+       buf[1] = command;
+       if (bufsize && buffer)
+               memcpy(&buf[2], buffer, bufsize);
+       return WirelessPrivate(gWCtxt, buf, bufsize+8, out, outsize);
+}
+
+int chanint;
+
 - (bool) setChannel:(unsigned short)newChannel {
-   [[NSTask 
launchedTaskWithLaunchPath:@"/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport"
-               arguments:[NSArray arrayWithObjects:@"-z", [NSString 
stringWithFormat:@"--channel=%u", newChannel], nil]] waitUntilExit];
+       chanint = newChannel;
+       WirelessAttach(&gWCtxt, 0);
+       wlc_ioctl(52, 0, NULL, 0, NULL); // disassociate
+       wlc_ioctl(30, 8, &chanint, 0, NULL); // set channel
+       WirelessDetach(gWCtxt);
        _currentChannel = newChannel;
     return YES;
 }


Other related posts:

  • » [kismac] [binaervarianz] r146 - in trunk: KisMAC.xcodeproj Sources/3rd Party Sources/WaveDrivers