* socket_spawn_pending() forgot to set the socket's parent field.

* socket_recv[from]() now accept a NULL buffer in case there was nothing to read.
* the tcp_tester's server thread now actually reads the data it receives.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19400 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2006-11-30 20:43:24 +00:00
parent 41c6726359
commit 94fb808a48
2 changed files with 25 additions and 2 deletions
@@ -232,6 +232,7 @@ socket_spawn_pending(net_socket *parent, net_socket **_socket)
// add to the parent's list of pending connections
list_add_item(&parent->pending_children, socket);
socket->parent = parent;
parent->child_count++;
*_socket = socket;
@@ -637,6 +638,10 @@ socket_recv(net_socket *socket, void *data, size_t length, int flags)
if (status < B_OK)
return status;
// if 0 bytes we're received, no buffer will be created
if (buffer == NULL)
return 0;
ssize_t bytesReceived = buffer->size;
gNetBufferModule.read(buffer, 0, data, bytesReceived);
gNetBufferModule.free(buffer);
@@ -655,6 +660,10 @@ socket_recvfrom(net_socket *socket, void *data, size_t length, int flags,
if (status < B_OK)
return status;
// if 0 bytes we're received, no buffer will be created
if (buffer == NULL)
return 0;
ssize_t bytesReceived = buffer->size;
gNetBufferModule.read(buffer, 0, data, bytesReceived);