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;