aboutsummaryrefslogtreecommitdiffstats
path: root/log.c
diff options
context:
space:
mode:
authorWayne Davison <wayned@samba.org>2008-02-18 14:10:13 -0800
committerWayne Davison <wayned@samba.org>2008-02-18 15:57:59 -0800
commit1ed56a05c26b6cb6f3891ce16be89aeab388a293 (patch)
tree52afcc200e3f4f3ba65b28afc95009bccfcbb885 /log.c
parent28fb6365d096cf1e7125cde322c92c1b80b4ecee (diff)
downloadandroid_external_rsync-1ed56a05c26b6cb6f3891ce16be89aeab388a293.tar.gz
android_external_rsync-1ed56a05c26b6cb6f3891ce16be89aeab388a293.tar.bz2
android_external_rsync-1ed56a05c26b6cb6f3891ce16be89aeab388a293.zip
Extended the protocol-30 info-passing code at startup, and use it to
tell the client if the server can set the times on a symlink (both the server->client byte and the client->server use of -e). Make use of this info to allow the proper output of the 't' flag when rsync can set the time on a symlink (and we're talking protocol >= 30). Added output of "[no] symtimes" info in the --version message. Fixed the itemize.test so that it works when rsync believes that it can set the time of a symlink, but it can't really do it.
Diffstat (limited to 'log.c')
-rw-r--r--log.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/log.c b/log.c
index c7007dbb..c5dcbb94 100644
--- a/log.c
+++ b/log.c
@@ -41,6 +41,7 @@ extern int stdout_format_has_i;
extern int stdout_format_has_o_or_i;
extern int logfile_format_has_i;
extern int logfile_format_has_o_or_i;
+extern int receiver_symlink_times;
extern mode_t orig_umask;
extern char *auth_user;
extern char *stdout_format;
@@ -638,7 +639,8 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
c[2] = !(iflags & ITEM_REPORT_CHECKSUM) ? '.' : 'c';
c[3] = !(iflags & ITEM_REPORT_SIZE) ? '.' : 's';
c[4] = !(iflags & ITEM_REPORT_TIME) ? '.'
- : !preserve_times || S_ISLNK(file->mode) ? 'T' : 't';
+ : !preserve_times || (!receiver_symlink_times && S_ISLNK(file->mode))
+ ? 'T' : 't';
c[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p';
c[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o';
c[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g';