From 31c5784d4b514becf0028f3b3d38d8e28305dad7 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Thu, 24 Sep 2015 17:30:04 +0100 Subject: [PATCH] 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) --- cmdline.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 */ } -- 2.45.2