diff options
Diffstat (limited to 'readconf.c')
-rw-r--r-- | readconf.c | 48 |
1 files changed, 11 insertions, 37 deletions
diff --git a/readconf.c b/readconf.c index b341322c8..d8694b82d 100644 --- a/readconf.c +++ b/readconf.c | |||
@@ -14,7 +14,7 @@ Functions for reading the configuration files. | |||
14 | */ | 14 | */ |
15 | 15 | ||
16 | #include "includes.h" | 16 | #include "includes.h" |
17 | RCSID("$Id: readconf.c,v 1.3 1999/11/15 04:25:10 damien Exp $"); | 17 | RCSID("$Id: readconf.c,v 1.4 1999/11/21 02:23:53 damien Exp $"); |
18 | 18 | ||
19 | #include "ssh.h" | 19 | #include "ssh.h" |
20 | #include "cipher.h" | 20 | #include "cipher.h" |
@@ -155,23 +155,6 @@ static struct | |||
155 | { NULL, 0 } | 155 | { NULL, 0 } |
156 | }; | 156 | }; |
157 | 157 | ||
158 | /* textual representation of log-levels */ | ||
159 | |||
160 | static struct | ||
161 | { | ||
162 | const char *name; | ||
163 | LogLevel level; | ||
164 | } log_levels[] = | ||
165 | { | ||
166 | { "QUIET", SYSLOG_LEVEL_QUIET }, | ||
167 | { "FATAL", SYSLOG_LEVEL_FATAL }, | ||
168 | { "ERROR", SYSLOG_LEVEL_ERROR }, | ||
169 | { "INFO", SYSLOG_LEVEL_INFO }, | ||
170 | { "CHAT", SYSLOG_LEVEL_CHAT }, | ||
171 | { "DEBUG", SYSLOG_LEVEL_DEBUG }, | ||
172 | { NULL, 0 } | ||
173 | }; | ||
174 | |||
175 | /* Characters considered whitespace in strtok calls. */ | 158 | /* Characters considered whitespace in strtok calls. */ |
176 | #define WHITESPACE " \t\r\n" | 159 | #define WHITESPACE " \t\r\n" |
177 | 160 | ||
@@ -237,7 +220,7 @@ process_config_line(Options *options, const char *host, | |||
237 | int *activep) | 220 | int *activep) |
238 | { | 221 | { |
239 | char buf[256], *cp, *string, **charptr; | 222 | char buf[256], *cp, *string, **charptr; |
240 | int opcode, *intptr, value, fwd_port, fwd_host_port, i; | 223 | int opcode, *intptr, value, fwd_port, fwd_host_port; |
241 | 224 | ||
242 | /* Skip leading whitespace. */ | 225 | /* Skip leading whitespace. */ |
243 | cp = line + strspn(line, WHITESPACE); | 226 | cp = line + strspn(line, WHITESPACE); |
@@ -462,30 +445,21 @@ process_config_line(Options *options, const char *host, | |||
462 | cp = strtok(NULL, WHITESPACE); | 445 | cp = strtok(NULL, WHITESPACE); |
463 | value = cipher_number(cp); | 446 | value = cipher_number(cp); |
464 | if (value == -1) | 447 | if (value == -1) |
465 | fatal("%.200s line %d: Bad cipher.", filename, linenum); | 448 | fatal("%.200s line %d: Bad cipher '%s'.", |
449 | filename, linenum, cp ? cp : "<NONE>"); | ||
466 | if (*activep && *intptr == -1) | 450 | if (*activep && *intptr == -1) |
467 | *intptr = value; | 451 | *intptr = value; |
468 | break; | 452 | break; |
469 | 453 | ||
470 | case oLogLevel: | 454 | case oLogLevel: |
455 | intptr = (int *)&options->log_level; | ||
471 | cp = strtok(NULL, WHITESPACE); | 456 | cp = strtok(NULL, WHITESPACE); |
472 | if (!cp) | 457 | value = log_level_number(cp); |
473 | { | 458 | if (value == (LogLevel)-1) |
474 | fprintf(stderr, "%s line %d: missing level name.\n", | 459 | fatal("%.200s line %d: unsupported log level '%s'\n", |
475 | filename, linenum); | 460 | filename, linenum, cp ? cp : "<NONE>"); |
476 | exit(1); | 461 | if (*activep && (LogLevel)*intptr == -1) |
477 | } | 462 | *intptr = (LogLevel)value; |
478 | for (i = 0; log_levels[i].name; i++) | ||
479 | if (strcasecmp(log_levels[i].name, cp) == 0) | ||
480 | break; | ||
481 | if (!log_levels[i].name) | ||
482 | { | ||
483 | fprintf(stderr, "%s line %d: unsupported log level %s\n", | ||
484 | filename, linenum, cp); | ||
485 | exit(1); | ||
486 | } | ||
487 | if (options->log_level == (LogLevel)(-1)) | ||
488 | options->log_level = log_levels[i].level; | ||
489 | break; | 463 | break; |
490 | 464 | ||
491 | case oRemoteForward: | 465 | case oRemoteForward: |