2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1161): <RRQDatagram(filename=bootx64.efi, mode=octet, options={'tsize': '0', 'blksize': '1468'})>
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1161): <RRQDatagram(filename=bootx64.efi, mode=octet, options={'tsize': '0', 'blksize': '1468'})>
2015-02-03 17:40:17+0000 [-] RemoteOriginReadSession starting on 51426
2015-02-03 17:40:17+0000 [-] RemoteOriginReadSession starting on 51426
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f45f0>
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f45f0>
2015-02-03 17:40:17+0000 [RemoteOriginReadSession (UDP)] Got error: <tftp.datagram.ERRORDatagram object at 0x7fc4416e8a90>
2015-02-03 17:40:17+0000 [RemoteOriginReadSession (UDP)] Got error: <tftp.datagram.ERRORDatagram object at 0x7fc4416e8a90>
First attempt to transfer bootx64.efi, fails with the "Terminate transfer due to option negotiation" error (no stacktrace thanks to the patch)
2015-02-03 17:40:17+0000 [-] (UDP Port 51426 Closed)
2015-02-03 17:40:17+0000 [-] (UDP Port 51426 Closed)
2015-02-03 17:40:17+0000 [-] Stopping protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f45f0>
2015-02-03 17:40:17+0000 [-] Stopping protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f45f0>
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1162): <RRQDatagram(filename=bootx64.efi, mode=octet, options={'blksize': '1468'})>
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1162): <RRQDatagram(filename=bootx64.efi, mode=octet, options={'blksize': '1468'})>
2015-02-03 17:40:17+0000 [-] RemoteOriginReadSession starting on 34911
2015-02-03 17:40:17+0000 [-] RemoteOriginReadSession starting on 34911
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f0440>
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap.RemoteOriginReadSession instance at 0x7fc4416f0440>
2015-02-03 17:40:17+0000 [RemoteOriginReadSession (UDP)] Final ACK received, transfer successful
2015-02-03 17:40:17+0000 [RemoteOriginReadSession (UDP)] Final ACK received, transfer successful
Second attempt to transfer the same file (bootx64.efi); this time the transfer is successful (note how the original request didn't contain the 'tsize' this time, probably because the value was '0' the first time, and that's why the first request failed)
It seems the patch worked as expected:
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1161): <RRQDatagram( filename= bootx64. efi, mode=octet, options={'tsize': '0', 'blksize': '1468'})> filename= bootx64. efi, mode=octet, options={'tsize': '0', 'blksize': '1468'})> dSession starting on 51426 dSession starting on 51426 .RemoteOriginRe adSession instance at 0x7fc4416f45f0> .RemoteOriginRe adSession instance at 0x7fc4416f45f0> adSession (UDP)] Got error: <tftp.datagram. ERRORDatagram object at 0x7fc4416e8a90> adSession (UDP)] Got error: <tftp.datagram. ERRORDatagram object at 0x7fc4416e8a90>
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1161): <RRQDatagram(
2015-02-03 17:40:17+0000 [-] RemoteOriginRea
2015-02-03 17:40:17+0000 [-] RemoteOriginRea
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [RemoteOriginRe
2015-02-03 17:40:17+0000 [RemoteOriginRe
First attempt to transfer bootx64.efi, fails with the "Terminate transfer due to option negotiation" error (no stacktrace thanks to the patch)
2015-02-03 17:40:17+0000 [-] (UDP Port 51426 Closed) .RemoteOriginRe adSession instance at 0x7fc4416f45f0> .RemoteOriginRe adSession instance at 0x7fc4416f45f0> filename= bootx64. efi, mode=octet, options={'blksize': '1468'})> filename= bootx64. efi, mode=octet, options={'blksize': '1468'})> dSession starting on 34911 dSession starting on 34911 .RemoteOriginRe adSession instance at 0x7fc4416f0440> .RemoteOriginRe adSession instance at 0x7fc4416f0440> adSession (UDP)] Final ACK received, transfer successful adSession (UDP)] Final ACK received, transfer successful
2015-02-03 17:40:17+0000 [-] (UDP Port 51426 Closed)
2015-02-03 17:40:17+0000 [-] Stopping protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [-] Stopping protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1162): <RRQDatagram(
2015-02-03 17:40:17+0000 [TFTP (UDP)] Datagram received from ('10.61.163.200', 1162): <RRQDatagram(
2015-02-03 17:40:17+0000 [-] RemoteOriginRea
2015-02-03 17:40:17+0000 [-] RemoteOriginRea
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [-] Starting protocol <tftp.bootstrap
2015-02-03 17:40:17+0000 [RemoteOriginRe
2015-02-03 17:40:17+0000 [RemoteOriginRe
Second attempt to transfer the same file (bootx64.efi); this time the transfer is successful (note how the original request didn't contain the 'tsize' this time, probably because the value was '0' the first time, and that's why the first request failed)