len = recv(client->socket_fd, buffer, REQUEST_BUFFER_MAX, 0);
if (len == 0) {
_D("Client-%d is disconnected", client->socket_fd);
- finalize_request_client(client);
- close(client->socket_fd);
- destroy_request_client(client);
- return THREAD_RETURN_DONE;
+ goto out;
+ }
+
+ if (len < 0) {
+ _E("Error occurs while receiving request: %s", strerror(errno));
+ goto out;
}
buffer[len] = '\0';
handle_request(client, buffer);
}
+out:
+ finalize_request_client(client);
+ close(client->socket_fd);
+ destroy_request_client(client);
return THREAD_RETURN_DONE;
}