2013-03-01 16:27:56 -05:00
|
|
|
#!/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 time
|
|
|
|
import wpaspy
|
|
|
|
|
|
|
|
wpas_ctrl = '/var/run/wpa_supplicant'
|
|
|
|
|
|
|
|
def wpas_connect():
|
|
|
|
ifaces = []
|
|
|
|
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
|
2013-03-16 15:46:51 -04:00
|
|
|
except Exception, e:
|
2013-03-01 16:27:56 -05:00
|
|
|
pass
|
|
|
|
return None
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
print "Testing wpa_supplicant control interface connection"
|
|
|
|
wpas = wpas_connect()
|
|
|
|
if wpas is None:
|
|
|
|
return
|
|
|
|
print "Connected to wpa_supplicant"
|
|
|
|
print wpas.request('PING')
|
|
|
|
|
|
|
|
mon = wpas_connect()
|
|
|
|
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__":
|
|
|
|
main()
|