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

Diff for /src/usr.bin/ssh/readconf.c between version 1.76 and 1.76.2.2

version 1.76, 2001/04/17 10:53:25 version 1.76.2.2, 2001/11/15 00:15:19
Line 96 
Line 96 
         oForwardAgent, oForwardX11, oGatewayPorts, oRhostsAuthentication,          oForwardAgent, oForwardX11, oGatewayPorts, oRhostsAuthentication,
         oPasswordAuthentication, oRSAAuthentication, oFallBackToRsh, oUseRsh,          oPasswordAuthentication, oRSAAuthentication, oFallBackToRsh, oUseRsh,
         oChallengeResponseAuthentication, oXAuthLocation,          oChallengeResponseAuthentication, oXAuthLocation,
 #ifdef KRB4  #if defined(KRB4) || defined(KRB5)
         oKerberosAuthentication,          oKerberosAuthentication,
 #endif /* KRB4 */  #endif
   #if defined(AFS) || defined(KRB5)
           oKerberosTgtPassing,
   #endif
 #ifdef AFS  #ifdef AFS
         oKerberosTgtPassing, oAFSTokenPassing,          oAFSTokenPassing,
 #endif  #endif
         oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,          oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,
         oUser, oHost, oEscapeChar, oRhostsRSAAuthentication, oProxyCommand,          oUser, oHost, oEscapeChar, oRhostsRSAAuthentication, oProxyCommand,
Line 111 
Line 114 
         oGlobalKnownHostsFile2, oUserKnownHostsFile2, oPubkeyAuthentication,          oGlobalKnownHostsFile2, oUserKnownHostsFile2, oPubkeyAuthentication,
         oKbdInteractiveAuthentication, oKbdInteractiveDevices, oHostKeyAlias,          oKbdInteractiveAuthentication, oKbdInteractiveDevices, oHostKeyAlias,
         oDynamicForward, oPreferredAuthentications, oHostbasedAuthentication,          oDynamicForward, oPreferredAuthentications, oHostbasedAuthentication,
         oHostKeyAlgorithms          oHostKeyAlgorithms, oBindAddress, oSmartcardDevice,
           oClearAllForwardings, oNoHostAuthenticationForLocalhost
 } OpCodes;  } OpCodes;
   
 /* Textual representations of the tokens. */  /* Textual representations of the tokens. */
Line 137 
Line 141 
         { "challengeresponseauthentication", oChallengeResponseAuthentication },          { "challengeresponseauthentication", oChallengeResponseAuthentication },
         { "skeyauthentication", oChallengeResponseAuthentication }, /* alias */          { "skeyauthentication", oChallengeResponseAuthentication }, /* alias */
         { "tisauthentication", oChallengeResponseAuthentication },  /* alias */          { "tisauthentication", oChallengeResponseAuthentication },  /* alias */
 #ifdef KRB4  #if defined(KRB4) || defined(KRB5)
         { "kerberosauthentication", oKerberosAuthentication },          { "kerberosauthentication", oKerberosAuthentication },
 #endif /* KRB4 */  #endif
 #ifdef AFS  #if defined(AFS) || defined(KRB5)
         { "kerberostgtpassing", oKerberosTgtPassing },          { "kerberostgtpassing", oKerberosTgtPassing },
   #endif
   #ifdef AFS
         { "afstokenpassing", oAFSTokenPassing },          { "afstokenpassing", oAFSTokenPassing },
 #endif  #endif
         { "fallbacktorsh", oFallBackToRsh },          { "fallbacktorsh", oFallBackToRsh },
