| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/server/server.c')
| -rw-r--r-- | src/server/server.c | 45 |
1 files changed, 29 insertions, 16 deletions
diff --git a/src/server/server.c b/src/server/server.c index d6678d2..2988732 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -5,22 +5,25 @@ #include <relabsd/config/parameters.h> +#include <relabsd/device/physical_device.h> +#include <relabsd/device/virtual_device.h> + /******************************************************************************/ /**** LOCAL FUNCTIONS *********************************************************/ /******************************************************************************/ static int initialize ( - struct relabsd_server server [const restrict static 1], - struct relabsd_parameters parameters [const static 1] + struct relabsd_server server [const restrict static 1] ) { - server->parameters = parameters; - if ( relabsd_physical_device_open ( - relabsd_parameters_get_physical_device_name(parameters), + relabsd_parameters_get_physical_device_file_name + ( + &(server->parameters) + ), &(server->physical_device) ) < 0 @@ -29,7 +32,15 @@ static int initialize return -1; } - if (relabsd_virtual_device_create(parameters, &(server->virtual_device)) < 0) + if + ( + relabsd_virtual_device_create_from + ( + &(server->parameters), + &(server->virtual_device) + ) + < 0 + ) { relabsd_physical_device_close(&(server->physical_device)); @@ -39,10 +50,10 @@ static int initialize if ( ( - relabsd_parameters_get_communication_node_name(parameters) + relabsd_parameters_get_communication_node_name(&(server->parameters)) != ((char *) NULL) ) - && (relabsd_server_create_communication_thread(&server) < 0) + && (relabsd_server_create_communication_thread(server) < 0) ) { relabsd_virtual_device_destroy(&(server->virtual_device)); @@ -58,11 +69,11 @@ static void finalize (struct relabsd_server server [const static 1]) { if ( - relabsd_parameters_get_communication_node_name(server->parameters) + relabsd_parameters_get_communication_node_name(&(server->parameters)) != ((char *) NULL) ) { - relabsd_server_join_communication_thread(&server); + relabsd_server_join_communication_thread(server); } relabsd_virtual_device_destroy(&(server->virtual_device)); @@ -72,32 +83,34 @@ static void finalize (struct relabsd_server server [const static 1]) /******************************************************************************/ /**** EXPORTED FUNCTIONS ******************************************************/ /******************************************************************************/ -int relabsd_server +int relabsd_server_main ( const int argc, - const char * const argv [const restrict static argc], - struct relabsd_parameters parameters [const static 1] + const char * const argv [const static argc], + struct relabsd_parameters parameters [const restrict static 1] ) { struct relabsd_server server; + server.parameters = *parameters; + RELABSD_S_DEBUG(RELABSD_DEBUG_PROGRAM_FLOW, "Started server mode."); - if (relabsd_parameters_parse_options(argc, argv, parameters) < 0) + if (relabsd_parameters_parse_options(argc, argv, &(server.parameters)) < 0) { return -1; } if ( - relabsd_parameters_get_run_as_daemon(parameters) + relabsd_parameters_get_run_as_daemon(&(server.parameters)) && (relabsd_server_create_daemon() < 0) ) { return -2; } - (void) initialize(&server, parameters); + (void) initialize(&server); (void) relabsd_server_conversion_loop(&server); |


