X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=audiod.c;h=c7b17b6f23067e2c8550f45078a64f6a15478f6c;hp=dbc1e850c2f615e3775d06fe62441274ff470bd3;hb=28ca8e57ce76f5496f0d1ba143ec2c1c725bc90a;hpb=505cfe0c6c8f9ef79d259ee64404ab40f2057081 diff --git a/audiod.c b/audiod.c index dbc1e850..c7b17b6f 100644 --- a/audiod.c +++ b/audiod.c @@ -1,19 +1,7 @@ /* * Copyright (C) 2005-2007 Andre Noll * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Licensed under the GPL v2. For licencing details see COPYING. */ /** \file audiod.c the paraslash's audio daemon */ @@ -636,7 +624,7 @@ static void audiod_pre_select(struct sched *s, __a_unused struct task *t) s->timeout = min_delay; continue; } - PARA_INFO_LOG("inital delay: %lu ms left\n", tv2ms(&diff)); + PARA_INFO_LOG("initial delay: %lu ms left\n", tv2ms(&diff)); if (tv_diff(&s->timeout, &diff, NULL) > 0) { s->timeout = diff; } @@ -1011,11 +999,16 @@ void __noreturn clean_exit(int status, const char *msg) exit(status); } +/* avoid busy loop if server is down */ +static void set_stat_task_restart_barrier(void) +{ + struct timeval delay = {5, 0}; + tv_add(now, &delay, &stat_task->restart_barrier); +} static void client_task_event_handler(__a_unused struct task *t) { int i; - struct timeval delay = {1, 0}; if (t->ret == -E_HANDSHAKE_COMPLETE) return; @@ -1023,8 +1016,7 @@ static void client_task_event_handler(__a_unused struct task *t) close_stat_pipe(); if (t->ret != -E_SERVER_EOF) stat_task->clock_diff_count = conf.clock_diff_count_arg; - /* avoid busy loop if server is down */ - tv_add(now, &delay, &stat_task->restart_barrier); + set_stat_task_restart_barrier(); FOR_EACH_AUDIO_FORMAT(i) afi[i].restart_barrier = stat_task->restart_barrier; } @@ -1053,6 +1045,7 @@ static void status_pre_select(struct sched *s, struct task *t) int argc = 2; ret = client_open(argc, argv, &st->pcd); } + set_stat_task_restart_barrier(); if (ret < 0) return; st->pcd->task.event_handler = client_task_event_handler; @@ -1139,7 +1132,14 @@ int main(int argc, char *argv[]) para_drop_privileges(conf.user_arg, conf.group_arg); cf = configfile_exists(); if (cf) { - if (audiod_cmdline_parser_configfile(cf, &conf, 0, 0, 0)) { + struct audiod_cmdline_parser_params params = { + .override = 0, + .initialize = 0, + .check_required = 0, + .check_ambiguity = 0 + + }; + if (audiod_cmdline_parser_config_file(cf, &conf, ¶ms)) { PARA_EMERG_LOG("%s", "parse error in config file\n"); exit(EXIT_FAILURE); }