+
+ def wait_connected(self, timeout=10, error="Connection timed out"):
+ ev = self.wait_event(["CTRL-EVENT-CONNECTED"], timeout=timeout)
+ if ev is None:
+ raise Exception(error)
+ return ev
+
+ def wait_disconnected(self, timeout=None, error="Disconnection timed out"):
+ if timeout is None:
+ timeout = 10 if self.hostname is None else 30
+ ev = self.wait_event(["CTRL-EVENT-DISCONNECTED"], timeout=timeout)
+ if ev is None:
+ raise Exception(error)
+ return ev
+
+ def get_group_ifname(self):
+ return self.group_ifname if self.group_ifname else self.ifname
+
+ def get_config(self):
+ res = self.request("DUMP")
+ if res.startswith("FAIL"):
+ raise Exception("DUMP failed")
+ lines = res.splitlines()
+ vals = dict()
+ for l in lines:
+ [name,value] = l.split('=', 1)
+ vals[name] = value
+ return vals
+
+ def asp_provision(self, peer, adv_id, adv_mac, session_id, session_mac,
+ method="1000", info="", status=None, cpt=None, role=None):
+ if status is None:
+ cmd = "P2P_ASP_PROVISION"
+ params = "info='%s' method=%s" % (info, method)
+ else:
+ cmd = "P2P_ASP_PROVISION_RESP"
+ params = "status=%d" % status
+
+ if role is not None:
+ params += " role=" + role
+ if cpt is not None:
+ params += " cpt=" + cpt
+
+ if "OK" not in self.global_request("%s %s adv_id=%s adv_mac=%s session=%d session_mac=%s %s" %
+ (cmd, peer, adv_id, adv_mac, session_id, session_mac, params)):
+ raise Exception("%s request failed" % cmd)