class ReceiverThread(threading.Thread): __stop = False __network = None def __init__(self, network): self.__network = network self.__iface = get("NETWORK_INTERFACE_" + network) self.listeners = Listeners() super(ReceiverThread, self).__init__() def callback(self, packet): if self.__stop: raise ThreadExit() self.listeners.notifyListeners(packet, self.__network) def run(self): try: filter_text = get("RECEIVER_NETWORK_FILTER_" + self.__network) while True: sniff(iface = self.__iface, prn = self.callback, filter = filter_text, store = 0, timeout = 10) if self.__stop: break except ThreadExit: pass except Exception, ex: print 'Failed', str(ex)
def __wire(self): if self.__listener != None: fragmentation_handler = FragmentationHandler() redundancy_handler = RedundancyHandler() if NETWORK_A in self.__network: self.listeners.append(self.__listener(network = NETWORK_A)) if NETWORK_B in self.__network: self.listeners.append(self.__listener(network = NETWORK_B)) for listener in self.listeners: listener.registerApplication(self) listener.registerIntegrityHandler(IntegrityHandler()) listener.registerFragmentationHandler(fragmentation_handler) listener.registerRedundancyHandler(redundancy_handler) Listeners.registerListener(listener, listener.getNetworkId())
def __init__(self, network): self.__network = network self.__iface = get("NETWORK_INTERFACE_" + network) self.listeners = Listeners() super(ReceiverThread, self).__init__()