* - The main programs: \ref server.c, \ref audiod.c, \ref client.c,
* \ref audioc.c, \ref afh.c
* - Server: \ref server_command, \ref sender,
- * - Audio file selector: \ref audio_format_handler, \ref mood, \ref afs_table,
+ * - Audio file selector: \ref audio_format_handler, \ref afs_table,
* - Client: \ref receiver, \ref receiver_node, \ref filter, \ref filter_node.
*
*
* The gory details, listed by topic:
*
- * - Audio format handlers: \ref send_common.c \ref mp3_afh.c, \ref ogg_afh.c, \ref aac_afh.c,
- * - Decoders: \ref mp3dec_filter.c, \ref oggdec_filter.c, \ref aacdec_filter.c,
+ * - Audio format handlers: \ref send_common.c \ref mp3_afh.c,
+ * \ref ogg_afh.c, \ref aac_afh.c, \ref wma_afh.c,
+ * - Decoders: \ref mp3dec_filter.c, \ref oggdec_filter.c,
+ * \ref aacdec_filter.c, \ref wmadec_filter.c,
* - Volume normalizer: \ref compress_filter.c,
- * - Output: \ref alsa_write.c, \ref osx_write.c,
+ * - Output: \ref alsa_write.c, \ref osx_write.c, \ref oss_write.c,
* - http: \ref http_recv.c, \ref http_send.c,
* - udp: \ref udp_recv.c, \ref udp_send.c,
* - dccp: \ref dccp_recv.c, \ref dccp_send.c,
* - Ring buffer: \ref ringbuffer.c, \ref ringbuffer.h,
* - Hashing: \ref hash.h, \ref sha1.h, \ref sha1.c,
* - Crypto: \ref crypt.c.
- * - Forward error correction: \ref fec.c
+ * - Forward error correction: \ref fec.c.
*/
#include <signal.h>
daemon_set_flag(DF_LOG_PID);
daemon_set_flag(DF_LOG_LL);
daemon_set_flag(DF_LOG_TIME);
+ if (conf.log_timing_given)
+ daemon_set_flag(DF_LOG_TIMING);
ret = 1;
out:
free(cf);
sct->task.post_select = command_post_select;
sct->argc = argc;
sct->argv = argv;
- ret = para_listen(AF_UNSPEC, IPPROTO_TCP, conf.port_arg);
+ ret = para_listen_simple(IPPROTO_TCP, conf.port_arg);
if (ret < 0)
goto err;
sct->listen_fd = ret;
static int init_afs(void)
{
int ret, afs_server_socket[2];
+ pid_t afs_pid;
ret = socketpair(PF_UNIX, SOCK_DGRAM, 0, afs_server_socket);
if (ret < 0)
exit(EXIT_FAILURE);
get_random_bytes_or_die((unsigned char *)&afs_socket_cookie,
sizeof(afs_socket_cookie));
- mmd->afs_pid = fork();
- if (mmd->afs_pid < 0)
+ afs_pid = fork();
+ if (afs_pid < 0)
exit(EXIT_FAILURE);
- if (!mmd->afs_pid) { /* child (afs) */
+ if (afs_pid == 0) { /* child (afs) */
close(afs_server_socket[0]);
afs_init(afs_socket_cookie, afs_server_socket[1]);
}
+ mmd->afs_pid = afs_pid;
close(afs_server_socket[1]);
ret = mark_fd_nonblocking(afs_server_socket[0]);
if (ret < 0)