[BACK]Return to servconf.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/servconf.c between version 1.130 and 1.130.2.1

version 1.130, 2003/12/23 16:12:10 version 1.130.2.1, 2004/08/19 04:13:27
Line 18 
Line 18 
 #include "xmalloc.h"  #include "xmalloc.h"
 #include "compat.h"  #include "compat.h"
 #include "pathnames.h"  #include "pathnames.h"
 #include "tildexpand.h"  
 #include "misc.h"  #include "misc.h"
 #include "cipher.h"  #include "cipher.h"
 #include "kex.h"  #include "kex.h"
Line 90 
Line 89 
         options->max_startups_begin = -1;          options->max_startups_begin = -1;
         options->max_startups_rate = -1;          options->max_startups_rate = -1;
         options->max_startups = -1;          options->max_startups = -1;
           options->max_authtries = -1;
         options->banner = NULL;          options->banner = NULL;
         options->use_dns = -1;          options->use_dns = -1;
         options->client_alive_interval = -1;          options->client_alive_interval = -1;
         options->client_alive_count_max = -1;          options->client_alive_count_max = -1;
         options->authorized_keys_file = NULL;          options->authorized_keys_file = NULL;
         options->authorized_keys_file2 = NULL;          options->authorized_keys_file2 = NULL;
           options->num_accept_env = 0;
   
         /* Needs to be accessable in many places */          /* Needs to be accessable in many places */
         use_privsep = -1;          use_privsep = -1;
Line 202 
Line 203 
                 options->max_startups_rate = 100;               /* 100% */                  options->max_startups_rate = 100;               /* 100% */
         if (options->max_startups_begin == -1)          if (options->max_startups_begin == -1)
                 options->max_startups_begin = options->max_startups;                  options->max_startups_begin = options->max_startups;
           if (options->max_authtries == -1)
                   options->max_authtries = DEFAULT_AUTH_FAIL_MAX;
         if (options->use_dns == -1)          if (options->use_dns == -1)
                 options->use_dns = 1;                  options->use_dns = 1;
         if (options->client_alive_interval == -1)          if (options->client_alive_interval == -1)
Line 239 
Line 242 
         sPermitUserEnvironment, sUseLogin, sAllowTcpForwarding, sCompression,          sPermitUserEnvironment, sUseLogin, sAllowTcpForwarding, sCompression,
         sAllowUsers, sDenyUsers, sAllowGroups, sDenyGroups,          sAllowUsers, sDenyUsers, sAllowGroups, sDenyGroups,
         sIgnoreUserKnownHosts, sCiphers, sMacs, sProtocol, sPidFile,          sIgnoreUserKnownHosts, sCiphers, sMacs, sProtocol, sPidFile,
         sGatewayPorts, sPubkeyAuthentication, sXAuthLocation, sSubsystem, sMaxStartups,          sGatewayPorts, sPubkeyAuthentication, sXAuthLocation, sSubsystem,
           sMaxStartups, sMaxAuthTries,
         sBanner, sUseDNS, sHostbasedAuthentication,          sBanner, sUseDNS, sHostbasedAuthentication,
         sHostbasedUsesNameFromPacketOnly, sClientAliveInterval,          sHostbasedUsesNameFromPacketOnly, sClientAliveInterval,
         sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2,          sClientAliveCountMax, sAuthorizedKeysFile, sAuthorizedKeysFile2,
         sGssAuthentication, sGssCleanupCreds,          sGssAuthentication, sGssCleanupCreds, sAcceptEnv,
         sUsePrivilegeSeparation,          sUsePrivilegeSeparation,
         sDeprecated, sUnsupported          sDeprecated, sUnsupported
 } ServerOpCodes;  } ServerOpCodes;
Line 322 
Line 326 
         { "gatewayports", sGatewayPorts },          { "gatewayports", sGatewayPorts },
         { "subsystem", sSubsystem },          { "subsystem", sSubsystem },
         { "maxstartups", sMaxStartups },          { "maxstartups", sMaxStartups },
           { "maxauthtries", sMaxAuthTries },
         { "banner", sBanner },          { "banner", sBanner },
         { "usedns", sUseDNS },          { "usedns", sUseDNS },
         { "verifyreversemapping", sDeprecated },          { "verifyreversemapping", sDeprecated },
