X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=server.c;h=56162735a9030df40863cfb89a81894206ed49da;hp=8f0500965ca1461dbe4d661ff4086ed95793cad9;hb=e921be422a216b87e3e6812f16b27c9a6927099d;hpb=e57d2b9211bb734b71838142a7936fe6dfdc449c diff --git a/server.c b/server.c index 8f050096..56162735 100644 --- a/server.c +++ b/server.c @@ -61,8 +61,8 @@ char *user_list = NULL; extern void dccp_send_init(struct sender *); extern void http_send_init(struct sender *); extern void ortp_send_init(struct sender *); -extern struct audio_format afl[]; +/* TODO: This is better handled by autoconf */ /** the list of supported audio file selectors */ struct audio_file_selector selectors[] = { { @@ -135,15 +135,7 @@ void para_log(int ll, const char* fmt,...) if (ll < conf.loglevel_arg) return; - if (!logfile) { - if (ll < WARNING) - outfd = stdout; - else - outfd = stderr; - } else - outfd = logfile; - if (conf.daemon_given && !logfile) - return; + outfd = logfile? logfile : stderr; time(&t1); tm = localtime(&t1); strftime(str, MAXLINE, "%b %d %H:%M:%S", tm); @@ -348,7 +340,7 @@ static unsigned do_inits(int argc, char **argv) init_random_seed(); /* parse command line options */ cmdline_parser(argc, argv, &conf); - para_drop_privileges(conf.user_arg); + para_drop_privileges(conf.user_arg, conf.group_arg); /* parse config file, open log and set defaults */ parse_config(0); log_welcome("para_server", conf.loglevel_arg); @@ -444,14 +436,12 @@ int main(int argc, char *argv[]) valid_fd_012(); sockfd = do_inits(argc, argv); repeat: - /* check socket and signal pipe in any case */ FD_ZERO(&rfds); FD_ZERO(&wfds); - FD_SET(sockfd, &rfds); - max_fileno = sockfd; - FD_SET(signal_pipe, &rfds); - max_fileno = MAX(max_fileno, signal_pipe); - + max_fileno = -1; + /* check socket and signal pipe in any case */ + para_fd_set(sockfd, &rfds, &max_fileno); + para_fd_set(signal_pipe, &rfds, &max_fileno); timeout = afs_preselect(); status_refresh(); for (i = 0; senders[i].name; i++) { @@ -466,7 +456,7 @@ repeat: } if (selectors[mmd->selector_num].pre_select) { ret = selectors[mmd->selector_num].pre_select(&rfds, &wfds); - max_fileno = MAX(max_fileno, ret); + max_fileno = PARA_MAX(max_fileno, ret); } mmd_unlock(); ret = para_select(max_fileno + 1, &rfds, &wfds, timeout); @@ -486,10 +476,8 @@ repeat: &afl[mmd->audio_format] : NULL, &rfds, &wfds); } - if (!ret) { - afs_send_chunk(); - status_refresh(); - } + afs_send_chunk(); + status_refresh(); if (FD_ISSET(signal_pipe, &rfds)) { int sig; sig = para_next_signal();