return ret;
}
-static void init_admissible_files(void)
+static void init_admissible_files(char *arg)
{
- int ret = 0;
- char *arg = conf.afs_initial_mode_arg;
- ret = activate_mood_or_playlist(arg, NULL);
- if (ret >= 0)
- return;
- PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
- PARA_NOTICE_LOG("defaulting to dummy mood\n");
- activate_mood_or_playlist(NULL, NULL); /* always successful */
+ if (activate_mood_or_playlist(arg, NULL) < 0)
+ activate_mood_or_playlist(NULL, NULL); /* always successful */
}
static int setup_command_socket_or_die(void)
static void signal_post_select(struct sched *s, struct task *t)
{
struct signal_task *st = t->private_data;
+ t->ret = -E_AFS_PARENT_DIED;
+ if (getppid() == 1)
+ goto err;
t->ret = 1;
if (!FD_ISSET(st->fd, &s->rfds))
return;
if (st->signum == SIGHUP) {
close_afs_tables();
t->ret = open_afs_tables();
+ if (t->ret < 0)
+ goto err;
+ init_admissible_files(current_mop);
return;
}
- PARA_NOTICE_LOG("caught signal %d\n", st->signum);
t->ret = -E_AFS_SIGNAL;
+err:
+ PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret));
unregister_tasks();
}
PARA_NOTICE_LOG("received: %s\n", buf);
if (!strcmp(buf, "new")) {
ret = open_next_audio_file();
- PARA_NOTICE_LOG("ret: %d\n", ret);
+ if (ret < 0)
+ PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
return;
}
PARA_ERROR_LOG("unknown command\n");
exit(EXIT_FAILURE);
PARA_INFO_LOG("server_socket: %d, afs_socket_cookie: %u\n",
server_socket, (unsigned) cookie);
- init_admissible_files();
+ init_admissible_files(conf.afs_initial_mode_arg);
register_tasks(cookie);
s.default_timeout.tv_sec = 0;
- s.default_timeout.tv_usec = 99 * 1000;
+ s.default_timeout.tv_usec = 999 * 1000;
ret = sched(&s);
if (ret < 0)
PARA_EMERG_LOG("%s\n", PARA_STRERROR(-ret));