import logging
logger = logging.getLogger()
import os
+import socket
import subprocess
import time
res = dev[0].global_request(cmd)
if exp and exp not in res:
raise Exception("Unexpected success for '%s' during OOM" % cmd)
+
+def test_wpas_ctrl_socket_full(dev, apdev, test_params):
+ """wpa_supplicant control socket and full send buffer"""
+ if not dev[0].ping():
+ raise Exception("Could not ping wpa_supplicant at the beginning of the test")
+ dev[0].get_status()
+
+ counter = 0
+
+ s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
+ local = "/tmp/wpa_ctrl_test_%d-%d" % (os.getpid(), counter)
+ counter += 1
+ s.bind(local)
+ s.connect("/var/run/wpa_supplicant/wlan0")
+ for i in range(20):
+ logger.debug("Command %d" % i)
+ try:
+ s.send("MIB")
+ except Exception, e:
+ logger.info("Could not send command %d: %s" % (i, str(e)))
+ break
+ # Close without receiving response
+ time.sleep(0.01)
+
+ if not dev[0].ping():
+ raise Exception("Could not ping wpa_supplicant in the middle of the test")
+ dev[0].get_status()
+
+ s2 = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
+ local2 = "/tmp/wpa_ctrl_test_%d-%d" % (os.getpid(), counter)
+ counter += 1
+ s2.bind(local2)
+ s2.connect("/var/run/wpa_supplicant/wlan0")
+ for i in range(10):
+ logger.debug("Command %d [2]" % i)
+ try:
+ s2.send("MIB")
+ except Exception, e:
+ logger.info("Could not send command %d [2]: %s" % (i, str(e)))
+ break
+ # Close without receiving response
+ time.sleep(0.01)
+
+ s.close()
+ os.unlink(local)
+
+ for i in range(10):
+ logger.debug("Command %d [3]" % i)
+ try:
+ s2.send("MIB")
+ except Exception, e:
+ logger.info("Could not send command %d [3]: %s" % (i, str(e)))
+ break
+ # Close without receiving response
+ time.sleep(0.01)
+
+ s2.close()
+ os.unlink(local2)
+
+ if not dev[0].ping():
+ raise Exception("Could not ping wpa_supplicant in the middle of the test [2]")
+ dev[0].get_status()
+
+ s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
+ local = "/tmp/wpa_ctrl_test_%d-%d" % (os.getpid(), counter)
+ counter += 1
+ s.bind(local)
+ s.connect("/var/run/wpa_supplicant/wlan0")
+ s.send("ATTACH")
+ res = s.recv(100)
+ if "OK" not in res:
+ raise Exception("Could not attach a test socket")
+
+ for i in range(5):
+ dev[0].scan(freq=2412)
+
+ s.close()
+ os.unlink(local)
+
+ for i in range(5):
+ dev[0].scan(freq=2412)
+
+ if not dev[0].ping():
+ raise Exception("Could not ping wpa_supplicant at the end of the test")
+ dev[0].get_status()