[PATCH] net: tftp: Fix incorrect tftp_next_ack on no OACK
Harm Berntsen
harm.berntsen at nedap.com
Fri Nov 27 22:45:56 CET 2020
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 at nedap.com>
CC: Ramon Fried <rfried.dev at gmail.com>
---
net/tftp.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/tftp.c b/net/tftp.c
index 6fdb1a821a..9371d7ef2c 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -624,8 +624,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) {
--
2.29.2
More information about the U-Boot
mailing list