mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 08:53:02 +00:00
- Call SocketStateUnlock before returning
- Don't complete the IRP again in the completion routine svn path=/branches/aicom-network-fixes/; revision=35418
This commit is contained in:
parent
e070cbeb39
commit
ec037e4d9d
1 changed files with 5 additions and 2 deletions
|
@ -77,7 +77,7 @@ static NTSTATUS NTAPI StreamSocketConnectComplete
|
||||||
|
|
||||||
/* I was wrong about this before as we can have pending writes to a not
|
/* I was wrong about this before as we can have pending writes to a not
|
||||||
* yet connected socket */
|
* yet connected socket */
|
||||||
if( !SocketAcquireStateLock( FCB ) ) return LostSocket( Irp );
|
if( !SocketAcquireStateLock( FCB ) ) return STATUS_FILE_CLOSED;
|
||||||
|
|
||||||
AFD_DbgPrint(MID_TRACE,("Irp->IoStatus.Status = %x\n",
|
AFD_DbgPrint(MID_TRACE,("Irp->IoStatus.Status = %x\n",
|
||||||
Irp->IoStatus.Status));
|
Irp->IoStatus.Status));
|
||||||
|
@ -108,7 +108,10 @@ static NTSTATUS NTAPI StreamSocketConnectComplete
|
||||||
if( NT_SUCCESS(Status) ) {
|
if( NT_SUCCESS(Status) ) {
|
||||||
Status = MakeSocketIntoConnection( FCB );
|
Status = MakeSocketIntoConnection( FCB );
|
||||||
|
|
||||||
if( !NT_SUCCESS(Status) ) return Status;
|
if( !NT_SUCCESS(Status) ) {
|
||||||
|
SocketStateUnlock( FCB );
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
if( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) ) {
|
if( !IsListEmpty( &FCB->PendingIrpList[FUNCTION_SEND] ) ) {
|
||||||
NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]);
|
NextIrpEntry = RemoveHeadList(&FCB->PendingIrpList[FUNCTION_SEND]);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue