From mboxrd@z Thu Jan 1 00:00:00 1970 From: rockly Date: Sat, 03 Aug 2013 18:09:05 +0800 Subject: [U-Boot] [PATCH] net: tftp: Make sure timeout will not effect wrap offset Message-ID: <51FCD6C1.4030908@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 --- 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 timeout */