Line 331 
Line 336 
         { "authorizedkeysfile", sAuthorizedKeysFile },          { "authorizedkeysfile", sAuthorizedKeysFile },
         { "authorizedkeysfile2", sAuthorizedKeysFile2 },          { "authorizedkeysfile2", sAuthorizedKeysFile2 },
         { "useprivilegeseparation", sUsePrivilegeSeparation},          { "useprivilegeseparation", sUsePrivilegeSeparation},
           { "acceptenv", sAcceptEnv },
         { NULL, sBadOption }          { NULL, sBadOption }
 };  };
   
Line 827 
Line 833 
                         options->max_startups = options->max_startups_begin;                          options->max_startups = options->max_startups_begin;
                 break;                  break;
   
           case sMaxAuthTries:
                   intptr = &options->max_authtries;
                   goto parse_int;
   
         case sBanner:          case sBanner:
                 charptr = &options->banner;                  charptr = &options->banner;
                 goto parse_filename;                  goto parse_filename;
Line 851 
Line 861 
                 intptr = &options->client_alive_count_max;                  intptr = &options->client_alive_count_max;
                 goto parse_int;                  goto parse_int;
   
           case sAcceptEnv:
                   while ((arg = strdelim(&cp)) && *arg != '\0') {
                           if (strchr(arg, '=') != NULL)
                                   fatal("%s line %d: Invalid environment name.",
                                       filename, linenum);
                           if (options->num_accept_env >= MAX_ACCEPT_ENV)
                                   fatal("%s line %d: too many allow env.",
                                       filename, linenum);
                           options->accept_env[options->num_accept_env++] =
                               xstrdup(arg);
                   }
                   break;
   
         case sDeprecated:          case sDeprecated:
                 logit("%s line %d: Deprecated option %s",                  logit("%s line %d: Deprecated option %s",
                     filename, linenum, arg);                      filename, linenum, arg);
Line 878 
Line 901 
 /* Reads the server configuration file. */  /* Reads the server configuration file. */
   
 void  void
 read_server_config(ServerOptions *options, const char *filename)  load_server_config(const char *filename, Buffer *conf)
 {  {
         int linenum, bad_options = 0;          char line[1024], *cp;
         char line[1024];  
         FILE *f;          FILE *f;
   
         debug2("read_server_config: filename %s", filename);          debug2("%s: filename %s", __func__, filename);
         f = fopen(filename, "r");          if ((f = fopen(filename, "r")) == NULL) {
         if (!f) {  
                 perror(filename);                  perror(filename);
                 exit(1);                  exit(1);
         }          }
         linenum = 0;          buffer_clear(conf);
         while (fgets(line, sizeof(line), f)) {          while (fgets(line, sizeof(line), f)) {
                 /* Update line number counter. */                  /*
                 linenum++;                   * Trim out comments and strip whitespace
                 if (process_server_config_line(options, line, filename, linenum) != 0)                   * NB - preserve newlines, they are needed to reproduce
                         bad_options++;                   * line numbers later for error messages
                    */
                   if ((cp = strchr(line, '#')) != NULL)
                           memcpy(cp, "\n", 2);
                   cp = line + strspn(line, " \t\r");
   
                   buffer_append(conf, cp, strlen(cp));
         }          }
           buffer_append(conf, "\0", 1);
         fclose(f);          fclose(f);
           debug2("%s: done config len = %d", __func__, buffer_len(conf));
   }
   
   void
   parse_server_config(ServerOptions *options, const char *filename, Buffer *conf)
   {
           int linenum, bad_options = 0;
           char *cp, *obuf, *cbuf;
   
           debug2("%s: config %s len %d", __func__, filename, buffer_len(conf));
   
           obuf = cbuf = xstrdup(buffer_ptr(conf));
           linenum = 1;
           while((cp = strsep(&cbuf, "\n")) != NULL) {
                   if (process_server_config_line(options, cp, filename,
                       linenum++) != 0)
                           bad_options++;
           }
           xfree(obuf);
         if (bad_options > 0)          if (bad_options > 0)
                 fatal("%s: terminating, %d bad configuration options",                  fatal("%s: terminating, %d bad configuration options",
                     filename, bad_options);                      filename, bad_options);

Legend:
Removed from v.1.130  
changed lines
  Added in v.1.130.2.1