- Merged more OpenBSD CVS changes:
- [auth-krb4.c auth-passwd.c] remove x11- and krb-cleanup from fatal()
+ krb-cleanup cleanup
- [clientloop.c log-client.c log-server.c ]
[readconf.c readconf.h servconf.c servconf.h ]
[ssh.1 ssh.c ssh.h sshd.8]
add LogLevel {QUIET, FATAL, ERROR, INFO, CHAT, DEBUG} to ssh/sshd,
obsoletes QuietMode and FascistLogging in sshd.
diff --git a/servconf.c b/servconf.c
index 5fa4879..d7f54a6 100644
--- a/servconf.c
+++ b/servconf.c
@@ -12,7 +12,7 @@
*/
#include "includes.h"
-RCSID("$Id: servconf.c,v 1.1 1999/10/27 03:42:45 damien Exp $");
+RCSID("$Id: servconf.c,v 1.2 1999/11/11 06:57:39 damien 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)
{
@@ -498,6 +501,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:
while ((cp = strtok(NULL, WHITESPACE)))