Patchwork [U-Boot] net: tftp: Make sure timeout will not effect wrap offset

login
register
mail settings
Submitter rockly
Date Aug. 3, 2013, 10:09 a.m.
Message ID <51FCD6C1.4030908@gmail.com>
Download mbox | patch
Permalink /patch/264417/
State Accepted
Delegated to: Joe Hershberger
Headers show

Comments

rockly - Aug. 3, 2013, 10:09 a.m.
Hi:

When the block 0 store to the memory of client and timeout at this 
moment. Because of no ACK packet,  the server will send block 0 again, 
if this client reconnect to the server at this time , 
TftpBlockWrapOffset will become larger than it should be.

Signed-off-by :     Rockly <rocklygnome@gmail.com>

---

timeout */

Patch

diff --git a/net/tftp.c b/net/tftp.c
index 6d333d5..2e06808 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -281,7 +281,7 @@  static void update_block_number(void)
          * number of 0 this means that there was a wrap
          * around of the (16 bit) counter.
          */
-       if (TftpBlock == 0) {
+       if (TftpBlock == 0 && TftpLastBlock != 0) {
                 TftpBlockWrap++;
                 TftpBlockWrapOffset += TftpBlkSize * TFTP_SEQUENCE_SIZE;
                 TftpTimeoutCount = 0; /* we've done well, reset thhe