- Merge aicom-network-fixes up to r36381
[reactos.git] / reactos / drivers / network / afd / afd / connect.c
index 8759aca..4c02da6 100644 (file)
@@ -77,6 +77,11 @@ static NTSTATUS NTAPI StreamSocketConnectComplete
     AFD_DbgPrint(MID_TRACE,("Called: FCB %x, FO %x\n",
                            Context, FCB->FileObject));
 
+    if( Irp->Cancel ) {
+       if( FCB ) FCB->ConnectIrp.InFlightRequest = NULL;
+       return STATUS_CANCELLED;
+    }
+
     /* I was wrong about this before as we can have pending writes to a not
      * yet connected socket */
     if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
@@ -84,6 +89,8 @@ static NTSTATUS NTAPI StreamSocketConnectComplete
     AFD_DbgPrint(MID_TRACE,("Irp->IoStatus.Status = %x\n",
                            Irp->IoStatus.Status));
 
+    FCB->ConnectIrp.InFlightRequest = NULL;
+
     if( NT_SUCCESS(Irp->IoStatus.Status) ) {
        FCB->PollState |= AFD_EVENT_CONNECT | AFD_EVENT_SEND;
        AFD_DbgPrint(MID_TRACE,("Going to connected state %d\n", FCB->State));