-/* $Id$
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: drivers/net/afd/afd/listen.c
* UPDATE HISTORY:
* 20040708 Created
*/
+
#include "afd.h"
static NTSTATUS SatisfyAccept( PAFD_DEVICE_EXTENSION DeviceExt,
PAFD_FCB FCB = NewFileObject->FsContext;
NTSTATUS Status;
+ UNREFERENCED_PARAMETER(DeviceExt);
+
if( !SocketAcquireStateLock( FCB ) )
return LostSocket( Irp );
/* Transfer the connection to the new socket, launch the opening read */
- AFD_DbgPrint(MID_TRACE,("Completing a real accept (FCB %x)\n", FCB));
+ AFD_DbgPrint(MID_TRACE,("Completing a real accept (FCB %p)\n", FCB));
FCB->Connection = Qelt->Object;
- if( FCB->RemoteAddress ) ExFreePool( FCB->RemoteAddress );
+ if (FCB->RemoteAddress)
+ {
+ ExFreePoolWithTag(FCB->RemoteAddress, TAG_AFD_TRANSPORT_ADDRESS);
+ }
+
FCB->RemoteAddress =
TaCopyTransportAddress( Qelt->ConnInfo->RemoteAddress );
ListenReceive->SequenceNumber = Qelt->Seq;
- AFD_DbgPrint(MID_TRACE,("Giving SEQ %d to userland\n", Qelt->Seq));
- AFD_DbgPrint(MID_TRACE,("Socket Address (K) %x (U) %x\n",
+ AFD_DbgPrint(MID_TRACE,("Giving SEQ %u to userland\n", Qelt->Seq));
+ AFD_DbgPrint(MID_TRACE,("Socket Address (K) %p (U) %p\n",
&ListenReceive->Address,
Qelt->ConnInfo->RemoteAddress));
AFD_DbgPrint(MID_TRACE,("IPAddr->TAAddressCount %d\n",
IPAddr->TAAddressCount));
- AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].AddressType %d\n",
+ AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].AddressType %u\n",
IPAddr->Address[0].AddressType));
- AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].AddressLength %d\n",
+ AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].AddressLength %u\n",
IPAddr->Address[0].AddressLength));
AFD_DbgPrint(MID_TRACE,("IPAddr->Address[0].Address[0].sin_port %x\n",
IPAddr->Address[0].Address[0].sin_port));
return STATUS_SUCCESS;
}
+static IO_COMPLETION_ROUTINE ListenComplete;
static NTSTATUS NTAPI ListenComplete( PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context ) {
PLIST_ENTRY NextIrpEntry;
PIRP NextIrp;
+ UNREFERENCED_PARAMETER(DeviceObject);
+
if( !SocketAcquireStateLock( FCB ) )
return STATUS_FILE_CLOSED;
/* Free ConnectionReturnInfo and ConnectionCallInfo */
if (FCB->ListenIrp.ConnectionReturnInfo)
{
- ExFreePool(FCB->ListenIrp.ConnectionReturnInfo);
+ ExFreePoolWithTag(FCB->ListenIrp.ConnectionReturnInfo,
+ TAG_AFD_TDI_CONNECTION_INFORMATION);
+
FCB->ListenIrp.ConnectionReturnInfo = NULL;
}
if (FCB->ListenIrp.ConnectionCallInfo)
{
- ExFreePool(FCB->ListenIrp.ConnectionCallInfo);
+ ExFreePoolWithTag(FCB->ListenIrp.ConnectionCallInfo,
+ TAG_AFD_TDI_CONNECTION_INFORMATION);
+
FCB->ListenIrp.ConnectionCallInfo = NULL;
}
return Irp->IoStatus.Status;
}
- Qelt = ExAllocatePool( NonPagedPool, sizeof(*Qelt) );
+ Qelt = ExAllocatePoolWithTag(NonPagedPool,
+ sizeof(*Qelt),
+ TAG_AFD_ACCEPT_QUEUE);
+
if( !Qelt ) {
Status = STATUS_NO_MEMORY;
} else {
Qelt->Object = FCB->Connection;
Qelt->Seq = FCB->ConnSeq++;
- AFD_DbgPrint(MID_TRACE,("Address Type: %d (RA %x)\n",
+ AFD_DbgPrint(MID_TRACE,("Address Type: %u (RA %p)\n",
AddressType,
FCB->ListenIrp.
ConnectionReturnInfo->RemoteAddress));
FCB->Connection.Object,
&FCB->ListenIrp.ConnectionCallInfo,
&FCB->ListenIrp.ConnectionReturnInfo,
- &FCB->ListenIrp.Iosb,
ListenComplete,
FCB );
PAFD_FCB FCB = FileObject->FsContext;
PAFD_LISTEN_DATA ListenReq;
- AFD_DbgPrint(MID_TRACE,("Called on %x\n", FCB));
+ UNREFERENCED_PARAMETER(DeviceObject);
+
+ AFD_DbgPrint(MID_TRACE,("Called on %p\n", FCB));
if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp );
FCB->DelayedAccept = ListenReq->UseDelayedAcceptance;
- AFD_DbgPrint(MID_TRACE,("ADDRESSFILE: %x\n", FCB->AddressFile.Handle));
+ AFD_DbgPrint(MID_TRACE,("ADDRESSFILE: %p\n", FCB->AddressFile.Handle));
Status = WarmSocketForConnection( FCB );
if (!NT_SUCCESS(Status))
{
- ExFreePool(FCB->ListenIrp.ConnectionCallInfo);
+ ExFreePoolWithTag(FCB->ListenIrp.ConnectionCallInfo,
+ TAG_AFD_TDI_CONNECTION_INFORMATION);
+
FCB->ListenIrp.ConnectionCallInfo = NULL;
return UnlockAndMaybeComplete(FCB, Status, Irp, 0);
}
FCB->Connection.Object,
&FCB->ListenIrp.ConnectionCallInfo,
&FCB->ListenIrp.ConnectionReturnInfo,
- &FCB->ListenIrp.Iosb,
ListenComplete,
FCB );
PAFD_FCB FCB = FileObject->FsContext;
NTSTATUS Status;
+ UNREFERENCED_PARAMETER(DeviceObject);
+
AFD_DbgPrint(MID_TRACE,("Called\n"));
if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp );
PAFD_TDI_OBJECT_QELT PendingConnObj =
CONTAINING_RECORD( PendingConn, AFD_TDI_OBJECT_QELT, ListEntry );
- AFD_DbgPrint(MID_TRACE,("Comparing Seq %d to Q %d\n",
+ AFD_DbgPrint(MID_TRACE,("Comparing Seq %u to Q %u\n",
AcceptData->SequenceNumber,
PendingConnObj->Seq));
AFD_DbgPrint(MID_TRACE,("Completed a wait for accept\n"));
- ExFreePool( PendingConnObj );
+ ExFreePoolWithTag(PendingConnObj, TAG_AFD_ACCEPT_QUEUE);
if( !IsListEmpty( &FCB->PendingConnections ) )
{