X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/a832773496d46caa5e328d36a15b4918f24a804e..2dc6356a02ebe2e5c0428cefc18e64882d85b4a6:/logging.c diff --git a/logging.c b/logging.c index 6eaa3e9a..9e8b9f83 100644 --- a/logging.c +++ b/logging.c @@ -34,17 +34,27 @@ void logtraffic(void *handle, unsigned char c, int logmode) } /* - * Log an Event Log entry (used in SSH packet logging mode). + * Log an Event Log entry. Used in SSH packet logging mode; this is + * also as convenient a place as any to put the output of Event Log + * entries to stderr when a command-line tool is in verbose mode. + * (In particular, this is a better place to put it than in the + * front ends, because it only has to be done once for all + * platforms. Platforms which don't have a meaningful stderr can + * just avoid defining FLAG_STDERR. */ void log_eventlog(void *handle, char *event) { struct LogContext *ctx = (struct LogContext *)handle; + if ((flags & FLAG_STDERR) && (flags & FLAG_VERBOSE)) { + fprintf(stderr, "%s\n", event); + fflush(stderr); + } if (cfg.logtype != LGTYP_PACKETS) return; if (!ctx->lgfp) logfopen(ctx); if (ctx->lgfp) - fprintf(ctx->lgfp, "Event Log: %s\n", event); + fprintf(ctx->lgfp, "Event Log: %s\r\n", event); } /* @@ -62,11 +72,11 @@ void log_packet(void *handle, int direction, int type, if (!ctx->lgfp) logfopen(ctx); if (ctx->lgfp) { - fprintf(ctx->lgfp, "%s packet type %d / 0x%02x (%s)\n", + fprintf(ctx->lgfp, "%s packet type %d / 0x%02x (%s)\r\n", direction == PKT_INCOMING ? "Incoming" : "Outgoing", type, type, texttype); for (i = 0; i < len; i += 16) { - sprintf(dumpdata, " %08x%*s\n", i, 1+3*16+2+16, ""); + sprintf(dumpdata, " %08x%*s\r\n", i, 1+3*16+2+16, ""); for (j = 0; j < 16 && i+j < len; j++) { int c = ((unsigned char *)data)[i+j]; sprintf(smalldata, "%02x", c); @@ -74,7 +84,7 @@ void log_packet(void *handle, int direction, int type, dumpdata[10+2+3*j+1] = smalldata[1]; dumpdata[10+1+3*16+2+j] = (isprint(c) ? c : '.'); } - strcpy(dumpdata + 10+1+3*16+2+j, "\n"); + strcpy(dumpdata + 10+1+3*16+2+j, "\r\n"); fputs(dumpdata, ctx->lgfp); } fflush(ctx->lgfp);