From e2200e347d0040ec9123c47cf8ae2a8ebf692b49 Mon Sep 17 00:00:00 2001 From: Hugo Santos Date: Fri, 27 Apr 2007 14:47:43 +0000 Subject: [PATCH] call ProtocolSocket::Open() for accept()ed sockets. This fixes a regression introduced earlier today. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20863 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/network/protocols/tcp/TCPEndpoint.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp index 836e18d869..bf19fee9b5 100644 --- a/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp +++ b/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp @@ -807,12 +807,8 @@ TCPEndpoint::_ListenReceive(tcp_segment_header &segment, net_buffer *buffer) if (gSocketModule->spawn_pending_socket(socket, &newSocket) < B_OK) return DROP; - TCPEndpoint *newEndpoint = (TCPEndpoint *)newSocket->first_protocol; - - newEndpoint->LocalAddress().SetTo(&buffer->destination); - newEndpoint->PeerAddress().SetTo(&buffer->source); - - return newEndpoint->Spawn(this, segment, buffer); + return ((TCPEndpoint *)newSocket->first_protocol)->Spawn(this, + segment, buffer); } @@ -822,10 +818,16 @@ TCPEndpoint::Spawn(TCPEndpoint *parent, tcp_segment_header &segment, { RecursiveLocker _(fLock); + // TODO error checking + ProtocolSocket::Open(); + fState = SYNCHRONIZE_RECEIVED; fManager = parent->fManager; fSpawned = true; + LocalAddress().SetTo(&buffer->destination); + PeerAddress().SetTo(&buffer->source); + TRACE("Spawn()"); // TODO: proper error handling!