From 20ec77e6ef9b2c04ae7b2c01ee5a5cf760708662 Mon Sep 17 00:00:00 2001 From: Christopher Wellons Date: Sun, 3 Feb 2019 18:44:24 -0500 Subject: [PATCH] Add LogLevel to the configuration file --- README.md | 1 + endlessh.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/README.md b/README.md index a24ff47..06fc4ce 100644 --- a/README.md +++ b/README.md @@ -55,4 +55,5 @@ Port 22 Delay 30000 MaxLineLength 8 MaxClients 512 +LogLevel 1 ``` diff --git a/endlessh.c b/endlessh.c index c365b1c..23f5c1f 100644 --- a/endlessh.c +++ b/endlessh.c @@ -351,6 +351,7 @@ enum config_key { KEY_DELAY, KEY_MAX_LINE_LENGTH, KEY_MAX_CLIENTS, + KEY_LOG_LEVEL, }; static enum config_key @@ -361,6 +362,7 @@ config_key_parse(const char *tok) [KEY_DELAY] = "Delay", [KEY_MAX_LINE_LENGTH] = "MaxLineLength", [KEY_MAX_CLIENTS] = "MaxClients", + [KEY_LOG_LEVEL] = "LogLevel", }; for (size_t i = 1; i < sizeof(table) / sizeof(*table); i++) if (!strcmp(tok, table[i])) @@ -428,6 +430,18 @@ config_load(struct config *c, const char *file, int hardfail) case KEY_MAX_CLIENTS: config_set_max_line_length(c, tokens[1], hardfail); break; + case KEY_LOG_LEVEL: { + errno = 0; + char *end; + long v = strtol(tokens[1], &end, 10); + if (errno || *end || v < LOG_NONE || v > LOG_DEBUG) { + fprintf(stderr, "%s:%ld: Invalid log level '%s'\n", + file, lineno, tokens[1]); + if (hardfail) exit(EXIT_FAILURE); + } else { + loglevel = v; + } + } break; } }