| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/server/server.c')
| -rw-r--r-- | src/server/server.c | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/server/server.c b/src/server/server.c index 3ded7cc..8a75615 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -1,6 +1,7 @@ #include <signal.h> +#include <stdio.h> -#include "../cli/parameters.h" +#include "../parameters/parameters.h" #include "server.h" @@ -18,6 +19,7 @@ int ZoO_server_main (const struct ZoO_parameters params) { struct ZoO_server server; struct ZoO_server_message msg_buffer; + struct ZoO_server_worker_parameters worker_params; if ( @@ -31,6 +33,14 @@ int ZoO_server_main (const struct ZoO_parameters params) return -1; } + ZoO_server_worker_initialize_parameters + ( + &worker_params, + &server, + &msg_buffer, + ¶ms + ); + while ((ZoO_SERVER_IS_RUNNING == (char) 1) || (server.running_threads > 0)) { if (ZoO_server_receive_message(&server, &msg_buffer) < 0) @@ -42,13 +52,21 @@ int ZoO_server_main (const struct ZoO_parameters params) switch (msg_buffer.type) { - case 'C': - ZoO_server_new_client(&server, &msg_buffer); + case 'C': /* Client request */ + ZoO_server_add_worker(&server, &worker_params); + break; - case 'J': - ZoO_server_join_thread(&server, &msg_buffer); + case 'J': /* Join request */ + ZoO_server_finalize_worker(&server, &msg_buffer); + break; default: + fprintf + ( + stderr, + "[W] Received message with unknown type '%c'.\n", + msg_buffer.type + ); break; } } |


