Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- Set omit_dir_times if backing up files w/o a backup dir.
[rsync/rsync.git]
/
main.c
diff --git
a/main.c
b/main.c
index
06ebca4
..
14e8c06
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-23,19
+23,20
@@
time_t starttime = 0;
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 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 blocking_io;
extern int delete_before;
+extern int remove_sent_files;
extern int daemon_over_rsh;
extern int daemon_over_rsh;
+extern int need_messages_from_generator;
extern int do_stats;
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 log_got_error;
extern int module_id;
extern int orig_umask;
@@
-54,6
+55,7
@@
extern int batch_fd;
extern int batch_gen_fd;
extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
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;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *partial_dir;
@@
-441,6
+443,12
@@
static void do_server_sender(int f_in, int f_out, int argc,char *argv[])
exit_cleanup(RERR_SYNTAX);
return;
}
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",
if (!relative_paths && !push_dir(dir)) {
rsyserr(FERROR, errno, "push_dir#3 %s failed",
@@
-672,6
+680,8
@@
void start_server(int f_in, int f_out, int argc, char *argv[])
if (am_sender) {
keep_dirlinks = 0; /* Must be disabled on the sender. */
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);
recv_filter_list(f_in);
do_server_sender(f_in, f_out, argc, argv);
@@
-749,6
+759,9
@@
int client_run(int f_in, int f_out, pid_t pid, int argc, char *argv[])
exit_cleanup(status);
}
exit_cleanup(status);
}
+ if (need_messages_from_generator && !read_batch)
+ io_start_multiplex_out();
+
if (argc == 0)
list_only |= 1;
if (argc == 0)
list_only |= 1;