mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
Never call TdiCloseDevice when warming up a socket
svn path=/trunk/; revision=29174
This commit is contained in:
@@ -14,29 +14,24 @@
|
||||
#include "debug.h"
|
||||
|
||||
NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) {
|
||||
NTSTATUS Status = STATUS_UNSUCCESSFUL;
|
||||
NTSTATUS Status;
|
||||
|
||||
AFD_DbgPrint(MID_TRACE,("Called (AF %d)\n",
|
||||
FCB->LocalAddress->Address[0].AddressType));
|
||||
FCB->LocalAddress->Address[0].AddressType));
|
||||
|
||||
if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) {
|
||||
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
}
|
||||
if( !FCB->LocalAddress ) {
|
||||
AFD_DbgPrint(MID_TRACE,("No local address\n"));
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
|
||||
if( FCB->LocalAddress ) {
|
||||
Status = TdiOpenAddressFile
|
||||
( &FCB->TdiDeviceName,
|
||||
FCB->LocalAddress,
|
||||
&FCB->AddressFile.Handle,
|
||||
&FCB->AddressFile.Object );
|
||||
}
|
||||
|
||||
if( !NT_SUCCESS(Status) ) {
|
||||
TdiCloseDevice( &FCB->AddressFile.Handle,
|
||||
FCB->AddressFile.Object );
|
||||
RtlZeroMemory( &FCB->AddressFile, sizeof( FCB->AddressFile ) );
|
||||
}
|
||||
Status = TdiOpenAddressFile(&FCB->TdiDeviceName,
|
||||
FCB->LocalAddress,
|
||||
&FCB->AddressFile.Handle,
|
||||
&FCB->AddressFile.Object );
|
||||
|
||||
AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
|
||||
|
||||
|
||||
@@ -16,25 +16,17 @@ NTSTATUS WarmSocketForConnection( PAFD_FCB FCB ) {
|
||||
NTSTATUS Status;
|
||||
|
||||
if( !FCB->TdiDeviceName.Length || !FCB->TdiDeviceName.Buffer ) {
|
||||
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
||||
return STATUS_NO_SUCH_DEVICE;
|
||||
}
|
||||
|
||||
Status = TdiOpenConnectionEndpointFile
|
||||
( &FCB->TdiDeviceName,
|
||||
&FCB->Connection.Handle,
|
||||
&FCB->Connection.Object );
|
||||
Status = TdiOpenConnectionEndpointFile(&FCB->TdiDeviceName,
|
||||
&FCB->Connection.Handle,
|
||||
&FCB->Connection.Object );
|
||||
|
||||
if( NT_SUCCESS(Status) ) {
|
||||
Status = TdiAssociateAddressFile
|
||||
( FCB->AddressFile.Handle,
|
||||
FCB->Connection.Object );
|
||||
}
|
||||
|
||||
if( !NT_SUCCESS(Status) ) {
|
||||
TdiCloseDevice( &FCB->Connection.Handle,
|
||||
FCB->Connection.Object );
|
||||
RtlZeroMemory( &FCB->Connection, sizeof(FCB->Connection) );
|
||||
Status = TdiAssociateAddressFile( FCB->AddressFile.Handle,
|
||||
FCB->Connection.Object );
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
||||
Reference in New Issue
Block a user