1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-14 09:37:34 -05:00

New formatting directive in logfile naming: &P for port number.

Users have requested this from time to time, for distinguishing log
file names when there's more than one SSH server running on different
ports of the same host. Since we do take account of that possibility
in other areas (e.g. we cache host keys indexed by (host,port) rather
than just host), it doesn't seem unreasonable to do so here too.
This commit is contained in:
Simon Tatham
2015-08-08 13:35:44 +01:00
parent 8bf5c1b31f
commit 0550943b51
3 changed files with 14 additions and 5 deletions

View File

@ -22,7 +22,8 @@ struct LogContext {
int logtype; /* cached out of conf */
};
static Filename *xlatlognam(Filename *s, char *hostname, struct tm *tm);
static Filename *xlatlognam(Filename *s, char *hostname, int port,
struct tm *tm);
/*
* Internal wrapper function which must be called for _all_ output
@ -159,7 +160,8 @@ void logfopen(void *handle)
filename_free(ctx->currlogfilename);
ctx->currlogfilename =
xlatlognam(conf_get_filename(ctx->conf, CONF_logfilename),
conf_get_str(ctx->conf, CONF_host), &tm);
conf_get_str(ctx->conf, CONF_host),
conf_get_int(ctx->conf, CONF_port), &tm);
ctx->lgfp = f_open(ctx->currlogfilename, "r", FALSE); /* file already present? */
if (ctx->lgfp) {
@ -408,9 +410,10 @@ void log_reconfig(void *handle, Conf *conf)
*
* "&Y":YYYY "&m":MM "&d":DD "&T":hhmmss "&h":<hostname> "&&":&
*/
static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm)
static Filename *xlatlognam(Filename *src, char *hostname, int port,
struct tm *tm)
{
char buf[10], *bufp;
char buf[32], *bufp;
int size;
char *buffer;
int buflen, bufsize;
@ -446,6 +449,9 @@ static Filename *xlatlognam(Filename *src, char *hostname, struct tm *tm)
bufp = hostname;
size = strlen(bufp);
break;
case 'p':
size = sprintf(buf, "%d", port);
break;
default:
buf[0] = '&';
size = 1;