* 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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user