[PATCH 7/7] net/tftp: make tftpput working with servers that do not use OACK

mikhail.kshevetskiy at iopsys.eu mikhail.kshevetskiy at iopsys.eu
Thu Oct 6 05:18:13 CEST 2022


From: Mikhail Kshevetskiy <mikhail.kshevetskiy at iopsys.eu>

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy at iopsys.eu>
---
 net/tftp.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/net/tftp.c b/net/tftp.c
index dea9c25ffd..e120e4d766 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -483,8 +483,15 @@ static void tftp_handler(uchar *pkt, unsigned dest, struct in_addr sip,
 				tftp_prev_block = tftp_cur_block;
 				tftp_cur_block = (unsigned short)(block + 1);
 				update_block_number();
-				if (ack_ok)
+				if (ack_ok) {
+					if (block == 0 &&
+					    tftp_state == STATE_SEND_WRQ){
+						/* connection's first ACK */
+						tftp_state = STATE_DATA;
+						tftp_remote_port = src;
+					}
 					tftp_send(); /* Send next data block */
+				}
 			}
 		}
 #endif
-- 
2.35.1



More information about the U-Boot mailing list