mirror of
https://github.com/reactos/reactos.git
synced 2024-10-25 07:26:45 +00:00
- Merge aicom-network-fixes up to r35611
svn path=/trunk/; revision=35614
This commit is contained in:
parent
ca33f36d34
commit
3a7a8f1f08
|
@ -330,8 +330,10 @@ NTSTATUS AfdAccept( PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
|||
|
||||
ExFreePool( PendingConnObj );
|
||||
|
||||
if( IsListEmpty( &FCB->PendingConnections ) )
|
||||
if( IsListEmpty( &FCB->PendingConnections ) ) {
|
||||
FCB->PollState &= ~AFD_EVENT_ACCEPT;
|
||||
PollReeval( FCB->DeviceExt, FCB->FileObject );
|
||||
}
|
||||
|
||||
SocketStateUnlock( FCB );
|
||||
return Irp->IoStatus.Status;
|
||||
|
|
|
@ -98,6 +98,7 @@ static NTSTATUS TryToSatisfyRecvRequestFromBuffer( PAFD_FCB FCB,
|
|||
if( FCB->Recv.BytesUsed == FCB->Recv.Content ) {
|
||||
FCB->Recv.BytesUsed = FCB->Recv.Content = 0;
|
||||
FCB->PollState &= ~AFD_EVENT_RECEIVE;
|
||||
PollReeval( FCB->DeviceExt, FCB->FileObject );
|
||||
|
||||
if( !FCB->ReceiveIrp.InFlightRequest ) {
|
||||
AFD_DbgPrint(MID_TRACE,("Replenishing buffer\n"));
|
||||
|
@ -480,12 +481,16 @@ PacketSocketRecvComplete(
|
|||
DatagramRecv->Address =
|
||||
TaCopyTransportAddress( FCB->AddressFrom->RemoteAddress );
|
||||
|
||||
InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry );
|
||||
if( !DatagramRecv->Address ) Status = STATUS_NO_MEMORY;
|
||||
|
||||
} else Status = STATUS_NO_MEMORY;
|
||||
|
||||
if( !NT_SUCCESS( Status ) ) {
|
||||
if( DatagramRecv ) ExFreePool( DatagramRecv );
|
||||
SocketStateUnlock( FCB );
|
||||
return Status;
|
||||
} else {
|
||||
InsertTailList( &FCB->DatagramList, &DatagramRecv->ListEntry );
|
||||
}
|
||||
|
||||
/* Satisfy as many requests as we can */
|
||||
|
|
|
@ -122,8 +122,10 @@ NTSTATUS TdiBuildNullConnectionInfo
|
|||
ExAllocatePool(NonPagedPool,
|
||||
sizeof(TDI_CONNECTION_INFORMATION) +
|
||||
TdiAddressSize);
|
||||
if (!ConnInfo)
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
if (!ConnInfo) {
|
||||
*ConnectionInfo = NULL;
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
Status = TdiBuildNullConnectionInfoInPlace( ConnInfo, Type );
|
||||
|
||||
|
|
|
@ -140,9 +140,10 @@ static NTSTATUS NTAPI SendComplete
|
|||
SocketCalloutLeave( FCB );
|
||||
} else {
|
||||
FCB->PollState |= AFD_EVENT_SEND;
|
||||
PollReeval( FCB->DeviceExt, FCB->FileObject );
|
||||
}
|
||||
|
||||
PollReeval( FCB->DeviceExt, FCB->FileObject );
|
||||
|
||||
if( TotalBytesCopied > 0 ) {
|
||||
UnlockBuffers( SendReq->BufferArray, SendReq->BufferCount, FALSE );
|
||||
|
||||
|
@ -395,6 +396,8 @@ AfdPacketSocketWriteData(PDEVICE_OBJECT DeviceObject, PIRP Irp,
|
|||
FCB->EventsFired &= ~AFD_EVENT_SEND;
|
||||
FCB->PollState &= ~AFD_EVENT_SEND;
|
||||
|
||||
PollReeval( FCB->DeviceExt, FCB->FileObject );
|
||||
|
||||
/* Check that the socket is bound */
|
||||
if( FCB->State != SOCKET_STATE_BOUND )
|
||||
return UnlockAndMaybeComplete
|
||||
|
|
Loading…
Reference in a new issue