- Don't check Status so we don't quit looping after the first unsuccessful IRP

svn path=/branches/aicom-network-fixes/; revision=35152
This commit is contained in:
Cameron Gutman 2008-08-06 22:19:53 +00:00
parent 8856c4a5a2
commit 5345dbe2ae
2 changed files with 8 additions and 8 deletions

View file

@ -168,11 +168,8 @@ static NTSTATUS ReceiveActivity( PAFD_FCB FCB, PIRP Irp ) {
FCB, FCB->Recv.Content)); FCB, FCB->Recv.Content));
/*OskitDumpBuffer( FCB->Recv.Window, FCB->Recv.Content );*/ /*OskitDumpBuffer( FCB->Recv.Window, FCB->Recv.Content );*/
Status = STATUS_SUCCESS;
/* Try to clear some requests */ /* Try to clear some requests */
while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) && while( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) {
NT_SUCCESS(Status) ) {
NextIrpEntry = NextIrpEntry =
RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]); RemoveHeadList(&FCB->PendingIrpList[FUNCTION_RECV]);
NextIrp = NextIrp =
@ -476,10 +473,14 @@ PacketSocketRecvComplete(
InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry ); InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry );
} else Status = STATUS_NO_MEMORY; } else Status = STATUS_NO_MEMORY;
if( !NT_SUCCESS( Status ) ) {
SocketStateUnlock( FCB );
return Status;
}
/* Satisfy as many requests as we can */ /* Satisfy as many requests as we can */
while( NT_SUCCESS(Status) && while( !IsListEmpty( &FCB->DatagramList ) &&
!IsListEmpty( &FCB->DatagramList ) &&
!IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) { !IsListEmpty( &FCB->PendingIrpList[FUNCTION_RECV] ) ) {
AFD_DbgPrint(MID_TRACE,("Looping trying to satisfy request\n")); AFD_DbgPrint(MID_TRACE,("Looping trying to satisfy request\n"));
ListEntry = RemoveHeadList( &FCB->DatagramList ); ListEntry = RemoveHeadList( &FCB->DatagramList );

View file

@ -85,8 +85,7 @@ static NTSTATUS NTAPI SendComplete
FCB->Send.BytesUsed -= Irp->IoStatus.Information; FCB->Send.BytesUsed -= Irp->IoStatus.Information;
if( !FCB->Send.BytesUsed && if( !FCB->Send.BytesUsed &&
!IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) && !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) ) {
NT_SUCCESS(Status) ) {
NextIrpEntry = NextIrpEntry =
RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]); RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]);
NextIrp = NextIrp =