[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #20287] tcp_output_nagle sends too early

From: Simon Goldschmidt
Subject: [lwip-devel] [bug #20287] tcp_output_nagle sends too early
Date: Mon, 12 Nov 2007 20:09:19 +0000
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv: Gecko/20071025 Firefox/

Follow-up Comment #26, bug #20287 (project lwip):

> Sending anyway if there's a SYN, FIN or RST is a very good idea.

I changed that again:

SYN is always in an extra segment: either the segment including SYN has a
next pointer set (so nagle would send) or pcb->unacked would be NULL (no
segment sent before SYN).

RST is only sent using tcp_rst() which sends directly using ip_output()
(since it doesn't have a pcb to use for the RST).

What remains is FIN. And I think here it is not enough to check pcb->unsent
for FIN, the FIN could be in pcb->unsent->next or even after that. Therefore,
I think it's better to set pcb->flags |= TF_FIN (or something) and to always
send ('disable nagle') if pcb->flags & TF_FIN. That way, once a connection has
been closed, everything enqueued is sent (there won't come anything new
anyway, so waiting - what nagle does - wouldn't help).


Reply to this item at:


  Nachricht geschickt von/durch Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]