Line 162 
Line 168 
         { "host", oHost },          { "host", oHost },
         { "escapechar", oEscapeChar },          { "escapechar", oEscapeChar },
         { "globalknownhostsfile", oGlobalKnownHostsFile },          { "globalknownhostsfile", oGlobalKnownHostsFile },
         { "userknownhostsfile", oUserKnownHostsFile },          { "userknownhostsfile", oUserKnownHostsFile },          /* obsolete */
         { "globalknownhostsfile2", oGlobalKnownHostsFile2 },          { "globalknownhostsfile2", oGlobalKnownHostsFile2 },
         { "userknownhostsfile2", oUserKnownHostsFile2 },          { "userknownhostsfile2", oUserKnownHostsFile2 },        /* obsolete */
         { "connectionattempts", oConnectionAttempts },          { "connectionattempts", oConnectionAttempts },
         { "batchmode", oBatchMode },          { "batchmode", oBatchMode },
         { "checkhostip", oCheckHostIP },          { "checkhostip", oCheckHostIP },
Line 177 
Line 183 
         { "dynamicforward", oDynamicForward },          { "dynamicforward", oDynamicForward },
         { "preferredauthentications", oPreferredAuthentications },          { "preferredauthentications", oPreferredAuthentications },
         { "hostkeyalgorithms", oHostKeyAlgorithms },          { "hostkeyalgorithms", oHostKeyAlgorithms },
           { "bindaddress", oBindAddress },
           { "smartcarddevice", oSmartcardDevice },
           { "clearallforwardings", oClearAllForwardings },
           { "nohostauthenticationforlocalhost", oNoHostAuthenticationForLocalhost },
         { NULL, 0 }          { NULL, 0 }
 };  };
   
Line 220 
Line 230 
         fwd->host_port = host_port;          fwd->host_port = host_port;
 }  }
   
   static void
   clear_forwardings(Options *options)
   {
           int i;
   
           for (i = 0; i < options->num_local_forwards; i++)
                   xfree(options->local_forwards[i].host);
           options->num_local_forwards = 0;
           for (i = 0; i < options->num_remote_forwards; i++)
                   xfree(options->remote_forwards[i].host);
           options->num_remote_forwards = 0;
   }
   
 /*  /*
  * Returns the number of the token pointed to by cp or oBadOption.   * Returns the number of the token pointed to by cp or oBadOption.
  */   */
Line 251 
Line 274 
         char buf[256], *s, *string, **charptr, *endofnumber, *keyword, *arg;          char buf[256], *s, *string, **charptr, *endofnumber, *keyword, *arg;
         int opcode, *intptr, value;          int opcode, *intptr, value;
         u_short fwd_port, fwd_host_port;          u_short fwd_port, fwd_host_port;
           char sfwd_host_port[6];
   
         s = line;          s = line;
         /* Get the keyword. (Each line is supposed to begin with a keyword). */          /* Get the keyword. (Each line is supposed to begin with a keyword). */
Line 330 
Line 354 
                 goto parse_flag;                  goto parse_flag;
   
         case oChallengeResponseAuthentication:          case oChallengeResponseAuthentication:
                 intptr = &options->challenge_reponse_authentication;                  intptr = &options->challenge_response_authentication;
                 goto parse_flag;                  goto parse_flag;
   #if defined(KRB4) || defined(KRB5)
 #ifdef KRB4  
         case oKerberosAuthentication:          case oKerberosAuthentication:
                 intptr = &options->kerberos_authentication;                  intptr = &options->kerberos_authentication;
                 goto parse_flag;                  goto parse_flag;
 #endif /* KRB4 */  #endif
   #if defined(AFS) || defined(KRB5)
 #ifdef AFS  
         case oKerberosTgtPassing:          case oKerberosTgtPassing:
                 intptr = &options->kerberos_tgt_passing;                  intptr = &options->kerberos_tgt_passing;
                 goto parse_flag;                  goto parse_flag;
   #endif
   #ifdef AFS
         case oAFSTokenPassing:          case oAFSTokenPassing:
                 intptr = &options->afs_token_passing;                  intptr = &options->afs_token_passing;
                 goto parse_flag;                  goto parse_flag;
 #endif  #endif
   
         case oFallBackToRsh:          case oFallBackToRsh:
                 intptr = &options->fallback_to_rsh;                  intptr = &options->fallback_to_rsh;
                 goto parse_flag;                  goto parse_flag;
