summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/handle_client.c')
-rw-r--r--src/server/handle_client.c44
1 files changed, 9 insertions, 35 deletions
diff --git a/src/server/handle_client.c b/src/server/handle_client.c
index bc18e95..5212440 100644
--- a/src/server/handle_client.c
+++ b/src/server/handle_client.c
@@ -15,17 +15,11 @@
#include <relabsd/debug.h>
#include <relabsd/server.h>
+#include <relabsd/config/parameters.h>
+
/******************************************************************************/
/**** LOCAL FUNCTIONS *********************************************************/
/******************************************************************************/
-static void handle_input
-(
- const ssize_t input_size __attribute__((unused)),
- const char input [const static 1] __attribute__((unused)),
- struct relabsd_server server [const static 1] __attribute__((unused))
-)
-{
-}
/******************************************************************************/
/**** EXPORTED FUNCTIONS ******************************************************/
@@ -37,10 +31,6 @@ int relabsd_server_handle_client
)
{
FILE * socket_as_file;
- /* FIXME: reallocating at every new connection is kind of wasteful. */
- char * input;
- ssize_t input_size;
- size_t input_buffer_size;
errno = 0;
socket_as_file = fdopen(socket, "r");
@@ -58,29 +48,13 @@ int relabsd_server_handle_client
return -1;
}
- errno = 0;
-
- input_size = getline(&input, &input_buffer_size, socket_as_file);
-
- if (input_size < 1)
- {
- RELABSD_ERROR
- (
- "Unable to read line from client socket: %s.",
- strerror(errno)
- );
-
- (void) free((void *) input);
-
- /* This also closes 'socket' */
- (void) fclose(socket_as_file);
-
- return -1;
- }
-
- handle_input(input_size, input, server);
-
- (void) free((void *) input);
+ pthread_mutex_lock(&(server->mutex));
+ (void) relabsd_parameters_handle_remote_client
+ (
+ socket_as_file,
+ &(server->parameters)
+ );
+ pthread_mutex_unlock(&(server->mutex));
/* This also closes 'socket' */
(void) fclose(socket_as_file);