From 6b245eee923eaa08f3a798892caa358e31d3f31d Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 10 Apr 2009 02:38:45 +0000 Subject: [PATCH] - Complete send requests along with the other types when we get an EOF - Fail the requests with STATUS_CANCELLED svn path=/trunk/; revision=40436 --- reactos/lib/drivers/ip/transport/tcp/tcp.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/reactos/lib/drivers/ip/transport/tcp/tcp.c b/reactos/lib/drivers/ip/transport/tcp/tcp.c index 4c143d2a2da..2d594ac2353 100644 --- a/reactos/lib/drivers/ip/transport/tcp/tcp.c +++ b/reactos/lib/drivers/ip/transport/tcp/tcp.c @@ -218,27 +218,22 @@ static VOID HandleSignalledConnection( PCONNECTION_ENDPOINT Connection, if( NewState & SEL_FIN ) { PLIST_ENTRY ListsToErase[4]; - NTSTATUS IrpStatus[4]; UINT i; TI_DbgPrint(DEBUG_TCP, ("EOF From socket\n")); ListsToErase[0] = &Connection->ReceiveRequest; - IrpStatus [0] = STATUS_SUCCESS; ListsToErase[1] = &Connection->ListenRequest; - IrpStatus [1] = STATUS_UNSUCCESSFUL; ListsToErase[2] = &Connection->ConnectRequest; - IrpStatus [2] = STATUS_UNSUCCESSFUL; - ListsToErase[3] = 0; - IrpStatus [3] = 0; + ListsToErase[3] = &Connection->SendRequest; - for( i = 0; ListsToErase[i]; i++ ) { + for( i = 0; i < 4; i++ ) { while( !IsListEmpty( ListsToErase[i] ) ) { Entry = RemoveHeadList( ListsToErase[i] ); Bucket = CONTAINING_RECORD( Entry, TDI_BUCKET, Entry ); Complete = Bucket->Request.RequestNotifyObject; - Complete( Bucket->Request.RequestContext, IrpStatus[i], 0 ); - exFreePool( Bucket ); + Complete( Bucket->Request.RequestContext, STATUS_CANCELLED, 0 ); + exFreePool( Bucket ); } } }