]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[tcp] Gracefully close connections during shutdown
authorMichael Brown <mcb30@ipxe.org>
Sat, 4 Jul 2015 11:40:04 +0000 (12:40 +0100)
committerMichael Brown <mcb30@ipxe.org>
Sat, 4 Jul 2015 11:51:23 +0000 (12:51 +0100)
commit38afcc51ea6cccbbcc40cc4a5bae1213431943ec
tree7e22748ae4a5f35f14bf2618ccda4c7409f4c842
parent211529a7fe97521acdeaf1f785e48ea3ddd26517
[tcp] Gracefully close connections during shutdown

We currently do not wait for a received FIN before exiting to boot a
loaded OS.  In the common case of booting from an HTTP server, this
means that the TCP connection is left consuming resources on the
server side: the server will retransmit the FIN several times before
giving up.

Fix by initiating a graceful close of all TCP connections and waiting
(for up to one second) for all connections to finish closing
gracefully (i.e. for the outgoing FIN to have been sent and ACKed, and
for the incoming FIN to have been received and ACKed at least once).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/tcp.h
src/net/tcp.c