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()
|