Fix `puttygen-unix-perms': f_open(), PuTTY's wrapper on fopen, now
[u/mdw/putty] / logging.c
index 1a98213..bd5705c 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -85,7 +85,7 @@ static void logfopen_callback(void *handle, int mode)
        ctx->state = L_ERROR;          /* disable logging */
     } else {
        fmode = (mode == 1 ? "ab" : "wb");
-       ctx->lgfp = f_open(ctx->currlogfilename, fmode);
+       ctx->lgfp = f_open(ctx->currlogfilename, fmode, TRUE);
        if (ctx->lgfp)
            ctx->state = L_OPEN;
        else
@@ -149,7 +149,7 @@ void logfopen(void *handle)
     /* substitute special codes in file name */
     xlatlognam(&ctx->currlogfilename, ctx->cfg.logfilename,ctx->cfg.host, &tm);
 
-    ctx->lgfp = f_open(ctx->currlogfilename, "r");  /* file already present? */
+    ctx->lgfp = f_open(ctx->currlogfilename, "r", FALSE);  /* file already present? */
     if (ctx->lgfp) {
        fclose(ctx->lgfp);
        if (ctx->cfg.logxfovr != LGXF_ASK) {
@@ -204,6 +204,9 @@ void log_eventlog(void *handle, const char *event)
        fprintf(stderr, "%s\n", event);
        fflush(stderr);
     }
+    /* If we don't have a context yet (eg winnet.c init) then skip entirely */
+    if (!ctx)
+       return;
     if (ctx->cfg.logtype != LGTYP_PACKETS &&
        ctx->cfg.logtype != LGTYP_SSHRAW)
        return;
@@ -352,7 +355,7 @@ void log_reconfig(void *handle, Config *cfg)
  * translate format codes into time/date strings
  * and insert them into log file name
  *
- * "&Y":YYYY   "&m":MM   "&d":DD   "&T":hhmm   "&h":<hostname>   "&&":&
+ * "&Y":YYYY   "&m":MM   "&d":DD   "&T":hhmmss   "&h":<hostname>   "&&":&
  */
 static void xlatlognam(Filename *dest, Filename src,
                       char *hostname, struct tm *tm) {