blob: 5e18fb23f744f2e3f10d35de5bd7fff2c8159dd5 [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#!/usr/bin/python
2#
3# Test script for wpaspy
4# Copyright (c) 2013, Jouni Malinen <j@w1.fi>
5#
6# This software may be distributed under the terms of the BSD license.
7# See README for more details.
8
9import os
10import sys
11import time
12import wpaspy
13
14wpas_ctrl = '/var/run/wpa_supplicant'
15
16def wpas_connect(host=None, port=9877):
17 ifaces = []
18
19 if host != None:
20 try:
21 wpas = wpaspy.Ctrl(host, port)
22 return wpas
23 except:
24 print("Could not connect to host: ", host)
25 return None
26
27 if os.path.isdir(wpas_ctrl):
28 try:
29 ifaces = [os.path.join(wpas_ctrl, i) for i in os.listdir(wpas_ctrl)]
30 except OSError as error:
31 print("Could not find wpa_supplicant: ", error)
32 return None
33
34 if len(ifaces) < 1:
35 print("No wpa_supplicant control interface found")
36 return None
37
38 for ctrl in ifaces:
39 try:
40 wpas = wpaspy.Ctrl(ctrl)
41 return wpas
42 except Exception as e:
43 pass
44 return None
45
46
47def main(host=None, port=9877):
48 print("Testing wpa_supplicant control interface connection")
49 wpas = wpas_connect(host, port)
50 if wpas is None:
51 return
52 print("Connected to wpa_supplicant")
53 print(wpas.request('PING'))
54
55 mon = wpas_connect(host, port)
56 if mon is None:
57 print("Could not open event monitor connection")
58 return
59
60 mon.attach()
61 print("Scan")
62 print(wpas.request('SCAN'))
63
64 count = 0
65 while count < 10:
66 count += 1
67 time.sleep(1)
68 while mon.pending():
69 ev = mon.recv()
70 print(ev)
71 if 'CTRL-EVENT-SCAN-RESULTS' in ev:
72 print('Scan completed')
73 print(wpas.request('SCAN_RESULTS'))
74 count = 10
75 pass
76
77
78if __name__ == "__main__":
79 if len(sys.argv) > 2:
80 main(host=sys.argv[1], port=int(sys.argv[2]))
81 else:
82 main()