diff --git a/CHANGELOG b/CHANGELOG index e31b2985..3c7b2c6e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -41,6 +41,10 @@ HISTORY ++ Bugfixes: + 2011-08-22: Simon Goldschmidt + * tcp_out.c: fixed bug #33962 TF_FIN not always set after FIN is sent. (This + merely prevents nagle from not transmitting fast after closing.) + 2011-07-22: Simon Goldschmidt * api_lib.c, api_msg.c, sockets.c, api.h: fixed bug #31084 (socket API returns always EMSGSIZE on non-blocking sockets if data size > send buffers) -> now diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index 069df893..db9e1157 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -136,6 +136,7 @@ tcp_send_fin(struct tcp_pcb *pcb) if ((TCPH_FLAGS(last_unsent->tcphdr) & (TCP_SYN | TCP_FIN | TCP_RST)) == 0) { /* no SYN/FIN/RST flag in the header, we can add the FIN flag */ TCPH_SET_FLAG(last_unsent->tcphdr, TCP_FIN); + pcb->flags |= TF_FIN; return ERR_OK; } }