Line 392 
Line 414 
                 intptr = &options->keepalives;                  intptr = &options->keepalives;
                 goto parse_flag;                  goto parse_flag;
   
           case oNoHostAuthenticationForLocalhost:
                   intptr = &options->no_host_authentication_for_localhost;
                   goto parse_flag;
   
         case oNumberOfPasswordPrompts:          case oNumberOfPasswordPrompts:
                 intptr = &options->number_of_password_prompts;                  intptr = &options->number_of_password_prompts;
                 goto parse_int;                  goto parse_int;
Line 457 
Line 483 
                 charptr = &options->preferred_authentications;                  charptr = &options->preferred_authentications;
                 goto parse_string;                  goto parse_string;
   
           case oBindAddress:
                   charptr = &options->bind_address;
                   goto parse_string;
   
           case oSmartcardDevice:
                   charptr = &options->smartcard_device;
                   goto parse_string;
   
         case oProxyCommand:          case oProxyCommand:
                 charptr = &options->proxy_command;                  charptr = &options->proxy_command;
                 string = xstrdup("");                  string = xstrdup("");
Line 562 
Line 596 
                         *intptr = (LogLevel) value;                          *intptr = (LogLevel) value;
                 break;                  break;
   
           case oLocalForward:
         case oRemoteForward:          case oRemoteForward:
                 arg = strdelim(&s);                  arg = strdelim(&s);
                 if (!arg || *arg == '\0')                  if (!arg || *arg == '\0')
                         fatal("%.200s line %d: Missing argument.", filename, linenum);                          fatal("%.200s line %d: Missing port argument.",
                 fwd_port = a2port(arg);                              filename, linenum);
                 if (fwd_port == 0)                  if ((fwd_port = a2port(arg)) == 0)
                         fatal("%.200s line %d: Badly formatted port number.",                          fatal("%.200s line %d: Bad listen port.",
                               filename, linenum);                              filename, linenum);
                 arg = strdelim(&s);                  arg = strdelim(&s);
                 if (!arg || *arg == '\0')                  if (!arg || *arg == '\0')
                         fatal("%.200s line %d: Missing second argument.",                          fatal("%.200s line %d: Missing second argument.",
                               filename, linenum);                              filename, linenum);
                 if (sscanf(arg, "%255[^:]:%hu", buf, &fwd_host_port) != 2)                  if (sscanf(arg, "%255[^:]:%5[0-9]", buf, sfwd_host_port) != 2 &&
                         fatal("%.200s line %d: Badly formatted host:port.",                      sscanf(arg, "%255[^/]/%5[0-9]", buf, sfwd_host_port) != 2)
                               filename, linenum);                          fatal("%.200s line %d: Bad forwarding specification.",
                 if (*activep)                              filename, linenum);
                         add_remote_forward(options, fwd_port, buf, fwd_host_port);                  if ((fwd_host_port = a2port(sfwd_host_port)) == 0)
                           fatal("%.200s line %d: Bad forwarding port.",
                               filename, linenum);
                   if (*activep) {
                           if (opcode == oLocalForward)
                                   add_local_forward(options, fwd_port, buf,
                                       fwd_host_port);
                           else if (opcode == oRemoteForward)
                                   add_remote_forward(options, fwd_port, buf,
                                       fwd_host_port);
                   }
                 break;                  break;
   
         case oLocalForward:  
                 arg = strdelim(&s);  
                 if (!arg || *arg == '\0')  
                         fatal("%.200s line %d: Missing argument.", filename, linenum);  
                 fwd_port = a2port(arg);  
                 if (fwd_port == 0)  
                         fatal("%.200s line %d: Badly formatted port number.",  
                               filename, linenum);  
                 arg = strdelim(&s);  
                 if (!arg || *arg == '\0')  
                         fatal("%.200s line %d: Missing second argument.",  
                               filename, linenum);  
                 if (sscanf(arg, "%255[^:]:%hu", buf, &fwd_host_port) != 2)  
                         fatal("%.200s line %d: Badly formatted host:port.",  
                               filename, linenum);  
                 if (*activep)  
                         add_local_forward(options, fwd_port, buf, fwd_host_port);  
                 break;  
   
         case oDynamicForward:          case oDynamicForward:
                 arg = strdelim(&s);                  arg = strdelim(&s);
                 if (!arg || *arg == '\0')                  if (!arg || *arg == '\0')
