From 491a69769cb9db97e6566679b6ac0887bdda3292 Mon Sep 17 00:00:00 2001 From: marha Date: Fri, 19 Nov 2010 12:38:01 +0000 Subject: Updated to revision 9025 of putty --- tools/plink/logging.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'tools/plink/logging.c') diff --git a/tools/plink/logging.c b/tools/plink/logging.c index 6b8eaa7c5..4c7aa918c 100644 --- a/tools/plink/logging.c +++ b/tools/plink/logging.c @@ -43,7 +43,13 @@ static void logwrite(struct LogContext *ctx, void *data, int len) bufchain_add(&ctx->queue, data, len); } else if (ctx->state == L_OPEN) { assert(ctx->lgfp); - fwrite(data, 1, len, ctx->lgfp); + if (fwrite(data, 1, len, ctx->lgfp) < len) { + logfclose(ctx); + ctx->state = L_ERROR; + /* Log state is L_ERROR so this won't cause a loop */ + logevent(ctx->frontend, + "Disabled writing session log due to error while writing"); + } } /* else L_ERROR, so ignore the write */ } @@ -101,8 +107,9 @@ static void logfopen_callback(void *handle, int mode) } event = dupprintf("%s session log (%s mode) to file: %s", - (mode == 0 ? "Disabled writing" : - mode == 1 ? "Appending" : "Writing new"), + ctx->state == L_ERROR ? + (mode == 0 ? "Disabled writing" : "Error writing") : + (mode == 1 ? "Appending" : "Writing new"), (ctx->cfg.logtype == LGTYP_ASCII ? "ASCII" : ctx->cfg.logtype == LGTYP_DEBUG ? "raw" : ctx->cfg.logtype == LGTYP_PACKETS ? "SSH packets" : -- cgit v1.2.3