aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2005-02-20 01:04:49 +0000
committerWayne Davison <wayned@samba.org>2005-02-20 01:04:49 +0000
commitbf26aa22195b671e859d2c9147ffdda0a89efb98 (patch)
treea6531c16f680c1cc0e5036883a5c5a3f3ac9accb /main.c
parent9981c27ef1ebc3844a646392fc1c52416af699ca (diff)
downloadandroid_external_rsync-bf26aa22195b671e859d2c9147ffdda0a89efb98.tar.gz
android_external_rsync-bf26aa22195b671e859d2c9147ffdda0a89efb98.tar.bz2
android_external_rsync-bf26aa22195b671e859d2c9147ffdda0a89efb98.zip
- If --remove-sent-files was specified, abort if we're pulling from
a read-only module. - If need_messages_from_generator is set, make sure that the connection between the generator to the sender has multiplexed I/O enabled.
Diffstat (limited to 'main.c')
-rw-r--r--main.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/main.c b/main.c
index fb8b57fe..14e8c069 100644
--- a/main.c
+++ b/main.c
@@ -33,7 +33,9 @@ extern int am_generator;
extern int am_daemon;
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 log_got_error;
extern int module_id;
@@ -441,6 +443,12 @@ static void do_server_sender(int f_in, int f_out, int argc,char *argv[])
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",
@@ -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 (need_messages_from_generator)
+ io_start_multiplex_in();
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);
}
+ if (need_messages_from_generator && !read_batch)
+ io_start_multiplex_out();
+
if (argc == 0)
list_only |= 1;