X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=logging.c;h=b57888fd5169f044bebd0dd31dcb30c4ce04ed3f;hb=a063e522970946bf7d5dc052079d7773c0dee76d;hp=868ff9874f8a83a6ea573c6b75131ee6d510e7c5;hpb=bb78583ad29084f16db994d66895917e1b20346e;p=PuTTY.git diff --git a/logging.c b/logging.c index 868ff987..b57888fd 100644 --- a/logging.c +++ b/logging.c @@ -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) { @@ -373,6 +375,7 @@ void log_free(void *handle) bufchain_clear(&ctx->queue); if (ctx->currlogfilename) filename_free(ctx->currlogfilename); + conf_free(ctx->conf); sfree(ctx); } @@ -407,9 +410,10 @@ void log_reconfig(void *handle, Conf *conf) * * "&Y":YYYY "&m":MM "&d":DD "&T":hhmmss "&h": "&&":& */ -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; @@ -445,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;