Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mRemoteNG/PuTTYNG.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2015-08-08 15:35:44 +0300
committerSimon Tatham <anakin@pobox.com>2015-10-17 19:30:17 +0300
commit417421caced7a133a66a3a7bcd1e427457c85db3 (patch)
tree5041586b59caee4094bb4d97cae2bfbc4b63a973 /logging.c
parentf59445004e8748d4be12066bb0511f7d06d4806a (diff)
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. (cherry picked from commit 0550943b51c538400e31ce18483032e446178120)
Diffstat (limited to 'logging.c')
-rw-r--r--logging.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/logging.c b/logging.c
index 26634f77..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) {
@@ -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;