From 86ff706f301fcfb3cef306bd6b7ecd03e72ef2c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Sat, 2 May 2020 17:10:47 +0200 Subject: [PATCH] tcp: set is_connected flag on our socket without parent too. a client non-blocking socket would otherwise looks non connected. Change-Id: I077c0b61a5dbaa8df350185c8a9259fd81dab342 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2553 Reviewed-by: waddlesplash --- src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp index 509f58418b..9640f8b065 100644 --- a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp +++ b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp @@ -1217,10 +1217,9 @@ TCPEndpoint::_MarkEstablished() fState = ESTABLISHED; T(State(this)); - if (gSocketModule->has_parent(socket)) { - gSocketModule->set_connected(socket); + gSocketModule->set_connected(socket); + if (gSocketModule->has_parent(socket)) release_sem_etc(fAcceptSemaphore, 1, B_DO_NOT_RESCHEDULE); - } fSendCondition.NotifyAll(); gSocketModule->notify(socket, B_SELECT_WRITE, fSendQueue.Free());