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
Got rid of kluged value for am_sender, and instead added a new
[rsync/rsync.git]
/
main.c
diff --git
a/main.c
b/main.c
index
fb8b57f
..
5ff9924
100644
(file)
--- 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 am_daemon;
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 log_got_error;
extern int module_id;
extern int do_stats;
extern int log_got_error;
extern int module_id;
@@
-46,6
+48,8
@@
extern int recurse;
extern int fuzzy_basis;
extern int relative_paths;
extern int rsync_port;
extern int fuzzy_basis;
extern int relative_paths;
extern int rsync_port;
+extern int inplace;
+extern int make_backups;
extern int whole_file;
extern int read_batch;
extern int write_batch;
extern int whole_file;
extern int read_batch;
extern int write_batch;
@@
-441,6
+445,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",
@@
-489,8
+499,8
@@
static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
- BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis
)
- && !dry_run;
+ BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis
+
|| (inplace && make_backups))
&& !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. */
/* The receiving side mustn't obey this, or an existing symlink that
* points to an identical file won't be replaced by the referent. */
@@
-672,6
+682,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
+761,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;