Example #1
0
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())
Example #3
0
 def __init__(self, network):
     self.__network = network
     self.__iface   = get("NETWORK_INTERFACE_" + network)
     self.listeners = Listeners()
     super(ReceiverThread, self).__init__()