diff options
author | Konstantin Tokarev <ktokarev@smartlabs.tv> | 2015-12-01 21:55:34 +0300 |
---|---|---|
committer | Konstantin Tokarev <ktokarev@smartlabs.tv> | 2015-12-15 16:52:53 +0300 |
commit | 3cb278c35c8889a2738f4f70775ec7f8036e76a4 (patch) | |
tree | 4b4642bc032e6ea75680a79b4c43e62c16c695eb | |
parent | c59827334cdd9e2e25ae3b75d73045d1fca3fa69 (diff) |
Support syslog logging in dbclient.
-rw-r--r-- | cli-main.c | 14 | ||||
-rw-r--r-- | cli-runopts.c | 10 | ||||
-rw-r--r-- | cli-session.c | 5 | ||||
-rw-r--r-- | dbclient.1 | 10 |
4 files changed, 34 insertions, 5 deletions
@@ -60,6 +60,12 @@ int main(int argc, char ** argv) { cli_getopts(argc, argv); +#ifndef DISABLE_SYSLOG + if (opts.usingsyslog) { + startsyslog("dbclient"); + } +#endif + TRACE(("user='%s' host='%s' port='%s'", cli_opts.username, cli_opts.remotehost, cli_opts.remoteport)) @@ -118,13 +124,19 @@ static void cli_dropbear_exit(int exitcode, const char* format, va_list param) { exit(exitcode); } -static void cli_dropbear_log(int UNUSED(priority), +static void cli_dropbear_log(int priority, const char* format, va_list param) { char printbuf[1024]; vsnprintf(printbuf, sizeof(printbuf), format, param); +#ifndef DISABLE_SYSLOG + if (opts.usingsyslog) { + syslog(priority, "%s", printbuf); + } +#endif + fprintf(stderr, "%s: %s\n", cli_opts.progname, printbuf); fflush(stderr); } diff --git a/cli-runopts.c b/cli-runopts.c index 25a2f16..2ecf599 100644 --- a/cli-runopts.c +++ b/cli-runopts.c @@ -864,6 +864,9 @@ static void add_extendedopt(const char* origstr) { #ifdef ENABLE_CLI_ANYTCPFWD "\tExitOnForwardFailure\n" #endif +#ifndef DISABLE_SYSLOG + "\tUseSyslog\n" +#endif ); exit(EXIT_SUCCESS); } @@ -875,5 +878,12 @@ static void add_extendedopt(const char* origstr) { } #endif +#ifndef DISABLE_SYSLOG + if (match_extendedopt(&optstr, "UseSyslog") == DROPBEAR_SUCCESS) { + opts.usingsyslog = parse_flag_value(optstr); + return; + } +#endif + dropbear_exit("Bad configuration option '%s'", origstr); } diff --git a/cli-session.c b/cli-session.c index 9be958e..a93d192 100644 --- a/cli-session.c +++ b/cli-session.c @@ -269,6 +269,11 @@ static void cli_sessionloop() { return; case USERAUTH_SUCCESS_RCVD: +#ifndef DISABLE_SYSLOG + if (opts.usingsyslog) { + dropbear_log(LOG_INFO, "Authentication succeeded."); + } +#endif #ifdef DROPBEAR_NONE_CIPHER if (cli_ses.cipher_none_after_auth) @@ -133,12 +133,14 @@ useful for specifying options for which there is no separate command-line flag. For full details of the options listed below, and their possible values, see ssh_config(5). -For now only following options have been implemented: -.RS +For now following options have been implemented: .RS .TP -ExitOnForwardFailure -.RE +.B ExitOnForwardFailure +Specifies whether dbclient should terminate the connection if it cannot set up all requested local and remote port forwardings. The argument must be “yes” or “no”. The default is “no”. +.TP +.B UseSyslog +Send dbclient log messages to syslog in addition to stderr. .RE .TP .B \-s |