extern char *remote_filesfrom_file;
extern char *rsync_path;
extern char *shell_cmd;
-extern char *batch_prefix;
+extern char *batch_name;
/* there's probably never more than at most 2 outstanding child processes,
exit_cleanup(0);
}
- io_start_buffering_in(f_in);
- io_start_buffering_out(f_out);
+ io_start_buffering_in();
+ io_start_buffering_out();
+
send_files(flist,f_out,f_in);
io_flush(FULL_FLUSH);
report(f_out);
if (f_in != f_out)
close(f_in);
- io_start_buffering_out(f_out);
+ io_start_buffering_out();
set_msg_fd_in(error_pipe[0]);
}
}
- io_start_buffering_in(f_in);
+ io_start_buffering_in();
if (delete_mode && !delete_excluded)
recv_exclude_list(f_in);
void start_server(int f_in, int f_out, int argc, char *argv[])
{
- setup_protocol(f_out, f_in);
-
set_nonblocking(f_in);
set_nonblocking(f_out);
+ io_set_sock_fds(f_in, f_out);
+ setup_protocol(f_out, f_in);
+
if (protocol_version >= 23)
- io_start_multiplex_out(f_out);
+ io_start_multiplex_out();
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
-
+
recv_exclude_list(f_in);
if (cvs_exclude)
add_cvs_excludes();
set_nonblocking(f_out);
}
+ io_set_sock_fds(f_in, f_out);
setup_protocol(f_out,f_in);
if (protocol_version >= 23 && !read_batch)
- io_start_multiplex_in(f_in);
+ io_start_multiplex_in();
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
- io_start_buffering_out(f_out);
+ io_start_buffering_out();
if (cvs_exclude)
add_cvs_excludes();
if (delete_mode && !delete_excluded)
int main(int argc,char *argv[])
{
int ret;
- int orig_argc;
- char **orig_argv;
-
- orig_argc = argc;
- orig_argv = argv;
+ int orig_argc = argc;
+ char **orig_argv = argv;
signal(SIGUSR1, sigusr1_handler);
signal(SIGUSR2, sigusr2_handler);
if (write_batch || read_batch) {
if (write_batch)
- write_batch_argvs_file(orig_argc, orig_argv);
+ write_batch_shell_file(orig_argc, orig_argv, argc);
- batch_fd = do_open(batch_prefix,
+ if (read_batch && strcmp(batch_name, "-") == 0)
+ batch_fd = STDIN_FILENO;
+ else {
+ batch_fd = do_open(batch_name,
write_batch ? O_WRONLY | O_CREAT | O_TRUNC
: O_RDONLY, S_IRUSR | S_IWUSR);
+ }
if (batch_fd < 0) {
rsyserr(FERROR, errno, "Batch file %s open error",
- batch_prefix);
+ batch_name);
exit_cleanup(RERR_FILEIO);
}
}