mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 23:12:56 +00:00
- Reapply r35481
svn path=/branches/aicom-network-fixes/; revision=35486
This commit is contained in:
parent
df19533df7
commit
3b40e9b047
3 changed files with 25 additions and 5 deletions
|
@ -87,15 +87,15 @@ static NTSTATUS NTAPI ListenComplete
|
||||||
PAFD_FCB FCB = (PAFD_FCB)Context;
|
PAFD_FCB FCB = (PAFD_FCB)Context;
|
||||||
PAFD_TDI_OBJECT_QELT Qelt;
|
PAFD_TDI_OBJECT_QELT Qelt;
|
||||||
|
|
||||||
|
if( Irp->Cancel ) {
|
||||||
|
if( FCB ) FCB->ListenIrp.InFlightRequest = NULL;
|
||||||
|
return STATUS_CANCELLED;
|
||||||
|
}
|
||||||
|
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
||||||
|
|
||||||
FCB->ListenIrp.InFlightRequest = NULL;
|
FCB->ListenIrp.InFlightRequest = NULL;
|
||||||
|
|
||||||
if( Irp->Cancel ) {
|
|
||||||
SocketStateUnlock( FCB );
|
|
||||||
return STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( FCB->State == SOCKET_STATE_CLOSED ) {
|
if( FCB->State == SOCKET_STATE_CLOSED ) {
|
||||||
SocketStateUnlock( FCB );
|
SocketStateUnlock( FCB );
|
||||||
DestroySocket( FCB );
|
DestroySocket( FCB );
|
||||||
|
|
|
@ -233,6 +233,11 @@ NTSTATUS NTAPI ReceiveComplete
|
||||||
|
|
||||||
ASSERT_IRQL(APC_LEVEL);
|
ASSERT_IRQL(APC_LEVEL);
|
||||||
|
|
||||||
|
if( Irp->Cancel ) {
|
||||||
|
if( FCB ) FCB->ReceiveIrp.InFlightRequest = NULL;
|
||||||
|
return STATUS_CANCELLED;
|
||||||
|
}
|
||||||
|
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
||||||
|
|
||||||
FCB->ReceiveIrp.InFlightRequest = NULL;
|
FCB->ReceiveIrp.InFlightRequest = NULL;
|
||||||
|
@ -449,6 +454,11 @@ PacketSocketRecvComplete(
|
||||||
|
|
||||||
AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));
|
AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));
|
||||||
|
|
||||||
|
if( Irp->Cancel ) {
|
||||||
|
if( FCB ) FCB->ReceiveIrp.InFlightRequest = NULL;
|
||||||
|
return STATUS_CANCELLED;
|
||||||
|
}
|
||||||
|
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
|
if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
|
||||||
|
|
||||||
FCB->ReceiveIrp.InFlightRequest = NULL;
|
FCB->ReceiveIrp.InFlightRequest = NULL;
|
||||||
|
|
|
@ -40,6 +40,11 @@ static NTSTATUS NTAPI SendComplete
|
||||||
|
|
||||||
ASSERT_IRQL(APC_LEVEL);
|
ASSERT_IRQL(APC_LEVEL);
|
||||||
|
|
||||||
|
if( Irp->Cancel ) {
|
||||||
|
if( FCB ) FCB->SendIrp.InFlightRequest = NULL;
|
||||||
|
return STATUS_CANCELLED;
|
||||||
|
}
|
||||||
|
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
if( !SocketAcquireStateLock( FCB ) ) return Status;
|
||||||
|
|
||||||
FCB->SendIrp.InFlightRequest = NULL;
|
FCB->SendIrp.InFlightRequest = NULL;
|
||||||
|
@ -170,6 +175,11 @@ static NTSTATUS NTAPI PacketSocketSendComplete
|
||||||
Irp->IoStatus.Status,
|
Irp->IoStatus.Status,
|
||||||
Irp->IoStatus.Information));
|
Irp->IoStatus.Information));
|
||||||
|
|
||||||
|
if( Irp->Cancel ) {
|
||||||
|
if( FCB ) FCB->SendIrp.InFlightRequest = NULL;
|
||||||
|
return STATUS_CANCELLED;
|
||||||
|
}
|
||||||
|
|
||||||
/* It's ok if the FCB already died */
|
/* It's ok if the FCB already died */
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return STATUS_SUCCESS;
|
if( !SocketAcquireStateLock( FCB ) ) return STATUS_SUCCESS;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue