=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/servconf.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- src/usr.bin/ssh/servconf.c 1999/10/25 21:35:25 1.19 +++ src/usr.bin/ssh/servconf.c 1999/11/10 23:36:44 1.20 @@ -12,7 +12,7 @@ */ #include "includes.h" -RCSID("$Id: servconf.c,v 1.19 1999/10/25 21:35:25 markus Exp $"); +RCSID("$Id: servconf.c,v 1.20 1999/11/10 23:36:44 markus Exp $"); #include "ssh.h" #include "servconf.h" @@ -31,8 +31,6 @@ options->key_regeneration_time = -1; options->permit_root_login = -1; options->ignore_rhosts = -1; - options->quiet_mode = -1; - options->fascist_logging = -1; options->print_motd = -1; options->check_mail = -1; options->x11_forwarding = -1; @@ -40,6 +38,7 @@ options->strict_modes = -1; options->keepalives = -1; options->log_facility = (SyslogFacility)-1; + options->log_level = (LogLevel)-1; options->rhosts_authentication = -1; options->rhosts_rsa_authentication = -1; options->rsa_authentication = -1; @@ -89,12 +88,8 @@ options->permit_root_login = 1; /* yes */ if (options->ignore_rhosts == -1) options->ignore_rhosts = 0; - if (options->quiet_mode == -1) - options->quiet_mode = 0; if (options->check_mail == -1) options->check_mail = 0; - if (options->fascist_logging == -1) - options->fascist_logging = 1; if (options->print_motd == -1) options->print_motd = 1; if (options->x11_forwarding == -1) @@ -107,6 +102,8 @@ options->keepalives = 1; if (options->log_facility == (SyslogFacility)(-1)) options->log_facility = SYSLOG_FACILITY_AUTH; + if (options->log_level == (LogLevel)(-1)) + options->log_level = SYSLOG_LEVEL_INFO; if (options->rhosts_authentication == -1) options->rhosts_authentication = 0; if (options->rhosts_rsa_authentication == -1) @@ -145,7 +142,7 @@ typedef enum { sPort, sHostKeyFile, sServerKeyBits, sLoginGraceTime, sKeyRegenerationTime, - sPermitRootLogin, sQuietMode, sFascistLogging, sLogFacility, + sPermitRootLogin, sLogFacility, sLogLevel, sRhostsAuthentication, sRhostsRSAAuthentication, sRSAAuthentication, #ifdef KRB4 sKerberosAuthentication, sKerberosOrLocalPasswd, sKerberosTicketCleanup, @@ -176,9 +173,8 @@ { "logingracetime", sLoginGraceTime }, { "keyregenerationinterval", sKeyRegenerationTime }, { "permitrootlogin", sPermitRootLogin }, - { "quietmode", sQuietMode }, - { "fascistlogging", sFascistLogging }, { "syslogfacility", sLogFacility }, + { "loglevel", sLogLevel }, { "rhostsauthentication", sRhostsAuthentication }, { "rhostsrsaauthentication", sRhostsRSAAuthentication }, { "rsaauthentication", sRSAAuthentication }, @@ -233,6 +229,21 @@ { NULL, 0 } }; +static struct +{ + const char *name; + LogLevel level; +} log_levels[] = +{ + { "QUIET", SYSLOG_LEVEL_QUIET }, + { "FATAL", SYSLOG_LEVEL_FATAL }, + { "ERROR", SYSLOG_LEVEL_ERROR }, + { "INFO", SYSLOG_LEVEL_INFO }, + { "CHAT", SYSLOG_LEVEL_CHAT }, + { "DEBUG", SYSLOG_LEVEL_DEBUG }, + { NULL, 0 } +}; + /* Returns the number of the token pointed to by cp of length len. Never returns if the token is not known. */ @@ -392,14 +403,6 @@ *intptr = value; break; - case sQuietMode: - intptr = &options->quiet_mode; - goto parse_flag; - - case sFascistLogging: - intptr = &options->fascist_logging; - goto parse_flag; - case sRhostsAuthentication: intptr = &options->rhosts_authentication; goto parse_flag; @@ -487,7 +490,7 @@ exit(1); } for (i = 0; log_facilities[i].name; i++) - if (strcmp(log_facilities[i].name, cp) == 0) + if (strcasecmp(log_facilities[i].name, cp) == 0) break; if (!log_facilities[i].name) { @@ -497,6 +500,27 @@ } if (options->log_facility == (SyslogFacility)(-1)) options->log_facility = log_facilities[i].facility; + break; + + case sLogLevel: + cp = strtok(NULL, WHITESPACE); + if (!cp) + { + fprintf(stderr, "%s line %d: missing level name.\n", + filename, linenum); + exit(1); + } + for (i = 0; log_levels[i].name; i++) + if (strcasecmp(log_levels[i].name, cp) == 0) + break; + if (!log_levels[i].name) + { + fprintf(stderr, "%s line %d: unsupported log level %s\n", + filename, linenum, cp); + exit(1); + } + if (options->log_level == (LogLevel)(-1)) + options->log_level = log_levels[i].level; break; case sAllowUsers: