tests: Improve debug logs in hostapd/wpasupplicant with remote commands
Show more info when we are using remote wpaspy and UDP-based control interface. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
This commit is contained in:
parent
8ce4855b23
commit
d4944fad72
2 changed files with 28 additions and 22 deletions
|
@ -27,20 +27,23 @@ class HostapdGlobal:
|
||||||
if hostname is None:
|
if hostname is None:
|
||||||
self.ctrl = wpaspy.Ctrl(hapd_global)
|
self.ctrl = wpaspy.Ctrl(hapd_global)
|
||||||
self.mon = wpaspy.Ctrl(hapd_global)
|
self.mon = wpaspy.Ctrl(hapd_global)
|
||||||
|
self.dbg = ""
|
||||||
else:
|
else:
|
||||||
self.ctrl = wpaspy.Ctrl(hostname, port)
|
self.ctrl = wpaspy.Ctrl(hostname, port)
|
||||||
self.mon = wpaspy.Ctrl(hostname, port)
|
self.mon = wpaspy.Ctrl(hostname, port)
|
||||||
|
self.dbg = hostname + "/" + str(port)
|
||||||
self.mon.attach()
|
self.mon.attach()
|
||||||
|
|
||||||
def request(self, cmd):
|
def request(self, cmd, timeout=10):
|
||||||
return self.ctrl.request(cmd)
|
logger.debug(self.dbg + ": CTRL(global): " + cmd)
|
||||||
|
return self.ctrl.request(cmd, timeout)
|
||||||
|
|
||||||
def wait_event(self, events, timeout):
|
def wait_event(self, events, timeout):
|
||||||
start = os.times()[4]
|
start = os.times()[4]
|
||||||
while True:
|
while True:
|
||||||
while self.mon.pending():
|
while self.mon.pending():
|
||||||
ev = self.mon.recv()
|
ev = self.mon.recv()
|
||||||
logger.debug("(global): " + ev)
|
logger.debug(self.dbg + "(global): " + ev)
|
||||||
for event in events:
|
for event in events:
|
||||||
if event in ev:
|
if event in ev:
|
||||||
return ev
|
return ev
|
||||||
|
@ -52,42 +55,39 @@ class HostapdGlobal:
|
||||||
break
|
break
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def request(self, cmd):
|
|
||||||
return self.ctrl.request(cmd)
|
|
||||||
|
|
||||||
def add(self, ifname, driver=None):
|
def add(self, ifname, driver=None):
|
||||||
cmd = "ADD " + ifname + " " + hapd_ctrl
|
cmd = "ADD " + ifname + " " + hapd_ctrl
|
||||||
if driver:
|
if driver:
|
||||||
cmd += " " + driver
|
cmd += " " + driver
|
||||||
res = self.ctrl.request(cmd)
|
res = self.request(cmd)
|
||||||
if not "OK" in res:
|
if not "OK" in res:
|
||||||
raise Exception("Could not add hostapd interface " + ifname)
|
raise Exception("Could not add hostapd interface " + ifname)
|
||||||
|
|
||||||
def add_iface(self, ifname, confname):
|
def add_iface(self, ifname, confname):
|
||||||
res = self.ctrl.request("ADD " + ifname + " config=" + confname)
|
res = self.request("ADD " + ifname + " config=" + confname)
|
||||||
if not "OK" in res:
|
if not "OK" in res:
|
||||||
raise Exception("Could not add hostapd interface")
|
raise Exception("Could not add hostapd interface")
|
||||||
|
|
||||||
def add_bss(self, phy, confname, ignore_error=False):
|
def add_bss(self, phy, confname, ignore_error=False):
|
||||||
res = self.ctrl.request("ADD bss_config=" + phy + ":" + confname)
|
res = self.request("ADD bss_config=" + phy + ":" + confname)
|
||||||
if not "OK" in res:
|
if not "OK" in res:
|
||||||
if not ignore_error:
|
if not ignore_error:
|
||||||
raise Exception("Could not add hostapd BSS")
|
raise Exception("Could not add hostapd BSS")
|
||||||
|
|
||||||
def remove(self, ifname):
|
def remove(self, ifname):
|
||||||
self.ctrl.request("REMOVE " + ifname, timeout=30)
|
self.request("REMOVE " + ifname, timeout=30)
|
||||||
|
|
||||||
def relog(self):
|
def relog(self):
|
||||||
self.ctrl.request("RELOG")
|
self.request("RELOG")
|
||||||
|
|
||||||
def flush(self):
|
def flush(self):
|
||||||
self.ctrl.request("FLUSH")
|
self.request("FLUSH")
|
||||||
|
|
||||||
def get_ctrl_iface_port(self, ifname):
|
def get_ctrl_iface_port(self, ifname):
|
||||||
if self.hostname is None:
|
if self.hostname is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
res = self.ctrl.request("INTERFACES ctrl")
|
res = self.request("INTERFACES ctrl")
|
||||||
lines = res.splitlines()
|
lines = res.splitlines()
|
||||||
found = False
|
found = False
|
||||||
for line in lines:
|
for line in lines:
|
||||||
|
@ -117,9 +117,11 @@ class Hostapd:
|
||||||
if hostname is None:
|
if hostname is None:
|
||||||
self.ctrl = wpaspy.Ctrl(os.path.join(hapd_ctrl, ifname))
|
self.ctrl = wpaspy.Ctrl(os.path.join(hapd_ctrl, ifname))
|
||||||
self.mon = wpaspy.Ctrl(os.path.join(hapd_ctrl, ifname))
|
self.mon = wpaspy.Ctrl(os.path.join(hapd_ctrl, ifname))
|
||||||
|
self.dbg = ifname
|
||||||
else:
|
else:
|
||||||
self.ctrl = wpaspy.Ctrl(hostname, port)
|
self.ctrl = wpaspy.Ctrl(hostname, port)
|
||||||
self.mon = wpaspy.Ctrl(hostname, port)
|
self.mon = wpaspy.Ctrl(hostname, port)
|
||||||
|
self.dbg = hostname + "/" + ifname
|
||||||
self.mon.attach()
|
self.mon.attach()
|
||||||
self.bssid = None
|
self.bssid = None
|
||||||
self.bssidx = bssidx
|
self.bssidx = bssidx
|
||||||
|
@ -138,7 +140,7 @@ class Hostapd:
|
||||||
return self.bssid
|
return self.bssid
|
||||||
|
|
||||||
def request(self, cmd):
|
def request(self, cmd):
|
||||||
logger.debug(self.ifname + ": CTRL: " + cmd)
|
logger.debug(self.dbg + ": CTRL: " + cmd)
|
||||||
return self.ctrl.request(cmd)
|
return self.ctrl.request(cmd)
|
||||||
|
|
||||||
def ping(self):
|
def ping(self):
|
||||||
|
@ -201,14 +203,14 @@ class Hostapd:
|
||||||
def dump_monitor(self):
|
def dump_monitor(self):
|
||||||
while self.mon.pending():
|
while self.mon.pending():
|
||||||
ev = self.mon.recv()
|
ev = self.mon.recv()
|
||||||
logger.debug(self.ifname + ": " + ev)
|
logger.debug(self.dbg + ": " + ev)
|
||||||
|
|
||||||
def wait_event(self, events, timeout):
|
def wait_event(self, events, timeout):
|
||||||
start = os.times()[4]
|
start = os.times()[4]
|
||||||
while True:
|
while True:
|
||||||
while self.mon.pending():
|
while self.mon.pending():
|
||||||
ev = self.mon.recv()
|
ev = self.mon.recv()
|
||||||
logger.debug(self.ifname + ": " + ev)
|
logger.debug(self.dbg + ": " + ev)
|
||||||
for event in events:
|
for event in events:
|
||||||
if event in ev:
|
if event in ev:
|
||||||
return ev
|
return ev
|
||||||
|
|
|
@ -33,9 +33,11 @@ class WpaSupplicant:
|
||||||
if hostname != None:
|
if hostname != None:
|
||||||
self.global_ctrl = wpaspy.Ctrl(hostname, global_port)
|
self.global_ctrl = wpaspy.Ctrl(hostname, global_port)
|
||||||
self.global_mon = wpaspy.Ctrl(hostname, global_port)
|
self.global_mon = wpaspy.Ctrl(hostname, global_port)
|
||||||
|
self.global_dbg = hostname + "/" + str(global_port) + "/"
|
||||||
else:
|
else:
|
||||||
self.global_ctrl = wpaspy.Ctrl(global_iface)
|
self.global_ctrl = wpaspy.Ctrl(global_iface)
|
||||||
self.global_mon = wpaspy.Ctrl(global_iface)
|
self.global_mon = wpaspy.Ctrl(global_iface)
|
||||||
|
self.global_dbg = ""
|
||||||
self.global_mon.attach()
|
self.global_mon.attach()
|
||||||
else:
|
else:
|
||||||
self.global_mon = None
|
self.global_mon = None
|
||||||
|
@ -60,9 +62,11 @@ class WpaSupplicant:
|
||||||
self.ctrl = wpaspy.Ctrl(hostname, port)
|
self.ctrl = wpaspy.Ctrl(hostname, port)
|
||||||
self.mon = wpaspy.Ctrl(hostname, port)
|
self.mon = wpaspy.Ctrl(hostname, port)
|
||||||
self.host = remotehost.Host(hostname, ifname)
|
self.host = remotehost.Host(hostname, ifname)
|
||||||
|
self.dbg = hostname + "/" + ifname
|
||||||
else:
|
else:
|
||||||
self.ctrl = wpaspy.Ctrl(os.path.join(wpas_ctrl, ifname))
|
self.ctrl = wpaspy.Ctrl(os.path.join(wpas_ctrl, ifname))
|
||||||
self.mon = wpaspy.Ctrl(os.path.join(wpas_ctrl, ifname))
|
self.mon = wpaspy.Ctrl(os.path.join(wpas_ctrl, ifname))
|
||||||
|
self.dbg = ifname
|
||||||
self.mon.attach()
|
self.mon.attach()
|
||||||
|
|
||||||
def remove_ifname(self):
|
def remove_ifname(self):
|
||||||
|
@ -131,7 +135,7 @@ class WpaSupplicant:
|
||||||
self.global_request("INTERFACE_REMOVE " + ifname)
|
self.global_request("INTERFACE_REMOVE " + ifname)
|
||||||
|
|
||||||
def request(self, cmd, timeout=10):
|
def request(self, cmd, timeout=10):
|
||||||
logger.debug(self.ifname + ": CTRL: " + cmd)
|
logger.debug(self.dbg + ": CTRL: " + cmd)
|
||||||
return self.ctrl.request(cmd, timeout=timeout)
|
return self.ctrl.request(cmd, timeout=timeout)
|
||||||
|
|
||||||
def global_request(self, cmd):
|
def global_request(self, cmd):
|
||||||
|
@ -139,7 +143,7 @@ class WpaSupplicant:
|
||||||
return self.request(cmd)
|
return self.request(cmd)
|
||||||
else:
|
else:
|
||||||
ifname = self.ifname or self.global_iface
|
ifname = self.ifname or self.global_iface
|
||||||
logger.debug(ifname + ": CTRL(global): " + cmd)
|
logger.debug(self.global_dbg + ifname + ": CTRL(global): " + cmd)
|
||||||
return self.global_ctrl.request(cmd)
|
return self.global_ctrl.request(cmd)
|
||||||
|
|
||||||
def group_request(self, cmd):
|
def group_request(self, cmd):
|
||||||
|
@ -680,7 +684,7 @@ class WpaSupplicant:
|
||||||
while True:
|
while True:
|
||||||
while self.mon.pending():
|
while self.mon.pending():
|
||||||
ev = self.mon.recv()
|
ev = self.mon.recv()
|
||||||
logger.debug(self.ifname + ": " + ev)
|
logger.debug(self.dbg + ": " + ev)
|
||||||
for event in events:
|
for event in events:
|
||||||
if event in ev:
|
if event in ev:
|
||||||
return ev
|
return ev
|
||||||
|
@ -700,7 +704,7 @@ class WpaSupplicant:
|
||||||
while True:
|
while True:
|
||||||
while self.global_mon.pending():
|
while self.global_mon.pending():
|
||||||
ev = self.global_mon.recv()
|
ev = self.global_mon.recv()
|
||||||
logger.debug(self.ifname + "(global): " + ev)
|
logger.debug(self.global_dbg + self.ifname + "(global): " + ev)
|
||||||
for event in events:
|
for event in events:
|
||||||
if event in ev:
|
if event in ev:
|
||||||
return ev
|
return ev
|
||||||
|
@ -752,11 +756,11 @@ class WpaSupplicant:
|
||||||
count_global = 0
|
count_global = 0
|
||||||
while self.mon.pending():
|
while self.mon.pending():
|
||||||
ev = self.mon.recv()
|
ev = self.mon.recv()
|
||||||
logger.debug(self.ifname + ": " + ev)
|
logger.debug(self.dbg + ": " + ev)
|
||||||
count_iface += 1
|
count_iface += 1
|
||||||
while self.global_mon and self.global_mon.pending():
|
while self.global_mon and self.global_mon.pending():
|
||||||
ev = self.global_mon.recv()
|
ev = self.global_mon.recv()
|
||||||
logger.debug(self.ifname + "(global): " + ev)
|
logger.debug(self.global_dbg + self.ifname + "(global): " + ev)
|
||||||
count_global += 1
|
count_global += 1
|
||||||
return (count_iface, count_global)
|
return (count_iface, count_global)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue