Dear Simon, Could you inform me how the wget test was broken? As I explained in the commit log, I fixed the bug in specific conditions. Without the details of how the break happened, it is difficult to find a proper patch.
Best regards, Yasuharu Shibata On Sun, 11 Aug 2024 at 05:52, Simon Glass <s...@chromium.org> wrote: > > This breaks the wget tests, so revert it until a proper fix can be > figured out. > > This reverts commit cab7867cff33f9c21025102ea9ca3b26e362fb52. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > net/wget.c | 16 +++++----------- > 1 file changed, 5 insertions(+), 11 deletions(-) > > diff --git a/net/wget.c b/net/wget.c > index f1dd7abeff6..5eabb413116 100644 > --- a/net/wget.c > +++ b/net/wget.c > @@ -49,7 +49,6 @@ static unsigned long content_length; > static unsigned int packets; > > static unsigned int initial_data_seq_num; > -static unsigned int next_data_seq_num; > > static enum wget_state current_wget_state; > > @@ -272,18 +271,17 @@ static void wget_connected(uchar *pkt, unsigned int > tcp_seq_num, > > current_wget_state = WGET_TRANSFERRING; > > - initial_data_seq_num = tcp_seq_num + hlen; > - next_data_seq_num = tcp_seq_num + len; > - > if (strstr((char *)pkt, http_ok) == 0) { > debug_cond(DEBUG_WGET, > "wget: Connected Bad Xfer\n"); > + initial_data_seq_num = tcp_seq_num + hlen; > wget_loop_state = NETLOOP_FAIL; > wget_send(action, tcp_seq_num, tcp_ack_num, len); > } else { > debug_cond(DEBUG_WGET, > "wget: Connctd pkt %p hlen %x\n", > pkt, hlen); > + initial_data_seq_num = tcp_seq_num + hlen; > > pos = strstr((char *)pkt, content_len); > if (!pos) { > @@ -397,13 +395,9 @@ static void wget_handler(uchar *pkt, u16 dport, > "wget: Transferring, seq=%x, ack=%x,len=%x\n", > tcp_seq_num, tcp_ack_num, len); > > - if (next_data_seq_num != tcp_seq_num) { > - debug_cond(DEBUG_WGET, "wget: seq=%x packet was > lost\n", next_data_seq_num); > - return; > - } > - next_data_seq_num = tcp_seq_num + len; > - > - if (store_block(pkt, tcp_seq_num - initial_data_seq_num, len) > != 0) { > + if (tcp_seq_num >= initial_data_seq_num && > + store_block(pkt, tcp_seq_num - initial_data_seq_num, > + len) != 0) { > wget_fail("wget: store error\n", > tcp_seq_num, tcp_ack_num, action); > net_set_state(NETLOOP_FAIL); > -- > 2.34.1 >