зеркало из https://github.com/github/putty.git
Log file tinkering: copy Event Log entries into the SSH packet log,
so that when people send us a packet log they never forget to send the Event Log alongside it :-) [originally from svn r1960]
This commit is contained in:
Родитель
9164a7b176
Коммит
994aee285f
38
logging.c
38
logging.c
|
@ -32,12 +32,25 @@ 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 : ",
|
||||
(writemod[0] == 'a') ? "Appending" : "Writing new",
|
||||
(cfg.logtype == LGTYP_ASCII ? "ASCII" :
|
||||
cfg.logtype == LGTYP_DEBUG ? "raw" : "<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);
|
||||
|
||||
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" :
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
1
putty.h
1
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);
|
||||
|
||||
/*
|
||||
|
|
2
windlg.c
2
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));
|
||||
|
|
Загрузка…
Ссылка в новой задаче