[LWIP]
authorCameron Gutman <aicommander@gmail.com>
Mon, 12 Aug 2013 04:58:22 +0000 (04:58 +0000)
committerCameron Gutman <aicommander@gmail.com>
Mon, 12 Aug 2013 04:58:22 +0000 (04:58 +0000)
- Indicate the graceful close before calling the FIN event handler

svn path=/trunk/; revision=59707

reactos/lib/drivers/lwip/src/rostcp.c

index 2acb935..44a865a 100755 (executable)
@@ -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);
         }
     }