X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=server.c;h=009c82a4b9e456a24e7896a663a84604d0cddf31;hb=21de9be569dc72dbc3feb3cea60b77b7e641a2c2;hp=611b61f74d8724e115371d7c67d2d6692be4aa13;hpb=ad8cddca626bb37daefa845134258574c55ad90e;p=paraslash.git diff --git a/server.c b/server.c index 611b61f7..009c82a4 100644 --- a/server.c +++ b/server.c @@ -110,32 +110,6 @@ struct server_args_info conf; /** the file containing user information (public key, permissions) */ char *user_list_file = NULL; -extern void dccp_send_init(struct sender *); -extern void http_send_init(struct sender *); -extern void ortp_send_init(struct sender *); - -/** the list of supported senders */ -struct sender senders[] = { - { - .name = "http", - .init = http_send_init, - }, - { - .name = "dccp", - .init = dccp_send_init, - }, -#ifdef HAVE_ORTP - { - .name = "ortp", - .init = ortp_send_init, - }, -#endif - { - .name = NULL, - } -}; - - /* global variables for server-internal use */ static FILE *logfile; static int mmd_mutex, mmd_shm_id; @@ -453,6 +427,18 @@ out: } } +static int server_select(int max_fileno, fd_set *readfds, fd_set *writefds, + struct timeval *timeout_tv) +{ + int ret; + + status_refresh(); + mmd_unlock(); + ret = para_select(max_fileno + 1, readfds, writefds, timeout_tv); + mmd_lock(); + return ret; +} + /** * the main function of para_server * @@ -482,14 +468,8 @@ repeat: para_fd_set(sockfd, &rfds, &max_fileno); para_fd_set(signal_pipe, &rfds, &max_fileno); timeout = vss_preselect(&rfds, &wfds, &max_fileno); - status_refresh(); - mmd_unlock(); - ret = para_select(max_fileno + 1, &rfds, &wfds, timeout); - mmd_lock(); - if (ret < 0) - goto repeat; + server_select(max_fileno + 1, &rfds, &wfds, timeout); vss_post_select(&rfds, &wfds); - status_refresh(); if (FD_ISSET(signal_pipe, &rfds)) { int sig; pid_t pid;