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
Incremented the version to 2.6.9cvs.
[rsync/rsync.git]
/
log.c
diff --git
a/log.c
b/log.c
index
9a9f083
..
135a57a
100644
(file)
--- a/
log.c
+++ b/
log.c
@@
-26,7
+26,7
@@
<mbp@samba.org>, Oct 2000.
*/
#include "rsync.h"
<mbp@samba.org>, Oct 2000.
*/
#include "rsync.h"
-#if defined HAVE_ICONV && defined HAVE_ICONV_H
+#if defined HAVE_ICONV
_OPEN
&& defined HAVE_ICONV_H
#include <iconv.h>
#endif
#include <iconv.h>
#endif
@@
-39,14
+39,16
@@
extern int local_server;
extern int quiet;
extern int module_id;
extern int msg_fd_out;
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 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;
extern char *auth_user;
extern char *log_format;
-#if
def HAVE_ICONV
+#if
defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
extern iconv_t ic_chck;
#endif
extern iconv_t ic_chck;
#endif
@@
-142,8
+144,7
@@
static void syslog_init()
static void logfile_open(void)
{
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) {
logfile = fopen(logfname, "a");
umask(old_umask);
if (!logfile) {
@@
-195,24
+196,21
@@
void logfile_reopen(void)
}
}
}
}
-static void filtered_fwrite(
const char *buf, int len, FILE *f
)
+static void filtered_fwrite(
FILE *f, const char *buf, int len, int use_isprint
)
{
const char *s, *end = buf + len;
for (s = buf; s < end; s++) {
if ((s < end - 4
{
const char *s, *end = buf + len;
for (s = buf; s < end; s++) {
if ((s < end - 4
- && *s == '\\' && s[1] == '
0
'
+ && *s == '\\' && s[1] == '
#
'
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
&& isdigit(*(uchar*)(s+2))
&& isdigit(*(uchar*)(s+3))
&& isdigit(*(uchar*)(s+4)))
-#ifdef HAVE_ICONV
- || (*(uchar*)s < ' ' && *s != '\t')
-#else
- || ((!isprint(*(uchar*)s) || *(uchar*)s < ' ') && *s != '\t')
-#endif
- ) {
+ || (*s != '\t'
+ && ((use_isprint && !isprint(*(uchar*)s))
+ || *(uchar*)s < ' '))) {
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
if (s != buf && fwrite(buf, s - buf, 1, f) != 1)
exit_cleanup(RERR_MESSAGEIO);
- fprintf(f, "\\
%04
o", *(uchar*)s);
+ fprintf(f, "\\
#%03
o", *(uchar*)s);
buf = s + 1;
}
}
buf = s + 1;
}
}
@@
-298,7
+296,7
@@
void rwrite(enum logcode code, char *buf, int len)
trailing_CR_or_NL = len && (buf[len-1] == '\n' || buf[len-1] == '\r')
? buf[--len] : 0;
trailing_CR_or_NL = len && (buf[len-1] == '\n' || buf[len-1] == '\r')
? buf[--len] : 0;
-#if
def HAVE_ICONV
+#if
defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
if (ic_chck != (iconv_t)-1) {
char convbuf[1024];
char *in_buf = buf, *out_buf = convbuf;
if (ic_chck != (iconv_t)-1) {
char convbuf[1024];
char *in_buf = buf, *out_buf = convbuf;
@@
-308,20
+306,20
@@
void rwrite(enum logcode code, char *buf, int len)
while (iconv(ic_chck, &in_buf,&in_cnt,
&out_buf,&out_cnt) == (size_t)-1) {
if (out_buf != convbuf) {
while (iconv(ic_chck, &in_buf,&in_cnt,
&out_buf,&out_cnt) == (size_t)-1) {
if (out_buf != convbuf) {
- filtered_fwrite(
convbuf, out_buf - convbuf, f
);
+ filtered_fwrite(
f, convbuf, out_buf - convbuf, 0
);
out_buf = convbuf;
out_cnt = sizeof convbuf - 1;
}
if (errno == E2BIG)
continue;
out_buf = convbuf;
out_cnt = sizeof convbuf - 1;
}
if (errno == E2BIG)
continue;
- fprintf(f, "\\
%04
o", *(uchar*)in_buf++);
+ fprintf(f, "\\
#%03
o", *(uchar*)in_buf++);
in_cnt--;
}
if (out_buf != convbuf)
in_cnt--;
}
if (out_buf != convbuf)
- filtered_fwrite(
convbuf, out_buf - convbuf, f
);
+ filtered_fwrite(
f, convbuf, out_buf - convbuf, 0
);
} else
#endif
} else
#endif
- filtered_fwrite(
buf, len, f
);
+ filtered_fwrite(
f, buf, len, !allow_8bit_chars
);
if (trailing_CR_or_NL) {
fputc(trailing_CR_or_NL, f);
if (trailing_CR_or_NL) {
fputc(trailing_CR_or_NL, f);
@@
-610,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[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 ? '+' : '?';
if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) {
char ch = iflags & ITEM_IS_NEW ? '+' : '?';
@@
-770,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) {
/* 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 {
} 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
);
}
}
}
}
}
}