
From: Mikhail Kshevetskiy mikhail.kshevetskiy@iopsys.eu
Signed-off-by: Mikhail Kshevetskiy mikhail.kshevetskiy@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