int audiod_status = AUDIOD_ON;
struct gengetopt_args_info conf;
-static char *af_status, /* the audio format announced in server status */
- *socket_name;
+static char *socket_name;
static FILE *logfile;
static struct audio_format_info afi[NUM_AUDIO_FORMATS];
PARA_EMERG_LOG("%s\n", msg);
if (socket_name)
unlink(socket_name);
- if (stat_task->fd >= 0)
- close_stat_pipe();
+ close_stat_pipe();
exit(status);
}
int i;
struct timeval diff;
- if (!af_status)
+ if (!stat_task->af_status)
return 0;
- i = get_audio_format_num(af_status);
+ i = get_audio_format_num(stat_task->af_status);
if (i < 0)
return 0;
if (decoder_running(i))
stat_task->playing = strstr(line, "playing")? 1 : 0;
break;
case SI_FORMAT:
- free(af_status);
- af_status = para_strdup(line + ilen + 1);
+ free(stat_task->af_status);
+ stat_task->af_status = para_strdup(line + ilen + 1);
break;
case SI_OFFSET:
stat_task->offset_seconds = atoi(line + ilen + 1);
exit(EXIT_FAILURE); /* do not unlink socket */
}
add_close_on_fork_list(fd);
+ mark_fd_nonblock(fd);
return fd;
}
ret = fd[1];
PARA_NOTICE_LOG("stat pipe opened, fd %d\n", ret);
add_close_on_fork_list(ret);
+ mark_fd_nonblock(ret);
} else
clean_exit(EXIT_FAILURE, "failed to open status pipe");
return ret;
struct command_task command_task_struct, *cmd_task = &command_task_struct;
struct task audiod_task_struct, *audiod_task = &audiod_task_struct;
- init_sched();
-
valid_fd_012();
cmdline_parser(argc, argv, &conf);
para_drop_privileges(conf.user_arg, conf.group_arg);