time_t starttime = 0;
-extern struct stats stats;
+extern int verbose;
+extern int dry_run;
+extern int list_only;
extern int am_root;
extern int am_server;
extern int am_sender;
extern int am_generator;
extern int am_daemon;
-extern int verbose;
extern int blocking_io;
extern int delete_before;
+extern int remove_sent_files;
extern int daemon_over_rsh;
+extern int need_messages_from_generator;
extern int do_stats;
-extern int dry_run;
-extern int list_only;
extern int log_got_error;
extern int module_id;
extern int orig_umask;
extern int preserve_hard_links;
extern int protocol_version;
extern int recurse;
+extern int fuzzy_basis;
extern int relative_paths;
extern int rsync_port;
+extern int inplace;
extern int whole_file;
extern int read_batch;
extern int write_batch;
extern int batch_gen_fd;
extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
+extern struct stats stats;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *partial_dir;
exit_cleanup(RERR_SYNTAX);
return;
}
+ if (am_daemon && lp_read_only(module_id) && remove_sent_files) {
+ rprintf(FERROR,
+ "ERROR: --remove-sent-files cannot be used with a read-only module\n");
+ exit_cleanup(RERR_SYNTAX);
+ return;
+ }
if (!relative_paths && !push_dir(dir)) {
rsyserr(FERROR, errno, "push_dir#3 %s failed",
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = (basis_dir[0] || partial_dir) && !dry_run;
+ BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis
+ || inplace) && !dry_run;
/* The receiving side mustn't obey this, or an existing symlink that
* points to an identical file won't be replaced by the referent. */
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
+ if (need_messages_from_generator)
+ io_start_multiplex_in();
recv_filter_list(f_in);
do_server_sender(f_in, f_out, argc, argv);
exit_cleanup(status);
}
+ if (need_messages_from_generator && !read_batch)
+ io_start_multiplex_out();
+
if (argc == 0)
list_only |= 1;
exit_cleanup(RERR_SYNTAX);
}
- if (dry_run)
- verbose = MAX(verbose,1);
-
if (am_server) {
set_nonblocking(STDIN_FILENO);
set_nonblocking(STDOUT_FILENO);