Ejemplo n.º 1
0
    def run(self, pcap):
        """
        Run the replayer loop.  The loop will get each consecutive pcap 
        packet and replay it as nearly as possible.
        """
        if self.debug: sys.stderr.write('In Replayer.run\n')
        loops = 0
        if self.debug: self.print_all()

        for ep in self.poll_eps:
            if self.debug:
                sys.stderr.write('Spawning poll thread for endpoint 0x%x\n' %
                                 ep.bEndpointAddress)
            thread = PollThread(ep)
            thread.start()

        if self.debug: sys.stderr.write('Entering Replayer run loop\n')
        while True:
            try:
                if self.debug:
                    sys.stderr.write(
                        '------------------------------------------\n')
                    sys.stderr.write('In Replayer.run: Starting loop: %d \n' %
                                     loops)
                loops += 1
                hdr, pack = pcap.next()
                if hdr is None:
                    break  # EOF

                packet = Packet(hdr, pack)
                if self.debug:
                    sys.stderr.write(
                        'In Replayer.run: Printing pcap field info...\n')
                    packet.print_pcap_fields()
                    sys.stderr.write(
                        'In Replayer.run: Printing pcap summary info...\n')
                    packet.print_pcap_summary()

                # Wait for awhile before sending next usb packet
                self.timer.wait_relative(packet.ts_sec, packet.ts_usec)
                self.send_usb_packet(packet)
            except Exception:
                sys.stderr.write(
                    "Error occured in replayer run loop. Here's the traceback\n"
                )
                traceback.print_exc()
                break
        #wait for keyboard interrupt, let poll threads continue
        while self.poll_eps:
            time.sleep(5)
        self.reset_device()
Ejemplo n.º 2
0
    def run(self, pcap):
        """
        Run the replayer loop.  The loop will get each consecutive pcap 
        packet and replay it as nearly as possible.
        """
        if self.debug: sys.stderr.write( 'In Replayer.run\n')
        loops = 0
        if self.debug: self.print_all()

        for ep in self.poll_eps:
            if self.debug: sys.stderr.write( 'Spawning poll thread for endpoint 0x%x\n' % ep.bEndpointAddress)
            thread = PollThread(ep)
            thread.start()

        if self.debug: sys.stderr.write( 'Entering Replayer run loop\n')
        while True:
            try:
                if self.debug:
                    sys.stderr.write( '------------------------------------------\n')
                    sys.stderr.write( 'In Replayer.run: Starting loop: %d \n' % loops)
                loops += 1
                hdr, pack = pcap.next()
                if hdr is None:
                    break # EOF

                packet = Packet(hdr, pack)
                if self.debug:
                    sys.stderr.write( 'In Replayer.run: Printing pcap field info...\n')
                    packet.print_pcap_fields()
                    sys.stderr.write( 'In Replayer.run: Printing pcap summary info...\n')
                    packet.print_pcap_summary()

                # Wait for awhile before sending next usb packet
                self.timer.wait_relative(packet.ts_sec, packet.ts_usec)
                self.send_usb_packet(packet)
            except Exception:
                sys.stderr.write("Error occured in replayer run loop. Here's the traceback\n")
                traceback.print_exc()
                break
        #wait for keyboard interrupt, let poll threads continue
        while self.poll_eps:
            time.sleep(5)
        self.reset_device()