From: Simon Tatham Date: Thu, 24 Sep 2015 16:30:04 +0000 (+0100) Subject: Command-line options to log sessions. X-Git-Tag: 0.66~14 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=31c5784d4b514becf0028f3b3d38d8e28305dad7;p=PuTTY.git Command-line options to log sessions. Log files, especially SSH packet logs, are often things you want to generate in unusual circumstances, so it's good to have lots of ways to ask for them. Particularly, it's especially painful to have to set up a custom saved session to get diagnostics out of the command-line tools. I've added options '-sessionlog', '-sshlog' and '-sshrawlog', each of which takes a filename argument. I think the fourth option (session output but filtered down to the printable subset) is not really a _debugging_ log in the same sense, so it's not as critical to have an option for it. (cherry picked from commit 13edf90e0a4397088085cfcd53a4311319b708b4) --- diff --git a/cmdline.c b/cmdline.c index 327a585a..bcfdcf88 100644 --- a/cmdline.c +++ b/cmdline.c @@ -572,6 +572,23 @@ int cmdline_process_param(char *p, char *value, int need_save, Conf *conf) nextitem += length + skip; } } + + if (!strcmp(p, "-sessionlog") || + !strcmp(p, "-sshlog") || + !strcmp(p, "-sshrawlog")) { + Filename *fn; + RETURN(2); + UNAVAILABLE_IN(TOOLTYPE_NONNETWORK); + SAVEABLE(0); + fn = filename_from_str(value); + conf_set_filename(conf, CONF_logfilename, fn); + conf_set_int(conf, CONF_logtype, + !strcmp(p, "-sessionlog") ? LGTYP_DEBUG : + !strcmp(p, "-sshlog") ? LGTYP_PACKETS : + /* !strcmp(p, "-sshrawlog") ? */ LGTYP_SSHRAW); + filename_free(fn); + } + return ret; /* unrecognised */ }