X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/3648ab3a2474ba318291dc9184cd68fa7b120591..de3438407c4f976c55172093795b87e49cb4a6e2:/log.c diff --git a/log.c b/log.c index 4b78d25b..135a57a1 100644 --- a/log.c +++ b/log.c @@ -39,11 +39,13 @@ extern int local_server; extern int quiet; extern int module_id; extern int msg_fd_out; +extern int allow_8bit_chars; extern int protocol_version; extern int preserve_times; extern int log_format_has_i; extern int log_format_has_o_or_i; extern int daemon_log_format_has_o_or_i; +extern mode_t orig_umask; extern char *auth_user; extern char *log_format; #if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H @@ -142,8 +144,7 @@ static void syslog_init() static void logfile_open(void) { - extern int orig_umask; - int old_umask = umask(022 | orig_umask); + mode_t old_umask = umask(022 | orig_umask); logfile = fopen(logfname, "a"); umask(old_umask); if (!logfile) { @@ -318,7 +319,7 @@ void rwrite(enum logcode code, char *buf, int len) filtered_fwrite(f, convbuf, out_buf - convbuf, 0); } else #endif - filtered_fwrite(f, buf, len, 1); + filtered_fwrite(f, buf, len, !allow_8bit_chars); if (trailing_CR_or_NL) { fputc(trailing_CR_or_NL, f); @@ -607,7 +608,8 @@ static void log_formatted(enum logcode code, char *format, char *op, n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p'; n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o'; n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g'; - n[8] = '\0'; + n[8] = '.'; + n[9] = '\0'; if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) { char ch = iflags & ITEM_IS_NEW ? '+' : '?'; @@ -767,11 +769,11 @@ void log_exit(int code, const char *file, int line) /* VANISHED is not an error, only a warning */ if (code == RERR_VANISHED) { - rprintf(FINFO, "rsync warning: %s (code %d) at %s(%d) [%s]\n", - name, code, file, line, who_am_i()); + rprintf(FINFO, "rsync warning: %s (code %d) at %s(%d) [%s=%s]\n", + name, code, file, line, who_am_i(), RSYNC_VERSION); } else { - rprintf(FERROR, "rsync error: %s (code %d) at %s(%d) [%s]\n", - name, code, file, line, who_am_i()); + rprintf(FERROR, "rsync error: %s (code %d) at %s(%d) [%s=%s]\n", + name, code, file, line, who_am_i(), RSYNC_VERSION); } } }