Before compiling, be sure to run "make proto".
---- orig/generator.c 2004-07-17 15:50:09
+--- orig/generator.c 2004-07-22 00:05:38
+++ generator.c 2004-07-19 08:32:53
@@ -42,7 +42,7 @@ extern int size_only;
extern int io_timeout;
extern int link_dest;
extern int whole_file;
extern int local_server;
-@@ -80,13 +80,12 @@ static int skip_file(char *fname, struct
+@@ -79,13 +79,12 @@ static int skip_file(char *fname, struct
if (always_checksum && S_ISREG(st->st_mode)) {
char sum[MD4_SUM_LENGTH];
char fnamecmpdest[MAXPATHLEN];
}
file_checksum(fname,sum,st->st_size);
return memcmp(sum, file->u.sum, protocol_version < 21 ? 2
-@@ -408,13 +407,18 @@ static void recv_generator(char *fname,
+@@ -414,13 +413,18 @@ static void recv_generator(char *fname,
fnamecmp = fname;
if (statret == -1) {
errno = saveerrno;
*fnamecmpbuf = '\0';
---- orig/main.c 2004-07-17 15:58:11
-+++ main.c 2004-07-17 16:31:30
-@@ -57,7 +57,7 @@ extern int filesfrom_fd;
+--- orig/main.c 2004-07-22 00:10:43
++++ main.c 2004-07-22 00:30:38
+@@ -58,7 +58,7 @@ extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
-@@ -446,7 +446,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -456,7 +456,7 @@ static int do_recv(int f_in,int f_out,st
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
-- int need_name_pipe = compare_dest || read_batch;
-+ int need_name_pipe = compare_dest[0] || read_batch;
+- int need_name_pipe = compare_dest;
++ int need_name_pipe = compare_dest[0];
if (preserve_hard_links)
init_hard_links(flist);
---- orig/options.c 2004-07-16 20:07:22
+--- orig/options.c 2004-07-21 23:59:35
+++ options.c 2004-07-03 17:33:30
@@ -118,7 +118,8 @@ unsigned int backup_dir_remainder;
link_dest = 1;
break;
#else
-@@ -684,6 +714,11 @@ int parse_arguments(int *argc, const cha
+@@ -689,6 +719,11 @@ int parse_arguments(int *argc, const cha
exit_cleanup(RERR_SYNTAX);
}
if (archive_mode) {
if (!files_from)
recurse = 1;
-@@ -712,8 +747,6 @@ int parse_arguments(int *argc, const cha
+@@ -717,8 +752,6 @@ int parse_arguments(int *argc, const cha
(*argv)[i] = alloc_sanitize_path((*argv)[i], NULL);
if (tmpdir)
tmpdir = alloc_sanitize_path(tmpdir, curr_dir);
if (backup_dir)
backup_dir = alloc_sanitize_path(backup_dir, curr_dir);
if (files_from)
-@@ -819,8 +852,8 @@ int parse_arguments(int *argc, const cha
+@@ -824,8 +857,8 @@ int parse_arguments(int *argc, const cha
**/
void server_options(char **args,int *argc)
{
char *arg;
int i, x;
-@@ -998,13 +1031,16 @@ void server_options(char **args,int *arg
+@@ -1003,13 +1036,16 @@ void server_options(char **args,int *arg
args[ac++] = tmpdir;
}
}
if (files_from && (!am_sender || remote_filesfrom_file)) {
---- orig/receiver.c 2004-07-17 21:27:55
+--- orig/receiver.c 2004-07-22 00:20:50
+++ receiver.c 2004-07-03 20:14:37
-@@ -37,7 +37,6 @@ extern int preserve_perms;
+@@ -38,7 +38,6 @@ extern int preserve_perms;
extern int cvs_exclude;
extern int io_error;
extern char *tmpdir;
extern int make_backups;
extern int do_progress;
extern char *backup_dir;
---- orig/rsync.h 2004-07-16 20:07:23
+--- orig/rsync.h 2004-07-20 21:36:08
+++ rsync.h 2004-07-03 17:33:30
@@ -98,6 +98,8 @@
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
popt_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
popt/popthelp.o popt/poptparse.o
---- orig/cleanup.c 2004-07-02 18:11:26
+--- orig/cleanup.c 2004-07-20 21:36:07
+++ cleanup.c 2004-07-03 20:18:02
@@ -24,6 +24,7 @@
extern int io_error;
/**
* Close all open sockets and files, allowing a (somewhat) graceful
-@@ -124,6 +125,8 @@ void _exit_cleanup(int code, const char
+@@ -121,6 +122,8 @@ void _exit_cleanup(int code, const char
finish_transfer(cleanup_new_fname, fname, cleanup_file, 0);
}
io_flush(FULL_FLUSH);
#define RERR_SIGNAL 20 /* status returned when sent SIGUSR1, SIGINT */
#define RERR_WAITCHILD 21 /* some error returned by waitpid() */
---- orig/flist.c 2004-07-15 02:21:10
+--- orig/flist.c 2004-07-17 15:20:05
+++ flist.c 2004-07-03 20:18:02
@@ -43,6 +43,7 @@ extern int cvs_exclude;
+ if (verbose > 2)
+ rprintf(FINFO, "Converted filename: %s -> %s\n", src, dest);
+}
---- orig/generator.c 2004-07-16 19:35:29
+--- orig/generator.c 2004-07-21 23:59:35
+++ generator.c 2004-07-03 20:18:02
-@@ -249,6 +249,12 @@ static void generate_and_send_sums(struc
+@@ -256,6 +256,12 @@ static void generate_and_send_sums(int f
*
* @note This comment was added later by mbp who was trying to work it
* out. It might be wrong.
{ RERR_SIGNAL , "received SIGUSR1 or SIGINT" },
{ RERR_WAITCHILD , "some error returned by waitpid()" },
{ RERR_MALLOC , "error allocating core memory buffers" },
---- orig/main.c 2004-07-15 17:02:03
-+++ main.c 2004-07-03 20:18:02
-@@ -318,7 +318,7 @@ static pid_t do_cmd(char *cmd, char *mac
+--- orig/main.c 2004-07-21 23:59:35
++++ main.c 2004-07-22 00:31:47
+@@ -329,7 +329,7 @@ static pid_t do_cmd(char *cmd, char *mac
whole_file = 1;
ret = local_child(argc, args, f_in, f_out, child_main);
- } else {
+ } else
- ret = piped_child(args,f_in,f_out);
+ ret = piped_child(args, f_in, f_out, blocking_io, 1);
- }
if (dir)
---- orig/options.c 2004-07-16 20:07:22
+ free(dir);
+--- orig/options.c 2004-07-21 23:59:35
+++ options.c 2004-07-03 20:18:02
@@ -128,6 +128,7 @@ char *backup_dir = NULL;
char backup_dir_buf[MAXPATHLEN];
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
---- orig/pipe.c 2004-07-15 02:21:11
+--- orig/pipe.c 2004-07-21 23:59:35
+++ pipe.c 2004-07-03 20:18:02
@@ -23,7 +23,6 @@
extern int am_server;
-extern int blocking_io;
extern int orig_umask;
- extern int read_batch;
extern int write_batch;
-@@ -41,8 +40,10 @@ extern int filesfrom_fd;
+ extern int filesfrom_fd;
+@@ -40,8 +39,10 @@ extern int filesfrom_fd;
* If blocking_io is set then use blocking io on both fds. That can be
* used to cope with badly broken rsh implementations like the one on
* Solaris.
{
pid_t pid;
int to_child_pipe[2];
-@@ -57,7 +58,7 @@ pid_t piped_child(char **command, int *f
+@@ -56,7 +57,7 @@ pid_t piped_child(char **command, int *f
exit_cleanup(RERR_IPC);
}
Be sure to run "make proto" before "make".
---- orig/generator.c 2004-07-17 15:50:09
+--- orig/generator.c 2004-07-22 00:05:38
+++ generator.c 2004-07-20 21:49:24
@@ -41,6 +41,7 @@ extern int ignore_times;
extern int size_only;
if (!*fnamecmpbuf)
set_perms(fname, file, &st, PERMS_REPORT);
return;
---- orig/main.c 2004-07-17 15:58:11
-+++ main.c 2004-07-17 16:32:39
+--- orig/main.c 2004-07-22 00:10:43
++++ main.c 2004-07-22 00:32:31
@@ -47,6 +47,7 @@ extern int keep_dirlinks;
extern int preserve_hard_links;
extern int protocol_version;
extern int relative_paths;
extern int rsync_port;
extern int whole_file;
-@@ -446,7 +447,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -456,7 +457,7 @@ static int do_recv(int f_in,int f_out,st
int pid;
int status = 0;
int error_pipe[2], name_pipe[2];
-- int need_name_pipe = compare_dest || read_batch;
-+ int need_name_pipe = compare_dest || fuzzy || read_batch;
+- int need_name_pipe = compare_dest;
++ int need_name_pipe = compare_dest || fuzzy;
if (preserve_hard_links)
init_hard_links(flist);
---- orig/options.c 2004-07-20 21:36:07
+--- orig/options.c 2004-07-21 23:59:35
+++ options.c 2004-07-16 20:14:12
@@ -85,6 +85,7 @@ int safe_symlinks = 0;
int copy_unsafe_links = 0;
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression, 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &daemon_opt, 0, 0, 0 },
-@@ -1019,6 +1022,9 @@ void server_options(char **args,int *arg
+@@ -1024,6 +1027,9 @@ void server_options(char **args,int *arg
}
}
*argc = ac;
return;
---- orig/receiver.c 2004-07-19 16:44:39
+--- orig/receiver.c 2004-07-22 00:20:50
+++ receiver.c 2004-07-03 20:09:05
-@@ -37,7 +37,6 @@ extern int preserve_perms;
+@@ -38,7 +38,6 @@ extern int preserve_perms;
extern int cvs_exclude;
extern int io_error;
extern char *tmpdir;
searching more efficient (such as the --fuzzy option and the
support for multiple --compare-dest options).
-Also fixes a potential synchronization problem between the generator
-and the receiver in read-batch mode. Should consider making the
-sending of the index value the default for this pipe (it's currently
-only sent in batch mode due to the sender not listening to the
-generator to determine what files get updated).
-
You must run "make proto" before compiling.
---- orig/generator.c 2004-07-20 21:36:07
-+++ generator.c 2004-07-17 15:50:09
+--- orig/generator.c 2004-07-21 23:59:35
++++ generator.c 2004-07-22 00:05:38
@@ -258,9 +258,9 @@ static void generate_and_send_sums(int f
* out. It might be wrong.
*/
STRUCT_STAT st;
int statret;
char *fnamecmp;
-@@ -404,9 +404,6 @@ static void recv_generator(char *fname,
- }
- #endif
-
-- if (read_batch)
-- return;
--
- if (preserve_hard_links && hard_link_check(file, HL_CHECK_MASTER))
- return;
-
-@@ -424,8 +421,10 @@ static void recv_generator(char *fname,
+@@ -421,8 +421,10 @@ static void recv_generator(char *fname,
statret = link_stat(fnamecmpbuf, &st, 0);
if (!S_ISREG(st.st_mode))
statret = -1;
#if HAVE_LINK
else if (link_dest && !dry_run) {
if (do_link(fnamecmpbuf, fname) != 0) {
-@@ -433,22 +432,22 @@ static void recv_generator(char *fname,
+@@ -430,22 +432,22 @@ static void recv_generator(char *fname,
rsyserr(FINFO, errno, "link %s => %s",
fnamecmpbuf, fname);
}
return;
- if (errno == ENOENT) {
- write_int(f_out,i);
-- if (!dry_run)
+- if (!dry_run && !read_batch)
- write_sum_head(f_out, NULL);
- } else if (verbose > 1) {
+ if (errno == ENOENT)
rsyserr(FERROR, errno,
"recv_generator: failed to open %s",
full_fname(fname));
-@@ -457,26 +456,23 @@ static void recv_generator(char *fname,
+@@ -454,26 +456,23 @@ static void recv_generator(char *fname,
}
if (!S_ISREG(st.st_mode)) {
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
- write_int(f_out,i);
-- if (!dry_run)
+- if (!dry_run && !read_batch)
- write_sum_head(f_out, NULL);
- return;
+ statret = -1;
&& cmp_modtime(st.st_mtime, file->modtime) > 0) {
if (verbose > 1)
rprintf(FINFO,"%s is newer\n",fname);
-@@ -484,21 +480,17 @@ static void recv_generator(char *fname,
+@@ -481,21 +480,17 @@ static void recv_generator(char *fname,
}
if (skip_file(fname, file, &st)) {
return;
}
-- if (dry_run) {
+- if (dry_run || read_batch) {
- write_int(f_out,i);
- return;
- }
/* open the file */
fd = do_open(fnamecmp, O_RDONLY, 0);
-@@ -509,9 +501,8 @@ static void recv_generator(char *fname,
+@@ -506,9 +501,8 @@ static void recv_generator(char *fname,
/* pretend the file didn't exist */
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
}
if (verbose > 3) {
-@@ -522,14 +513,41 @@ static void recv_generator(char *fname,
+@@ -519,14 +513,40 @@ static void recv_generator(char *fname,
if (verbose > 2)
rprintf(FINFO, "generating and sending sums for %d\n", i);
+ if (f_nameout >= 0) {
+ uchar lenbuf[3], *lb = lenbuf;
+ int len = statret == -1 ? 0 : strlen(fnamecmpbuf);
-+ if (read_batch)
-+ write_int(f_nameout, i);
+ if (len > 0x7F) {
+#if MAXPATHLEN > 0x7FFF
+ *lb++ = len / 0x10000 + 0x80;
+ if (len)
+ write_buf(f_nameout, fnamecmpbuf, len);
+ }
-
-- close(fd);
-+ if (read_batch)
-+ return;
+
+ write_int(f_out, i);
++
++ if (read_batch)
++ return;
+
+- close(fd);
+ if (statret == 0) {
+ generate_and_send_sums(fd, st.st_size, f_out);
+
{
int i;
int phase = 0;
-@@ -570,7 +588,7 @@ void generate_files(int f_out, struct fi
+@@ -567,7 +587,7 @@ void generate_files(int f_out, struct fi
}
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -581,13 +599,15 @@ void generate_files(int f_out, struct fi
- rprintf(FINFO,"generate_files phase=%d\n",phase);
-
- write_int(f_out, -1);
-+ if (read_batch)
-+ write_int(f_nameout, flist->count);
-
- /* files can cycle through the system more than once
- * to catch initial checksum errors */
+@@ -584,7 +604,7 @@ void generate_files(int f_out, struct fi
while ((i = get_redo_num()) != -1) {
struct file_struct *file = flist->files[i];
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -595,6 +615,8 @@ void generate_files(int f_out, struct fi
- rprintf(FINFO,"generate_files phase=%d\n",phase);
-
- write_int(f_out, -1);
-+ if (read_batch)
-+ write_int(f_nameout, flist->count);
-
- if (preserve_hard_links)
- do_hard_links();
-@@ -606,7 +628,7 @@ void generate_files(int f_out, struct fi
+@@ -603,7 +623,7 @@ void generate_files(int f_out, struct fi
if (!file->basename || !S_ISDIR(file->mode))
continue;
recv_generator(local_name ? local_name : f_name(file),
}
if (verbose > 2)
---- orig/main.c 2004-07-19 17:14:44
-+++ main.c 2004-07-17 15:58:11
-@@ -57,6 +57,7 @@ extern int filesfrom_fd;
+--- orig/main.c 2004-07-21 23:59:35
++++ main.c 2004-07-22 00:10:43
+@@ -58,6 +58,7 @@ extern int filesfrom_fd;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
extern char *rsync_path;
extern char *shell_cmd;
extern char *batch_name;
-@@ -444,20 +445,21 @@ static int do_recv(int f_in,int f_out,st
+@@ -454,20 +455,21 @@ static int do_recv(int f_in,int f_out,st
{
int pid;
int status = 0;
- int error_pipe[2];
+ int error_pipe[2], name_pipe[2];
-+ int need_name_pipe = compare_dest || read_batch;
++ int need_name_pipe = compare_dest;
if (preserve_hard_links)
init_hard_links(flist);
exit_cleanup(RERR_SOCKETIO);
}
-@@ -465,6 +467,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -475,6 +477,11 @@ static int do_recv(int f_in,int f_out,st
if ((pid = do_fork()) == 0) {
close(error_pipe[0]);
if (f_in != f_out)
close(f_out);
-@@ -474,7 +481,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -484,7 +491,7 @@ static int do_recv(int f_in,int f_out,st
/* set place to send errors */
set_msg_fd_out(error_pipe[1]);
io_flush(FULL_FLUSH);
report(f_in);
-@@ -492,6 +499,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -502,6 +509,11 @@ static int do_recv(int f_in,int f_out,st
stop_write_batch();
close(error_pipe[1]);
if (f_in != f_out)
close(f_in);
-@@ -499,7 +511,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -509,7 +521,7 @@ static int do_recv(int f_in,int f_out,st
set_msg_fd_in(error_pipe[0]);
get_redo_num(); /* Read final MSG_DONE and any prior messages. */
report(-1);
---- orig/receiver.c 2004-07-20 21:36:07
-+++ receiver.c 2004-07-19 16:44:39
-@@ -28,6 +28,7 @@ extern int max_delete;
- extern int csum_length;
- extern struct stats stats;
- extern int dry_run;
-+extern int read_batch;
- extern int am_server;
- extern int relative_paths;
- extern int keep_dirlinks;
-@@ -318,6 +319,30 @@ static int receive_data(int f_in, char *
+--- orig/receiver.c 2004-07-22 00:07:20
++++ receiver.c 2004-07-22 00:20:50
+@@ -320,6 +320,30 @@ static int receive_data(int f_in, char *
}
static void discard_receive_data(int f_in, OFF_T length)
{
receive_data(f_in, NULL, -1, 0, NULL, -1, length);
-@@ -328,8 +353,10 @@ static void discard_receive_data(int f_i
+@@ -330,7 +354,8 @@ static void discard_receive_data(int f_i
* main routine for receiver process.
*
* Receiver process runs on the same host as the generator process. */
+int recv_files(int f_in, struct file_list *flist, char *local_name,
+ int f_name_in)
{
-+ int next_gen_i = -1;
+ int next_gen_i = -1;
int fd1,fd2;
- STRUCT_STAT st;
- char *fname, fbuf[MAXPATHLEN];
-@@ -355,6 +382,17 @@ int recv_files(int f_in, struct file_lis
-
+@@ -359,8 +384,15 @@ int recv_files(int f_in, struct file_lis
i = read_int(f_in);
if (i == -1) {
-+ if (read_batch) {
-+ if (next_gen_i < 0)
-+ next_gen_i = read_int(f_name_in);
+ if (read_batch) {
+- if (next_gen_i != flist->count)
+- while (read_int(batch_gen_fd) != -1) {}
+ while (next_gen_i < flist->count) {
-+ read_gen_name(f_name_in, fnamecmpbuf,
-+ NULL);
++ if (f_name_in >= 0 && next_gen_i >= 0) {
++ read_gen_name(f_name_in,
++ fnamecmpbuf, NULL);
++ }
+ next_gen_i = read_int(f_name_in);
++ if (next_gen_i < 0)
++ break;
+ }
-+ next_gen_i = -1;
-+ }
-+
- if (phase)
- break;
+ next_gen_i = -1;
+ }
-@@ -397,7 +435,26 @@ int recv_files(int f_in, struct file_lis
+@@ -406,10 +438,12 @@ int recv_files(int f_in, struct file_lis
if (verbose > 2)
rprintf(FINFO,"recv_files(%s)\n",fname);
- fnamecmp = fname;
-+ if (read_batch) {
-+ if (next_gen_i < 0)
-+ next_gen_i = read_int(f_name_in);
-+ while (i > next_gen_i) {
-+ read_gen_name(f_name_in, fnamecmpbuf, NULL);
-+ next_gen_i = read_int(f_name_in);
-+ }
-+ if (i < next_gen_i) {
-+ rprintf(FINFO, "skipping update for \"%s\"\n",
-+ fname);
-+ discard_receive_data(f_in, file->length);
-+ continue;
-+ }
+-
+ if (read_batch) {
+ while (i > next_gen_i) {
++ if (f_name_in >= 0 && next_gen_i >= 0) {
++ read_gen_name(f_name_in, fnamecmpbuf,
++ NULL);
++ }
+ next_gen_i = read_int(batch_gen_fd);
+ if (next_gen_i == -1)
+ next_gen_i = flist->count;
+@@ -420,8 +454,14 @@ int recv_files(int f_in, struct file_lis
+ discard_receive_data(f_in, file->length);
+ continue;
+ }
+ next_gen_i = -1;
-+ }
-+
+ }
+
+ if (f_name_in >= 0)
+ fnamecmp = read_gen_name(f_name_in, fnamecmpbuf, fname);
+ else
+ fnamecmp = fname;
-
++
if (server_exclude_list.head
&& check_exclude(&server_exclude_list, fname,
-@@ -414,14 +471,6 @@ int recv_files(int f_in, struct file_lis
+ S_ISDIR(file->mode)) < 0) {
+@@ -437,14 +477,6 @@ int recv_files(int f_in, struct file_lis
/* open the file */
fd1 = do_open(fnamecmp, O_RDONLY, 0);
TLS_OBJ = tls.o syscall.o lib/permstring.o
---- orig/cleanup.c 2004-07-02 18:11:26
+--- orig/cleanup.c 2004-07-20 21:36:07
+++ cleanup.c 2004-07-03 20:22:28
@@ -24,6 +24,9 @@
extern int io_error;
/**
* Close all open sockets and files, allowing a (somewhat) graceful
-@@ -98,6 +101,11 @@ void _exit_cleanup(int code, const char
+@@ -97,6 +100,11 @@ void _exit_cleanup(int code, const char
signal(SIGUSR1, SIG_IGN);
signal(SIGUSR2, SIG_IGN);
if (verbose > 3) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
code, file, line);
---- orig/clientserver.c 2004-07-15 02:21:10
+--- orig/clientserver.c 2004-07-17 15:20:05
+++ clientserver.c 2004-07-03 20:22:28
@@ -46,6 +46,9 @@ extern int io_timeout;
extern int orig_umask;
/* this is called when a connection is established to a client
and we want to start talking. The setup of the system is done from
here */
-@@ -545,6 +594,20 @@ int start_daemon(int f_in, int f_out)
+@@ -547,6 +596,20 @@ int start_daemon(int f_in, int f_out)
return -1;
}
AC_MSG_CHECKING([whether to call shutdown on all sockets])
case $host_os in
*cygwin* ) AC_MSG_RESULT(yes)
---- orig/main.c 2004-07-15 17:02:03
+--- orig/main.c 2004-07-21 23:59:35
+++ main.c 2004-07-15 02:40:51
-@@ -54,6 +54,9 @@ extern int read_batch;
- extern int write_batch;
+@@ -55,6 +55,9 @@ extern int write_batch;
extern int batch_fd;
+ extern int batch_gen_fd;
extern int filesfrom_fd;
+#ifdef HAVE_OPENSSL
+extern int use_ssl;
extern pid_t cleanup_child_pid;
extern char *files_from;
extern char *remote_filesfrom_file;
-@@ -748,18 +751,32 @@ static int start_client(int argc, char *
+@@ -750,18 +753,32 @@ static int start_client(int argc, char *
pid_t pid;
int f_in,f_out;
int rc;
p = strchr(host,'/');
if (p) {
*p = 0;
-@@ -807,12 +824,27 @@ static int start_client(int argc, char *
+@@ -809,12 +826,27 @@ static int start_client(int argc, char *
argv++;
} else { /* source is local */
am_sender = 1;
p = strchr(host,'/');
if (p) {
*p = 0;
---- orig/options.c 2004-07-16 20:07:22
+--- orig/options.c 2004-07-21 23:59:35
+++ options.c 2004-07-16 20:19:50
@@ -134,6 +134,14 @@ int quiet = 0;
int always_checksum = 0;
default:
/* A large opt value means that set_refuse_options()
* turned this option off (opt-BASE is its index). */
-@@ -756,6 +789,17 @@ int parse_arguments(int *argc, const cha
+@@ -761,6 +794,17 @@ int parse_arguments(int *argc, const cha
if (do_progress && !verbose)
verbose = 1;
if (bwlimit) {
bwlimit_writemax = (size_t)bwlimit * 128;
if (bwlimit_writemax < 512)
---- orig/rsync.h 2004-07-16 20:07:23
+--- orig/rsync.h 2004-07-20 21:36:08
+++ rsync.h 2004-07-03 20:22:28
@@ -32,6 +32,7 @@
Do we need configure support for mktime()?
---- orig/io.c 2004-07-17 15:20:05
+--- orig/io.c 2004-07-21 23:59:35
+++ io.c 2004-07-17 15:28:36
@@ -49,6 +49,7 @@ extern int am_sender;
extern int eol_nulls;
extern char *remote_filesfrom_file;
extern struct stats stats;
-@@ -134,17 +135,22 @@ static void check_timeout(void)
+@@ -135,17 +136,22 @@ static void check_timeout(void)
{
time_t t;
if (!am_server && !am_daemon) {
rprintf(FERROR, "io timeout after %d seconds - exiting\n",
(int)(t-last_io));
---- orig/options.c 2004-07-16 20:07:22
+--- orig/options.c 2004-07-21 23:59:35
+++ options.c 2004-07-15 17:06:09
@@ -96,6 +96,7 @@ int blocking_io = -1;
int checksum_seed = 0;
default:
/* A large opt value means that set_refuse_options()
* turned this option off (opt-BASE is its index). */
-@@ -930,6 +966,15 @@ void server_options(char **args,int *arg
+@@ -935,6 +971,15 @@ void server_options(char **args,int *arg
args[ac++] = arg;
}
if (backup_dir) {
args[ac++] = "--backup-dir";
args[ac++] = backup_dir;
---- orig/rsync.yo 2004-07-16 20:07:23
+--- orig/rsync.yo 2004-07-20 21:36:08
+++ rsync.yo 2004-07-15 02:44:40
@@ -348,6 +348,8 @@ verb(
--log-format=FORMAT log file transfers using specified format
--write-batch=FILE write a batch to FILE
--read-batch=FILE read a batch from FILE
--checksum-seed=NUM set block/file checksum seed
-@@ -909,6 +911,19 @@ transfer was too fast, it will wait befo
+@@ -912,6 +914,19 @@ transfer was too fast, it will wait befo
result is an average transfer rate equaling the specified limit. A value
of zero specifies no limit.
+number of minutes rsync will run for.
+
dit(bf(--write-batch=FILE)) Record a file that can later be applied to
- anonther identical destination with --read-batch. See the "BATCH MODE"
+ another identical destination with --read-batch. See the "BATCH MODE"
section for details.
--- orig/util.c 2004-06-09 21:54:47
+++ util.c 2004-07-03 20:23:22