Log file tinkering: copy Event Log entries into the SSH packet log,
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 15 Sep 2002 13:21:32 +0000 (13:21 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Sun, 15 Sep 2002 13:21:32 +0000 (13:21 +0000)
so that when people send us a packet log they never forget to send
the Event Log alongside it :-)

git-svn-id: svn://svn.tartarus.org/sgt/putty@1960 cda61777-01e9-0310-a592-d414129be87e

logging.c
putty.h
windlg.c

index 76dcb95..b311784 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -33,11 +33,24 @@ void logtraffic(unsigned char c, int logmode)
 }
 
 /*
+ * Log an Event Log entry (used in SSH packet logging mode).
+ */
+void log_eventlog(char *event)
+{
+    if (cfg.logtype != LGTYP_PACKETS)
+       return;
+    if (!lgfp)
+       logfopen();
+    if (lgfp)
+       fprintf(lgfp, "Event Log: %s\n", event);
+}
+
+/*
  * Log an SSH packet.
  */
 void log_packet(int direction, int type, char *texttype, void *data, int len)
 {
-    int i, j, c;
+    int i, j;
     char dumpdata[80], smalldata[5];
 
     if (cfg.logtype != LGTYP_PACKETS)
@@ -72,6 +85,10 @@ void logfopen(void)
     struct tm tm;
     char writemod[4];
 
+    /* Prevent repeat calls */
+    if (lgfp)
+       return;
+
     if (!cfg.logtype)
        return;
     sprintf(writemod, "wb");          /* default to rewrite */
@@ -98,20 +115,21 @@ void logfopen(void)
 
     lgfp = fopen(currlogfilename, writemod);
     if (lgfp) {                               /* enter into event log */
-       sprintf(buf, "%s session log (%s mode) to file : ",
+       /* --- write header line into log file */
+       fputs("=~=~=~=~=~=~=~=~=~=~=~= PuTTY log ", lgfp);
+       strftime(buf, 24, "%Y.%m.%d %H:%M:%S", &tm);
+       fputs(buf, lgfp);
+       fputs(" =~=~=~=~=~=~=~=~=~=~=~=\r\n", lgfp);
+
+       sprintf(buf, "%s session log (%s mode) to file: ",
                (writemod[0] == 'a') ? "Appending" : "Writing new",
                (cfg.logtype == LGTYP_ASCII ? "ASCII" :
-                cfg.logtype == LGTYP_DEBUG ? "raw" : "<ukwn>"));
+                cfg.logtype == LGTYP_DEBUG ? "raw" :
+                cfg.logtype == LGTYP_PACKETS ? "SSH packets" : "<ukwn>"));
        /* Make sure we do not exceed the output buffer size */
        strncat(buf, currlogfilename, 128);
        buf[strlen(buf)] = '\0';
        logevent(buf);
-
-       /* --- write header line into log file */
-       fputs("=~=~=~=~=~=~=~=~=~=~=~= PuTTY log ", lgfp);
-       strftime(buf, 24, "%Y.%m.%d %H:%M:%S", &tm);
-       fputs(buf, lgfp);
-       fputs(" =~=~=~=~=~=~=~=~=~=~=~=\r\n", lgfp);
     }
 }
 
diff --git a/putty.h b/putty.h
index e2a7fea..d69339a 100644 (file)
--- a/putty.h
+++ b/putty.h
@@ -518,6 +518,7 @@ void term_reconfig(void);
  */
 void logtraffic(unsigned char c, int logmode);
 enum { PKT_INCOMING, PKT_OUTGOING };
+void log_eventlog(char *string);
 void log_packet(int direction, int type, char *texttype, void *data, int len);
 
 /*
index 76d4804..c8f7ec1 100644 (file)
--- a/windlg.c
+++ b/windlg.c
@@ -3705,6 +3705,8 @@ void logevent(char *string)
     char timebuf[40];
     time_t t;
 
+    log_eventlog(string);
+
     if (nevents >= negsize) {
        negsize += 64;
        events = srealloc(events, negsize * sizeof(*events));