extern int always_checksum;
extern char *partial_dir;
extern char *compare_dest;
-@@ -249,6 +250,94 @@ static void generate_and_send_sums(int f
+@@ -240,6 +241,94 @@ static void generate_and_send_sums(int f
}
/*
* Acts on file number @p i from @p flist, whose name is @p fname.
-@@ -263,7 +352,7 @@ static void recv_generator(char *fname,
+@@ -254,7 +343,7 @@ static void recv_generator(char *fname,
{
int fd = -1;
STRUCT_STAT st;
char *fnamecmp;
char fnamecmpbuf[MAXPATHLEN];
-@@ -448,6 +537,14 @@ static void recv_generator(char *fname,
+@@ -439,6 +528,14 @@ static void recv_generator(char *fname,
} else
*fnamecmpbuf = '\0';
if (statret == 0 && !S_ISREG(st.st_mode)) {
if (delete_file(fname) != 0)
return;
-@@ -481,7 +578,7 @@ static void recv_generator(char *fname,
+@@ -472,7 +569,7 @@ static void recv_generator(char *fname,
return;
}
-- if (skip_file(fname, file, &st)) {
-+ if (!fuzzy_file && skip_file(fname, file, &st)) {
+- if (skip_file(fnamecmp, file, &st)) {
++ if (!fuzzy_file && skip_file(fnamecmp, file, &st)) {
if (!*fnamecmpbuf)
set_perms(fname, file, &st, PERMS_REPORT);
return;
You must run "make proto" before compiling.
---- orig/generator.c 2004-07-29 16:08:03
+--- orig/generator.c 2004-07-29 16:49:44
+++ generator.c 2004-07-28 10:14:15
-@@ -259,9 +259,9 @@ static void generate_and_send_sums(int f
+@@ -250,9 +250,9 @@ 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,
STRUCT_STAT st;
int statret, stat_errno;
char *fnamecmp;
-@@ -437,13 +437,16 @@ static void recv_generator(char *fname,
+@@ -428,13 +428,16 @@ static void recv_generator(char *fname,
safe_fname(fname));
}
fnamecmp = fnamecmpbuf;
if (statret == 0 && !S_ISREG(st.st_mode)) {
if (delete_file(fname) != 0)
-@@ -455,11 +458,9 @@ static void recv_generator(char *fname,
+@@ -446,11 +449,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));
-@@ -467,13 +468,13 @@ static void recv_generator(char *fname,
+@@ -458,13 +459,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));
-@@ -481,21 +482,17 @@ static void recv_generator(char *fname,
+@@ -472,21 +473,17 @@ static void recv_generator(char *fname,
}
- if (skip_file(fname, file, &st)) {
+ if (skip_file(fnamecmp, file, &st)) {
- if (fnamecmp == fname)
+ if (!*fnamecmpbuf)
set_perms(fname, file, &st, PERMS_REPORT);
if (partial_dir) {
STRUCT_STAT st2;
-@@ -516,9 +513,8 @@ static void recv_generator(char *fname,
+@@ -507,9 +504,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) {
-@@ -529,14 +525,41 @@ static void recv_generator(char *fname,
+@@ -520,14 +516,41 @@ static void recv_generator(char *fname,
if (verbose > 2)
rprintf(FINFO, "generating and sending sums for %d\n", i);
{
int i;
int phase = 0;
-@@ -577,7 +600,7 @@ void generate_files(int f_out, struct fi
+@@ -568,7 +591,7 @@ void generate_files(int f_out, struct fi
}
recv_generator(local_name ? local_name : f_name_to(file, fbuf),
}
phase++;
-@@ -594,7 +617,7 @@ void generate_files(int f_out, struct fi
+@@ -585,7 +608,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++;
-@@ -613,7 +636,7 @@ void generate_files(int f_out, struct fi
+@@ -604,7 +627,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),