From 84da0d7111b1ce242dea7a80d959e5865c6cbec5 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 12 Aug 2013 04:58:22 +0000 Subject: [PATCH] [LWIP] - Indicate the graceful close before calling the FIN event handler svn path=/trunk/; revision=59707 --- reactos/lib/drivers/lwip/src/rostcp.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/reactos/lib/drivers/lwip/src/rostcp.c b/reactos/lib/drivers/lwip/src/rostcp.c index 2acb93590b0..44a865ab3ca 100755 --- a/reactos/lib/drivers/lwip/src/rostcp.c +++ b/reactos/lib/drivers/lwip/src/rostcp.c @@ -251,12 +251,15 @@ InternalRecvEventHandler(void *arg, PTCP_PCB pcb, struct pbuf *p, const err_t er { Connection->SocketContext = NULL; tcp_arg(pcb, NULL); - TCPFinEventHandler(Connection, ERR_OK); } - else + + /* Indicate the graceful close event */ + TCPRecvEventHandler(arg); + + /* If the PCB is gone, clean up the connection */ + if (Connection->SendShutdown) { - /* Remotely initiated close */ - TCPRecvEventHandler(arg); + TCPFinEventHandler(Connection, ERR_CLSD); } }