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
Changed delete_missing() to not limit the use of DEL_FORCE_RECURSE
[rsync/rsync.git]
/
rsync.c
diff --git
a/rsync.c
b/rsync.c
index
576ce63
..
537df0a
100644
(file)
--- a/
rsync.c
+++ b/
rsync.c
@@
-27,6
+27,7
@@
extern int dry_run;
extern int preserve_times;
extern int omit_dir_times;
extern int am_root;
extern int preserve_times;
extern int omit_dir_times;
extern int am_root;
+extern int am_server;
extern int am_sender;
extern int am_generator;
extern int preserve_uid;
extern int am_sender;
extern int am_generator;
extern int preserve_uid;
@@
-76,7
+77,8
@@
int delete_file(char *fname, int flags)
return -1;
}
return -1;
}
- zap_dir = flags & DEL_RECURSE || (force_delete && recurse);
+ zap_dir = (flags & DEL_FORCE_RECURSE || (force_delete && recurse))
+ && !(flags & DEL_NO_RECURSE);
if (dry_run && zap_dir)
errno = ENOTEMPTY;
else if (do_rmdir(fname) == 0) {
if (dry_run && zap_dir)
errno = ENOTEMPTY;
else if (do_rmdir(fname) == 0) {
@@
-220,7
+222,7
@@
int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st,
updated = 1;
}
updated = 1;
}
-#if
def
HAVE_CHMOD
+#if HAVE_CHMOD
if (!S_ISLNK(st->st_mode)) {
if ((st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS)) {
updated = 1;
if (!S_ISLNK(st->st_mode)) {
if ((st->st_mode & CHMOD_BITS) != (file->mode & CHMOD_BITS)) {
updated = 1;
@@
-298,5
+300,7
@@
void finish_transfer(char *fname, char *fnametmp, struct file_struct *file,
const char *who_am_i(void)
{
const char *who_am_i(void)
{
+ if (am_sender < 0)
+ return am_server ? "server" : "client";
return am_sender ? "sender" : am_generator ? "generator" : "receiver";
}
return am_sender ? "sender" : am_generator ? "generator" : "receiver";
}