/** 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;
mmd->active_connections = 0;
mmd->vss_status_flags = VSS_NEXT;
mmd->new_vss_status_flags = VSS_NEXT;
- mmd->sender_cmd_data.cmd_num = -1;
return;
err_out:
PARA_EMERG_LOG("%s\n", para_strerror(-ret));
para_fd_set(signal_pipe, &rfds, &max_fileno);
timeout = vss_preselect(&rfds, &wfds, &max_fileno);
status_refresh();
- for (i = 0; senders[i].name; i++) {
- if (!senders[i].pre_select)
- continue;
- senders[i].pre_select(&max_fileno, &rfds, &wfds);
- }
mmd_unlock();
ret = para_select(max_fileno + 1, &rfds, &wfds, timeout);
mmd_lock();
- vss_post_select(&rfds, &wfds);
if (ret < 0)
goto repeat;
- for (i = 0; senders[i].name; i++) {
- if (!senders[i].post_select)
- continue;
- senders[i].post_select(&rfds, &wfds);
- }
- vss_send_chunk();
+ vss_post_select(&rfds, &wfds);
status_refresh();
if (FD_ISSET(signal_pipe, &rfds)) {
int sig;
exit(EXIT_FAILURE);
}
}
- if (mmd->sender_cmd_data.cmd_num >= 0) {
- int num = mmd->sender_cmd_data.cmd_num,
- s = mmd->sender_cmd_data.sender_num;
-
- if (senders[s].client_cmds[num])
- senders[s].client_cmds[num](&mmd->sender_cmd_data);
- mmd->sender_cmd_data.cmd_num = -1;
- }
if (!FD_ISSET(sockfd, &rfds))
goto repeat;