def handle(self, msg, arg): genlh = genl.genlmsg_hdr(nl.nlmsg_hdr(msg)) # A schedule scan is complete immediately when it gets started if genlh.cmd in [ nl80211.CMD_START_SCHED_SCAN ]: self.scan_busy = False return nl.NL_SKIP
def handle(self, msg, arg): genlh = genlmsg_hdr(nlmsg_hdr(msg)) # A schedule scan is complete immediately when it gets started if genlh.cmd in [nl80211.CMD_START_SCHED_SCAN]: self.scan_busy = False return NL_SKIP
def handle(self, msg, arg): genlh = genl.genlmsg_hdr(nl.nlmsg_hdr(msg)) # A regular scan is complete when we get scan results if genlh.cmd in [ nl80211.CMD_SCAN_ABORTED, nl80211.CMD_NEW_SCAN_RESULTS ]: self.scan_busy = False return nl.NL_SKIP
def handle(self, msg, arg): genlh = genlmsg_hdr(nlmsg_hdr(msg)) # A regular scan is complete when we get scan results if genlh.cmd in [ nl80211.CMD_SCAN_ABORTED, nl80211.CMD_NEW_SCAN_RESULTS ]: self.scan_busy = False return NL_SKIP
def handle(self, msg, arg): genlh = genlmsg_hdr(nlmsg_hdr(msg)) if genlh.cmd in [nl80211.CMD_SCHED_SCAN_STOPPED]: self.scan_busy = False return NL_SKIP
def __init__(self, msg, errno): self._cmd = genl.genlmsg_hdr(msg.hdr).cmd self._errno = errno
def handle(self, msg, arg): genlh = genl.genlmsg_hdr(nl.nlmsg_hdr(msg)) if genlh.cmd in [ nl80211.CMD_SCHED_SCAN_STOPPED ]: self.scan_busy = False return nl.NL_SKIP
def __init__(self, msg, errno): self._cmd = genlmsg_hdr(nlmsg_hdr(msg)).cmd self._errno = errno
def handle(self, m): logger.debug("Handle Msg from class") print("m",m) try: logger.debug("getting msg header") nlmsghdr = nl.nlmsg_hdr(m) # print("nlmsghdr: flags:", nlmsghdr.nlmsg_flags , "seq:", nlmsghdr.nlmsg_seq ) logger.debug("getting genlmsg header") genlhdr = genl.genlmsg_hdr( nlmsghdr ) # logger.debug("Generic Command", genlhdr.cmd) if not genlhdr: logger.error("Could not get generic header") return nl.NL_STOP if genlhdr.cmd == ELC_REQUEST_RLOCS_FOR_EID: logger.info("Request RLOC for an EID") # attrs = None # print("Message handler got called"); err, attrs = genl.py_genlmsg_parse( nlmsghdr, 0, # will be returned as an attribute ELA_MAX, None ) if err < 0: logger.error("An error happened while parsing attributes") return nl.NL_STOP; logger.info("Looking for ELA") if ELA_EID in attrs: # logger.debug ("hello", attrs[ELA_EID]) eid = nl.nla_get_u32(attrs[ELA_EID]); # logger.info ("eid", eid) # logger.debug ("token", attrs[ELA_MPTCP_TOKEN]) token = nl.nla_get_u32(attrs[ELA_MPTCP_TOKEN]); # logger.info("token", token) # print("Requested EID ",eid, " for token ",binascii.hexlify( token )) # I => unsigned int packed_value = struct.pack('I', eid) addr = socket.inet_ntoa(packed_value) nb = self.retrieve_number_of_rlocs( addr ) if nb < 0: logger.warning("An error happened while retrieveing nb of rlocs") return nl.NL_STOP else: #nlmsghdr.nlmsg_seq + 1 self.send_rlocs_list_for_eid( 0, token, nb ) return nl.NL_SKIP else: logger.error("Missing critical attribute in packet") else: logger.warning("Unhandled command %d"% genlhdr.cmd) # nlmsg_data returns void* so not usable straightaway # TODO need to retrieve command # print("e", err) return nl.NL_SKIP except Exception as e: (t,v,tb) = sys.exc_info() print( "test", v.message,e ) traceback.print_tb(tb) return nl.NL_SKIP
def handle(self, m): logger.debug("Handle Msg from class") print("m", m) try: logger.debug("getting msg header") nlmsghdr = nl.nlmsg_hdr(m) # print("nlmsghdr: flags:", nlmsghdr.nlmsg_flags , "seq:", nlmsghdr.nlmsg_seq ) logger.debug("getting genlmsg header") genlhdr = genl.genlmsg_hdr(nlmsghdr) # logger.debug("Generic Command", genlhdr.cmd) if not genlhdr: logger.error("Could not get generic header") return nl.NL_STOP if genlhdr.cmd == ELC_REQUEST_RLOCS_FOR_EID: logger.info("Request RLOC for an EID") # attrs = None # print("Message handler got called"); err, attrs = genl.py_genlmsg_parse( nlmsghdr, 0, # will be returned as an attribute ELA_MAX, None) if err < 0: logger.error("An error happened while parsing attributes") return nl.NL_STOP logger.info("Looking for ELA") if ELA_EID in attrs: # logger.debug ("hello", attrs[ELA_EID]) eid = nl.nla_get_u32(attrs[ELA_EID]) # logger.info ("eid", eid) # logger.debug ("token", attrs[ELA_MPTCP_TOKEN]) token = nl.nla_get_u32(attrs[ELA_MPTCP_TOKEN]) # logger.info("token", token) # print("Requested EID ",eid, " for token ",binascii.hexlify( token )) # I => unsigned int packed_value = struct.pack('I', eid) addr = socket.inet_ntoa(packed_value) nb = self.retrieve_number_of_rlocs(addr) if nb < 0: logger.warning( "An error happened while retrieveing nb of rlocs") return nl.NL_STOP else: #nlmsghdr.nlmsg_seq + 1 self.send_rlocs_list_for_eid(0, token, nb) return nl.NL_SKIP else: logger.error("Missing critical attribute in packet") else: logger.warning("Unhandled command %d" % genlhdr.cmd) # nlmsg_data returns void* so not usable straightaway # TODO need to retrieve command # print("e", err) return nl.NL_SKIP except Exception as e: (t, v, tb) = sys.exc_info() print("test", v.message, e) traceback.print_tb(tb) return nl.NL_SKIP