 a2c88a8025
			
		
	
	
		a2c88a8025
		
	
	
	
	
		
			
			hostname and port can now be specified when using wpaspy.Ctrl, so we can connect to remote clients now. This can also be tested using test.py application with ./test.py <hostname> <port> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/python
 | |
| #
 | |
| # Test script for wpaspy
 | |
| # Copyright (c) 2013, Jouni Malinen <j@w1.fi>
 | |
| #
 | |
| # This software may be distributed under the terms of the BSD license.
 | |
| # See README for more details.
 | |
| 
 | |
| import os
 | |
| import sys
 | |
| import time
 | |
| import wpaspy
 | |
| 
 | |
| wpas_ctrl = '/var/run/wpa_supplicant'
 | |
| 
 | |
| def wpas_connect(host=None, port=9877):
 | |
|     ifaces = []
 | |
| 
 | |
|     if host != None:
 | |
|         try:
 | |
|             wpas = wpaspy.Ctrl(host, port)
 | |
|             return wpas
 | |
|         except:
 | |
|             print "Could not connect to host: ", host
 | |
|             return None
 | |
| 
 | |
|     if os.path.isdir(wpas_ctrl):
 | |
|         try:
 | |
|             ifaces = [os.path.join(wpas_ctrl, i) for i in os.listdir(wpas_ctrl)]
 | |
|         except OSError, error:
 | |
|             print "Could not find wpa_supplicant: ", error
 | |
|             return None
 | |
| 
 | |
|     if len(ifaces) < 1:
 | |
|         print "No wpa_supplicant control interface found"
 | |
|         return None
 | |
| 
 | |
|     for ctrl in ifaces:
 | |
|         try:
 | |
|             wpas = wpaspy.Ctrl(ctrl)
 | |
|             return wpas
 | |
|         except Exception, e:
 | |
|             pass
 | |
|     return None
 | |
| 
 | |
| 
 | |
| def main(host=None, port=9877):
 | |
|     print "Testing wpa_supplicant control interface connection"
 | |
|     wpas = wpas_connect(host, port)
 | |
|     if wpas is None:
 | |
|         return
 | |
|     print "Connected to wpa_supplicant"
 | |
|     print wpas.request('PING')
 | |
| 
 | |
|     mon = wpas_connect(host, port)
 | |
|     if mon is None:
 | |
|         print "Could not open event monitor connection"
 | |
|         return
 | |
| 
 | |
|     mon.attach()
 | |
|     print "Scan"
 | |
|     print wpas.request('SCAN')
 | |
| 
 | |
|     count = 0
 | |
|     while count < 10:
 | |
|         count += 1
 | |
|         time.sleep(1)
 | |
|         while mon.pending():
 | |
|             ev = mon.recv()
 | |
|             print ev
 | |
|             if 'CTRL-EVENT-SCAN-RESULTS' in ev:
 | |
|                 print 'Scan completed'
 | |
|                 print wpas.request('SCAN_RESULTS')
 | |
|                 count = 10
 | |
|                 pass
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     if len(sys.argv) > 2:
 | |
|         main(host=sys.argv[1], port=int(sys.argv[2]))
 | |
|     else:
 | |
|         main()
 |