You must run "make proto" before compiling.
---- orig/generator.c 2004-07-29 16:49:44
+--- orig/generator.c 2004-08-03 15:41:32
+++ generator.c 2004-07-30 07:18:03
-@@ -250,13 +250,13 @@ static void generate_and_send_sums(int f
+@@ -249,13 +249,13 @@ static void generate_and_send_sums(int f
* out. It might be wrong.
*/
static void recv_generator(char *fname, struct file_struct *file, int i,
if (list_only)
return;
-@@ -412,6 +412,7 @@ static void recv_generator(char *fname,
+@@ -411,6 +411,7 @@ static void recv_generator(char *fname,
}
fnamecmp = fname;
if (statret == -1 && compare_dest != NULL) {
/* try the file at compare_dest instead */
-@@ -428,10 +429,14 @@ static void recv_generator(char *fname,
+@@ -427,10 +428,14 @@ static void recv_generator(char *fname,
safe_fname(fname));
}
fnamecmp = fnamecmpbuf;
statret = 0;
}
}
-@@ -446,11 +451,9 @@ static void recv_generator(char *fname,
+@@ -445,11 +450,9 @@ static void recv_generator(char *fname,
if (statret == -1) {
if (preserve_hard_links && hard_link_check(file, HL_SKIP))
return;
rsyserr(FERROR, stat_errno,
"recv_generator: failed to stat %s",
full_fname(fname));
-@@ -458,13 +461,13 @@ static void recv_generator(char *fname,
+@@ -457,13 +460,13 @@ static void recv_generator(char *fname,
return;
}
&& cmp_modtime(st.st_mtime, file->modtime) > 0) {
if (verbose > 1)
rprintf(FINFO, "%s is newer\n", safe_fname(fname));
-@@ -472,21 +475,17 @@ static void recv_generator(char *fname,
+@@ -471,21 +474,17 @@ static void recv_generator(char *fname,
}
if (skip_file(fnamecmp, file, &st)) {
if (partial_dir) {
STRUCT_STAT st2;
-@@ -495,6 +494,7 @@ static void recv_generator(char *fname,
+@@ -494,6 +493,7 @@ static void recv_generator(char *fname,
&& S_ISREG(st2.st_mode)) {
st = st2;
fnamecmp = partialptr;
}
}
-@@ -507,9 +507,8 @@ static void recv_generator(char *fname,
+@@ -506,9 +506,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) {
-@@ -520,14 +519,28 @@ static void recv_generator(char *fname,
+@@ -519,14 +518,28 @@ static void recv_generator(char *fname,
if (verbose > 2)
rprintf(FINFO, "generating and sending sums for %d\n", i);
{
int i;
int phase = 0;
-@@ -568,7 +581,7 @@ void generate_files(int f_out, struct fi
+@@ -567,7 +580,7 @@ void generate_files(int f_out, struct fi
}
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -585,7 +598,7 @@ void generate_files(int f_out, struct fi
+@@ -584,7 +597,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++;
-@@ -604,7 +617,7 @@ void generate_files(int f_out, struct fi
+@@ -603,7 +616,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-29 16:08:03
+--- orig/main.c 2004-07-31 16:41:04
+++ main.c 2004-07-22 00:10:43
-@@ -58,6 +58,7 @@ extern int filesfrom_fd;
+@@ -59,6 +59,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;
-@@ -456,7 +457,8 @@ static int do_recv(int f_in,int f_out,st
+@@ -457,7 +458,8 @@ static int do_recv(int f_in,int f_out,st
{
int pid;
int status = 0;
+ int error_pipe[2], name_pipe[2];
+ BOOL need_name_pipe = compare_dest && !dry_run;
- if (preserve_hard_links)
- init_hard_links(flist);
-@@ -467,8 +469,9 @@ static int do_recv(int f_in,int f_out,st
+ /* The receiving side mustn't obey this, or an existing symlink that
+ * points to an identical file won't be replaced by the referent. */
+@@ -472,8 +474,9 @@ static int do_recv(int f_in,int f_out,st
delete_files(flist);
}
exit_cleanup(RERR_SOCKETIO);
}
-@@ -476,6 +479,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -481,6 +484,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);
-@@ -485,7 +493,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -490,7 +498,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);
-@@ -504,6 +512,11 @@ static int do_recv(int f_in,int f_out,st
+@@ -509,6 +517,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);
-@@ -511,7 +524,7 @@ static int do_recv(int f_in,int f_out,st
+@@ -516,7 +529,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-30 07:04:00
+--- orig/receiver.c 2004-08-03 15:34:32
+++ receiver.c 2004-07-30 07:17:48
@@ -333,7 +333,8 @@ static void discard_receive_data(int f_i
* main routine for receiver process.
if (fd1 != -1 && do_fstat(fd1,&st) != 0) {
rsyserr(FERROR, errno, "fstat %s failed",
full_fname(fnamecmp));
---- orig/rsync.h 2004-07-29 16:08:03
+--- orig/rsync.h 2004-08-03 15:41:32
+++ rsync.h 2004-07-30 07:16:38
@@ -118,6 +118,9 @@
#define PDIR_CREATE 1