mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:25:39 +00:00
Never call TdiCloseDevice when warming up a socket
svn path=/trunk/; revision=29174
This commit is contained in:
parent
e6ed27d2e5
commit
d0f1fadb7b
2 changed files with 19 additions and 32 deletions
|
@ -14,7 +14,7 @@
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
|
||||||
NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) {
|
NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) {
|
||||||
NTSTATUS Status = STATUS_UNSUCCESSFUL;
|
NTSTATUS Status;
|
||||||
|
|
||||||
AFD_DbgPrint(MID_TRACE,("Called (AF %d)\n",
|
AFD_DbgPrint(MID_TRACE,("Called (AF %d)\n",
|
||||||
FCB->LocalAddress->Address[0].AddressType));
|
FCB->LocalAddress->Address[0].AddressType));
|
||||||
|
@ -23,20 +23,15 @@ NTSTATUS WarmSocketForBind( PAFD_FCB FCB ) {
|
||||||
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
AFD_DbgPrint(MID_TRACE,("Null Device\n"));
|
||||||
return STATUS_NO_SUCH_DEVICE;
|
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,
|
||||||
Status = TdiOpenAddressFile
|
|
||||||
( &FCB->TdiDeviceName,
|
|
||||||
FCB->LocalAddress,
|
FCB->LocalAddress,
|
||||||
&FCB->AddressFile.Handle,
|
&FCB->AddressFile.Handle,
|
||||||
&FCB->AddressFile.Object );
|
&FCB->AddressFile.Object );
|
||||||
}
|
|
||||||
|
|
||||||
if( !NT_SUCCESS(Status) ) {
|
|
||||||
TdiCloseDevice( &FCB->AddressFile.Handle,
|
|
||||||
FCB->AddressFile.Object );
|
|
||||||
RtlZeroMemory( &FCB->AddressFile, sizeof( FCB->AddressFile ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
|
AFD_DbgPrint(MID_TRACE,("Returning %x\n", Status));
|
||||||
|
|
||||||
|
|
|
@ -20,23 +20,15 @@ NTSTATUS WarmSocketForConnection( PAFD_FCB FCB ) {
|
||||||
return STATUS_NO_SUCH_DEVICE;
|
return STATUS_NO_SUCH_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
Status = TdiOpenConnectionEndpointFile
|
Status = TdiOpenConnectionEndpointFile(&FCB->TdiDeviceName,
|
||||||
( &FCB->TdiDeviceName,
|
|
||||||
&FCB->Connection.Handle,
|
&FCB->Connection.Handle,
|
||||||
&FCB->Connection.Object );
|
&FCB->Connection.Object );
|
||||||
|
|
||||||
if( NT_SUCCESS(Status) ) {
|
if( NT_SUCCESS(Status) ) {
|
||||||
Status = TdiAssociateAddressFile
|
Status = TdiAssociateAddressFile( FCB->AddressFile.Handle,
|
||||||
( FCB->AddressFile.Handle,
|
|
||||||
FCB->Connection.Object );
|
FCB->Connection.Object );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !NT_SUCCESS(Status) ) {
|
|
||||||
TdiCloseDevice( &FCB->Connection.Handle,
|
|
||||||
FCB->Connection.Object );
|
|
||||||
RtlZeroMemory( &FCB->Connection, sizeof(FCB->Connection) );
|
|
||||||
}
|
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue