X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=server.c;h=68434e94e56820c81bb14de76b6759bc645cce29;hb=700dc3cf050893acd234a74e617ff2e4b2082f31;hp=a048cfda9b9cf3c31cf0715b3b909c4eee5ec71c;hpb=0c5e3f4c2f95d6a73bf840bc82dd0a1ce91e4016;p=paraslash.git diff --git a/server.c b/server.c index a048cfda..68434e94 100644 --- a/server.c +++ b/server.c @@ -100,6 +100,7 @@ int mmd_mutex; static char *user_list_file = NULL; static struct sched sched; +static struct signal_task *signal_task; /** The task responsible for server command handling. */ struct server_command_task { @@ -295,22 +296,18 @@ cleanup: static void init_signal_task(void) { - static struct signal_task signal_task_struct, - *st = &signal_task_struct; - - PARA_NOTICE_LOG("setting up signal handling\n"); - st->fd = para_signal_init(); /* always successful */ + signal_task = signal_init_or_die(); para_install_sighandler(SIGINT); para_install_sighandler(SIGTERM); para_install_sighandler(SIGHUP); para_install_sighandler(SIGCHLD); para_sigaction(SIGPIPE, SIG_IGN); - add_close_on_fork_list(st->fd); - st->task = task_register(&(struct task_info) { + add_close_on_fork_list(signal_task->fd); + signal_task->task = task_register(&(struct task_info) { .name = "signal", .pre_select = signal_pre_select, .post_select = signal_post_select, - .context = st, + .context = signal_task, }, &sched); } @@ -364,7 +361,7 @@ static int command_post_select(struct sched *s, void *context) free(chunk_table); alarm(ALARM_TIMEOUT); close_listed_fds(); - para_signal_shutdown(); + signal_shutdown(signal_task); /* * put info on who we are serving into argv[0] to make * client ip visible in top/ps