diff options
author | Wayne Davison <wayned@samba.org> | 2005-02-20 01:04:49 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2005-02-20 01:04:49 +0000 |
commit | bf26aa22195b671e859d2c9147ffdda0a89efb98 (patch) | |
tree | a6531c16f680c1cc0e5036883a5c5a3f3ac9accb /main.c | |
parent | 9981c27ef1ebc3844a646392fc1c52416af699ca (diff) | |
download | android_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.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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; |