diff options
author | Harm Berntsen <harm.berntsen@nedap.com> | 2020-11-28 00:45:56 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2021-01-19 17:15:02 +0300 |
commit | beb61e13b8134c9aeaf1b2c0a2e13ed71d3be59e (patch) | |
tree | 06ba542b2ae61abc2320f83530e78053f1c64de8 /net | |
parent | 51723c5581241a3886a5adaa780c09138163d0b2 (diff) | |
download | u-boot-beb61e13b8134c9aeaf1b2c0a2e13ed71d3be59e.tar.xz |
net: tftp: Fix incorrect tftp_next_ack on no OACK
When the tftp server did not send any OACK, the tftp_next_ack variable
was not set to the correct value . As the server was transmitting
blocks we generated a lot of 'Received unexpected block: $n, expected
$n+1' error messages. Depending on the timeout setting the transfer
could still complete though.
Signed-off-by: Harm Berntsen <harm.berntsen@nedap.com>
CC: Ramon Fried <rfried.dev@gmail.com>
Reviewed-By: Ramon Fried <rfried.dev@gmail.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/tftp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/tftp.c b/net/tftp.c index 2cfa0b1486..03079ded34 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -630,8 +630,10 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip, tftp_cur_block++; tftp_cur_block %= TFTP_SEQUENCE_SIZE; - if (tftp_state == STATE_SEND_RRQ) + if (tftp_state == STATE_SEND_RRQ) { debug("Server did not acknowledge any options!\n"); + tftp_next_ack = tftp_windowsize; + } if (tftp_state == STATE_SEND_RRQ || tftp_state == STATE_OACK || tftp_state == STATE_RECV_WRQ) { |