Line 609 
Line 635 
                 if (fwd_port == 0)                  if (fwd_port == 0)
                         fatal("%.200s line %d: Badly formatted port number.",                          fatal("%.200s line %d: Badly formatted port number.",
                             filename, linenum);                              filename, linenum);
                 add_local_forward(options, fwd_port, "socks4", 0);                  if (*activep)
                           add_local_forward(options, fwd_port, "socks4", 0);
                 break;                  break;
   
           case oClearAllForwardings:
                   intptr = &options->clear_forwardings;
                   goto parse_flag;
   
         case oHost:          case oHost:
                 *activep = 0;                  *activep = 0;
                 while ((arg = strdelim(&s)) != NULL && *arg != '\0')                  while ((arg = strdelim(&s)) != NULL && *arg != '\0')
Line 634 
Line 665 
                 else if (strlen(arg) == 1)                  else if (strlen(arg) == 1)
                         value = (u_char) arg[0];                          value = (u_char) arg[0];
                 else if (strcmp(arg, "none") == 0)                  else if (strcmp(arg, "none") == 0)
                         value = -2;                          value = SSH_ESCAPECHAR_NONE;
                 else {                  else {
                         fatal("%.200s line %d: Bad escape character.",                          fatal("%.200s line %d: Bad escape character.",
                               filename, linenum);                                filename, linenum);
Line 661 
Line 692 
 /*  /*
  * Reads the config file and modifies the options accordingly.  Options   * Reads the config file and modifies the options accordingly.  Options
  * should already be initialized before this call.  This never returns if   * should already be initialized before this call.  This never returns if
  * there is an error.  If the file does not exist, this returns immediately.   * there is an error.  If the file does not exist, this returns 0.
  */   */
   
 void  int
 read_config_file(const char *filename, const char *host, Options *options)  read_config_file(const char *filename, const char *host, Options *options)
 {  {
         FILE *f;          FILE *f;
Line 675 
Line 706 
         /* Open the file. */          /* Open the file. */
         f = fopen(filename, "r");          f = fopen(filename, "r");
         if (!f)          if (!f)
                 return;                  return 0;
   
         debug("Reading configuration data %.200s", filename);          debug("Reading configuration data %.200s", filename);
   
Line 695 
Line 726 
         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);
           return 1;
 }  }
   
 /*  /*
Line 716 
Line 748 
         options->rhosts_authentication = -1;          options->rhosts_authentication = -1;
         options->rsa_authentication = -1;          options->rsa_authentication = -1;
         options->pubkey_authentication = -1;          options->pubkey_authentication = -1;
         options->challenge_reponse_authentication = -1;          options->challenge_response_authentication = -1;
 #ifdef KRB4  #if defined(KRB4) || defined(KRB5)
         options->kerberos_authentication = -1;          options->kerberos_authentication = -1;
 #endif  #endif
 #ifdef AFS  #if defined(AFS) || defined(KRB5)
         options->kerberos_tgt_passing = -1;          options->kerberos_tgt_passing = -1;
   #endif
   #ifdef AFS
         options->afs_token_passing = -1;          options->afs_token_passing = -1;
 #endif  #endif
         options->password_authentication = -1;          options->password_authentication = -1;
Line 757 
Line 791 
         options->user_hostfile2 = NULL;          options->user_hostfile2 = NULL;
         options->num_local_forwards = 0;          options->num_local_forwards = 0;
         options->num_remote_forwards = 0;          options->num_remote_forwards = 0;
           options->clear_forwardings = -1;
         options->log_level = (LogLevel) - 1;          options->log_level = (LogLevel) - 1;
         options->preferred_authentications = NULL;          options->preferred_authentications = NULL;
           options->bind_address = NULL;
           options->smartcard_device = NULL;
           options->no_host_authentication_for_localhost = - 1;
 }  }
   
 /*  /*
Line 775 
Line 813 
                 options->forward_agent = 0;                  options->forward_agent = 0;
         if (options->forward_x11 == -1)          if (options->forward_x11 == -1)
                 options->forward_x11 = 0;                  options->forward_x11 = 0;
 #ifdef XAUTH_PATH  #ifdef _PATH_XAUTH
         if (options->xauth_location == NULL)          if (options->xauth_location == NULL)
                 options->xauth_location = XAUTH_PATH;                  options->xauth_location = _PATH_XAUTH;
 #endif /* XAUTH_PATH */  #endif
         if (options->gateway_ports == -1)          if (options->gateway_ports == -1)
                 options->gateway_ports = 0;                  options->gateway_ports = 0;
         if (options->use_privileged_port == -1)          if (options->use_privileged_port == -1)
Line 789 
Line 827 
                 options->rsa_authentication = 1;                  options->rsa_authentication = 1;
         if (options->pubkey_authentication == -1)          if (options->pubkey_authentication == -1)
                 options->pubkey_authentication = 1;                  options->pubkey_authentication = 1;
         if (options->challenge_reponse_authentication == -1)          if (options->challenge_response_authentication == -1)
                 options->challenge_reponse_authentication = 0;                  options->challenge_response_authentication = 1;
 #ifdef KRB4  #if defined(KRB4) || defined(KRB5)
         if (options->kerberos_authentication == -1)          if (options->kerberos_authentication == -1)
                 options->kerberos_authentication = 1;                  options->kerberos_authentication = 1;
 #endif /* KRB4 */  #endif
 #ifdef AFS  #if defined(AFS) || defined(KRB5)
         if (options->kerberos_tgt_passing == -1)          if (options->kerberos_tgt_passing == -1)
                 options->kerberos_tgt_passing = 1;                  options->kerberos_tgt_passing = 1;
   #endif
   #ifdef AFS
         if (options->afs_token_passing == -1)          if (options->afs_token_passing == -1)
                 options->afs_token_passing = 1;                  options->afs_token_passing = 1;
 #endif /* AFS */  #endif
         if (options->password_authentication == -1)          if (options->password_authentication == -1)
                 options->password_authentication = 1;                  options->password_authentication = 1;
         if (options->kbd_interactive_authentication == -1)          if (options->kbd_interactive_authentication == -1)
Line 828 
Line 868 
         if (options->port == -1)          if (options->port == -1)
                 options->port = 0;      /* Filled in ssh_connect. */                  options->port = 0;      /* Filled in ssh_connect. */
         if (options->connection_attempts == -1)          if (options->connection_attempts == -1)
                 options->connection_attempts = 4;                  options->connection_attempts = 1;
         if (options->number_of_password_prompts == -1)          if (options->number_of_password_prompts == -1)
                 options->number_of_password_prompts = 3;                  options->number_of_password_prompts = 3;
         /* Selected in ssh_login(). */          /* Selected in ssh_login(). */
Line 873 
Line 913 
                 options->user_hostfile2 = _PATH_SSH_USER_HOSTFILE2;                  options->user_hostfile2 = _PATH_SSH_USER_HOSTFILE2;
         if (options->log_level == (LogLevel) - 1)          if (options->log_level == (LogLevel) - 1)
                 options->log_level = SYSLOG_LEVEL_INFO;                  options->log_level = SYSLOG_LEVEL_INFO;
           if (options->clear_forwardings == 1)
                   clear_forwardings(options);
           if (options->no_host_authentication_for_localhost == - 1)
                   options->no_host_authentication_for_localhost = 0;
         /* options->proxy_command should not be set by default */          /* options->proxy_command should not be set by default */
         /* options->user will be set in the main program if appropriate */          /* options->user will be set in the main program if appropriate */
         /* options->hostname will be set in the main program if appropriate */          /* options->hostname will be set in the main program if appropriate */

Legend:
Removed from v.1.76  
changed lines
  Added in v.1.76.2.2