From 13edf90e0a4397088085cfcd53a4311319b708b4 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. --- cmdline.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cmdline.c b/cmdline.c index ee1d31e7..fbf1e5c9 100644 --- a/cmdline.c +++ b/cmdline.c @@ -574,6 +574,23 @@ int cmdline_process_param(const char *p, char *value, 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 */ }