net: tftpput: reset timeout_count when an ACK is received
authorJerome Forissier <jerome.forissier@linaro.org>
Fri, 29 Nov 2024 14:47:32 +0000 (15:47 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 1 Jan 2025 20:40:04 +0000 (14:40 -0600)
timeout_count is never reset once a tftpput transfer has started. If for
whatever reason timeouts occur frequently, but the server keeps replying
nonetheless, the transfer may be needlessly aborted.

Reset timer_count on reception of an ACK to avoid this situation.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
net/tftp.c

index 8f94820..fd9c949 100644 (file)
@@ -478,6 +478,7 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
        case TFTP_ACK:
 #ifdef CONFIG_CMD_TFTPPUT
                if (tftp_put_active) {
+                       timeout_count = 0;
                        if (tftp_put_final_block_sent) {
                                tftp_complete();
                        } else {