X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=6195266bb8f87ca168c410c44aef5dfac18586b4;hp=9688c6ccf2cb4ac29723b0a8dd6f40627c16d934;hb=883af7d8af543616fe4ca09b0273dd4f59848779;hpb=82008b5367b438f01bb3899a93b406a6066d2b1f diff --git a/server.c b/server.c index 9688c6cc..6195266b 100644 --- a/server.c +++ b/server.c @@ -42,6 +42,8 @@ #include "string.h" #include "ipc.h" #include "fd.h" +#include "signal.h" +#include "user_list.h" /** define the array of error lists needed by para_server */ INIT_SERVER_ERRLISTS; @@ -57,7 +59,7 @@ struct misc_meta_data *mmd; * senders. */ struct server_args_info conf; -char *user_list = NULL; +char *user_list_file = NULL; extern void dccp_send_init(struct sender *); extern void http_send_init(struct sender *); extern void ortp_send_init(struct sender *); @@ -221,11 +223,11 @@ static void parse_config(int override) cf = conf.config_file_arg; else cf = make_message("%s/.paraslash/server.conf", home); - free(user_list); + free(user_list_file); if (!conf.user_list_given) - user_list = make_message("%s/.paraslash/server.users", home); + user_list_file = make_message("%s/.paraslash/server.users", home); else - user_list = para_strdup(conf.user_list_arg); + user_list_file = para_strdup(conf.user_list_arg); ret = stat(cf, &statbuf); if (ret && conf.config_file_given) { ret = -1; @@ -251,8 +253,8 @@ out: free(home); if (ret > 0) return; - free(user_list); - user_list = NULL; + free(user_list_file); + user_list_file = NULL; exit(EXIT_FAILURE); } @@ -353,6 +355,7 @@ static unsigned do_inits(int argc, char **argv) log_welcome("para_server", conf.loglevel_arg); shm_init(); /* init mmd struct */ server_uptime(UPTIME_SET); /* reset server uptime */ + init_user_list(user_list_file); /* become daemon */ if (conf.daemon_given) daemon_init(); @@ -398,6 +401,7 @@ static void handle_sighup(void) parse_config(1); /* reopens log */ mmd->selector_change = mmd->selector_num; /* do not change selector.. */ change_selector(); /* .. just reload */ + init_user_list(user_list_file); /* reload user list */ } static void status_refresh(void)