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
- Added a new function, maybe_hard_link(), which now holds the code
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
b991500
..
3bb3749
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-25,6
+25,7
@@
extern int verbose;
extern int dry_run;
extern int verbose;
extern int dry_run;
+extern int do_xfers;
extern int log_format_has_i;
extern int log_format_has_o_or_i;
extern int daemon_log_format_has_i;
extern int log_format_has_i;
extern int log_format_has_o_or_i;
extern int daemon_log_format_has_i;
@@
-667,7
+668,8
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (only_existing && statret == -1 && stat_errno == ENOENT) {
/* we only want to update existing files */
if (verbose > 1) {
if (only_existing && statret == -1 && stat_errno == ENOENT) {
/* we only want to update existing files */
if (verbose > 1) {
- rprintf(FINFO, "not creating new file \"%s\"\n",
+ rprintf(FINFO, "not creating new %s \"%s\"\n",
+ S_ISDIR(file->mode) ? "directory" : "file",
safe_fname(fname));
}
return;
safe_fname(fname));
}
return;
@@
-721,6
+723,8
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
if (max_size && file->length > max_size) {
if (verbose > 1) {
if (max_size && file->length > max_size) {
if (verbose > 1) {
+ if (the_file_list->count == 1)
+ fname = f_name(file);
rprintf(FINFO, "%s is over max-size\n",
safe_fname(fname));
}
rprintf(FINFO, "%s is over max-size\n",
safe_fname(fname));
}
@@
-731,6
+735,8
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
#ifdef SUPPORT_LINKS
if (safe_symlinks && unsafe_symlink(file->u.link, fname)) {
if (verbose) {
#ifdef SUPPORT_LINKS
if (safe_symlinks && unsafe_symlink(file->u.link, fname)) {
if (verbose) {
+ if (the_file_list->count == 1)
+ fname = f_name(file);
rprintf(FINFO,
"ignoring unsafe symlink %s -> \"%s\"\n",
full_fname(fname),
rprintf(FINFO,
"ignoring unsafe symlink %s -> \"%s\"\n",
full_fname(fname),
@@
-823,10
+829,14
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
return;
}
return;
}
- if (preserve_hard_links && hard_link_check(file, ndx, HL_CHECK_MASTER))
+ if (preserve_hard_links
+ && hard_link_check(file, ndx, fname, statret, &st,
+ itemizing, code, HL_CHECK_MASTER))
return;
if (!S_ISREG(file->mode)) {
return;
if (!S_ISREG(file->mode)) {
+ if (the_file_list->count == 1)
+ fname = f_name(file);
rprintf(FINFO, "skipping non-regular file \"%s\"\n",
safe_fname(fname));
return;
rprintf(FINFO, "skipping non-regular file \"%s\"\n",
safe_fname(fname));
return;
@@
-906,11
+916,6
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
itemizing && verbose > 1,
code) == 0)
return;
itemizing && verbose > 1,
code) == 0)
return;
- if (verbose) {
- rsyserr(FINFO, errno, "link %s => %s",
- full_fname(fnamecmpbuf),
- safe_fname(fname));
- }
match_level = 2;
}
#endif
match_level = 2;
}
#endif
@@
-979,7
+984,9
@@
static void recv_generator(char *fname, struct file_struct *file, int ndx,
}
if (statret != 0) {
}
if (statret != 0) {
- if (preserve_hard_links && hard_link_check(file, ndx, HL_SKIP))
+ if (preserve_hard_links
+ && hard_link_check(file, ndx, fname, statret, &st,
+ itemizing, code, HL_SKIP))
return;
if (stat_errno == ENOENT)
goto notify_others;
return;
if (stat_errno == ENOENT)
goto notify_others;
@@
-1020,7
+1027,7
@@
prepare_to_open:
statret = 0;
}
statret = 0;
}
- if (
dry_run
|| read_batch || whole_file)
+ if (
!do_xfers
|| read_batch || whole_file)
goto notify_others;
if (fuzzy_basis) {
goto notify_others;
if (fuzzy_basis) {
@@
-1037,7
+1044,9
@@
prepare_to_open:
full_fname(fnamecmp));
pretend_missing:
/* pretend the file didn't exist */
full_fname(fnamecmp));
pretend_missing:
/* pretend the file didn't exist */
- if (preserve_hard_links && hard_link_check(file, ndx, HL_SKIP))
+ if (preserve_hard_links
+ && hard_link_check(file, ndx, fname, statret, &st,
+ itemizing, code, HL_SKIP))
return;
statret = real_ret = -1;
goto notify_others;
return;
statret = real_ret = -1;
goto notify_others;
@@
-1092,7
+1101,7
@@
notify_others:
fuzzy_file ? fuzzy_file->basename : NULL);
}
fuzzy_file ? fuzzy_file->basename : NULL);
}
- if (
dry_run
) {
+ if (
!do_xfers
) {
if (preserve_hard_links && file->link_u.links)
hard_link_cluster(file, ndx, itemizing, code);
return;
if (preserve_hard_links && file->link_u.links)
hard_link_cluster(file, ndx, itemizing, code);
return;
@@
-1132,6
+1141,7
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
int save_only_existing = only_existing;
int save_opt_ignore_existing = opt_ignore_existing;
int save_do_progress = do_progress;
int save_only_existing = only_existing;
int save_opt_ignore_existing = opt_ignore_existing;
int save_do_progress = do_progress;
+ int save_make_backups = make_backups;
allowed_lull = read_batch ? 0 : (io_timeout + 1) / 2;
lull_mod = allowed_lull * 5;
allowed_lull = read_batch ? 0 : (io_timeout + 1) / 2;
lull_mod = allowed_lull * 5;
@@
-1141,9
+1151,9
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT;
code = daemon_log_format_has_i ? 0 : FLOG;
} else if (am_daemon) {
maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT;
code = daemon_log_format_has_i ? 0 : FLOG;
} else if (am_daemon) {
- itemizing = daemon_log_format_has_i &&
!dry_run
;
+ itemizing = daemon_log_format_has_i &&
do_xfers
;
maybe_PERMS_REPORT = PERMS_REPORT;
maybe_PERMS_REPORT = PERMS_REPORT;
- code = itemizing ||
dry_run
? FCLIENT : FINFO;
+ code = itemizing ||
!do_xfers
? FCLIENT : FINFO;
} else if (!am_server) {
itemizing = log_format_has_i;
maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT;
} else if (!am_server) {
itemizing = log_format_has_i;
maybe_PERMS_REPORT = log_format_has_i ? 0 : PERMS_REPORT;
@@
-1205,7
+1215,7
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
if (allowed_lull && !(i % lull_mod))
maybe_send_keepalive();
if (allowed_lull && !(i % lull_mod))
maybe_send_keepalive();
- else if (!(i %
5
0))
+ else if (!(i %
20
0))
maybe_flush_socket();
}
recv_generator(NULL, NULL, 0, 0, 0, code, -1);
maybe_flush_socket();
}
recv_generator(NULL, NULL, 0, 0, 0, code, -1);
@@
-1240,6
+1250,7
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
phase++;
only_existing = save_only_existing;
opt_ignore_existing = save_opt_ignore_existing;
phase++;
only_existing = save_only_existing;
opt_ignore_existing = save_opt_ignore_existing;
+ make_backups = save_make_backups;
if (verbose > 2)
rprintf(FINFO,"generate_files phase=%d\n",phase);
if (verbose > 2)
rprintf(FINFO,"generate_files phase=%d\n",phase);
@@
-1282,7
+1293,7
@@
void generate_files(int f_out, struct file_list *flist, char *local_name)
maybe_PERMS_REPORT, code, -1);
if (allowed_lull && !(++j % lull_mod))
maybe_send_keepalive();
maybe_PERMS_REPORT, code, -1);
if (allowed_lull && !(++j % lull_mod))
maybe_send_keepalive();
- else if (!(j %
5
0))
+ else if (!(j %
20
0))
maybe_flush_socket();
}
}
maybe_flush_socket();
}
}