mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00: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:
parent
8bf5c1b31f
commit
0550943b51
2
config.c
2
config.c
@ -1478,7 +1478,7 @@ void setup_config_box(struct controlbox *b, int midsession,
|
||||
HELPCTX(logging_filename),
|
||||
conf_filesel_handler, I(CONF_logfilename));
|
||||
ctrl_text(s, "(Log file name can contain &Y, &M, &D for date,"
|
||||
" &T for time, and &H for host name)",
|
||||
" &T for time, &H for host name, and &P for port number)",
|
||||
HELPCTX(logging_filename));
|
||||
ctrl_radiobuttons(s, "What to do if the log file already exists:", 'e', 1,
|
||||
HELPCTX(logging_exists),
|
||||
|
@ -207,6 +207,9 @@ digits.
|
||||
|
||||
\b \c{&H} will be replaced by the host name you are connecting to.
|
||||
|
||||
\b \c{&P} will be replaced by the port number you are connecting to on
|
||||
the target host.
|
||||
|
||||
For example, if you enter the host name
|
||||
\c{c:\\puttylogs\\log-&h-&y&m&d-&t.dat}, you will end up with files looking
|
||||
like
|
||||
|
14
logging.c
14
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;
|
||||
|
Loading…
Reference in New Issue
Block a user