def loop()

in tools/tftp_tester.py [0:0]


    def loop(self):
        finished = False
        current = 0
        data = self.send_and_expect(self.gen_RRQ(), TFTP.OACK, current)
        oack = data.decode("ascii").split("\x00")
        self.actual_blksize = int(oack[4])

        while not finished:
            resp = self.send_and_expect(self.gen_ACK(current), TFTP.DATA, current)
            num = get_packet_num(resp)
            data = get_packet_data(resp)
            if num > current:
                current = num
                self.hash.update(data)

            if len(data) < self.actual_blksize:
                finished = True
                # pretend the last ack was lost in transit
                while -1 in self.failsend:
                    self.failsend.remove(-1)
                    time.sleep(self.timeout)
                self.sock.sendto(self.gen_ACK(current), (self.server, self.port))
                print("\rFinished")