On Fri, Nov 27, 2020 at 11:45 PM Harm Berntsen <harm.bernt...@nedap.com> wrote:
>
> 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.bernt...@nedap.com>
> CC: Ramon Fried <rfried....@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
>
>
Reviewed-By: Ramon Fried <rfried....@gmail.com>