[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.102 and 1.102.2.1

version 1.102, 2003/02/05 09:02:28 version 1.102.2.1, 2003/09/16 20:50:43
Line 57 
Line 57 
    Host fascist.blob.com     Host fascist.blob.com
      Port 23123       Port 23123
      User tylonen       User tylonen
      RhostsAuthentication no  
      PasswordAuthentication no       PasswordAuthentication no
   
    Host puukko.hut.fi     Host puukko.hut.fi
Line 75 
Line 74 
    Host *     Host *
      ForwardAgent no       ForwardAgent no
      ForwardX11 no       ForwardX11 no
      RhostsAuthentication yes  
      PasswordAuthentication yes       PasswordAuthentication yes
      RSAAuthentication yes       RSAAuthentication yes
      RhostsRSAAuthentication yes       RhostsRSAAuthentication yes
Line 91 
Line 89 
   
 typedef enum {  typedef enum {
         oBadOption,          oBadOption,
         oForwardAgent, oForwardX11, oGatewayPorts, oRhostsAuthentication,          oForwardAgent, oForwardX11, oGatewayPorts,
         oPasswordAuthentication, oRSAAuthentication,          oPasswordAuthentication, oRSAAuthentication,
         oChallengeResponseAuthentication, oXAuthLocation,          oChallengeResponseAuthentication, oXAuthLocation,
 #if defined(KRB4) || defined(KRB5)  
         oKerberosAuthentication,  
 #endif  
 #if defined(AFS) || defined(KRB5)  
         oKerberosTgtPassing,  
 #endif  
 #ifdef AFS  
         oAFSTokenPassing,  
 #endif  
         oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,          oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,
         oUser, oHost, oEscapeChar, oRhostsRSAAuthentication, oProxyCommand,          oUser, oHost, oEscapeChar, oRhostsRSAAuthentication, oProxyCommand,
         oGlobalKnownHostsFile, oUserKnownHostsFile, oConnectionAttempts,          oGlobalKnownHostsFile, oUserKnownHostsFile, oConnectionAttempts,
Line 114 
Line 103 
         oDynamicForward, oPreferredAuthentications, oHostbasedAuthentication,          oDynamicForward, oPreferredAuthentications, oHostbasedAuthentication,
         oHostKeyAlgorithms, oBindAddress, oSmartcardDevice,          oHostKeyAlgorithms, oBindAddress, oSmartcardDevice,
         oClearAllForwardings, oNoHostAuthenticationForLocalhost,          oClearAllForwardings, oNoHostAuthenticationForLocalhost,
         oEnableSSHKeysign,          oEnableSSHKeysign, oRekeyLimit, oVerifyHostKeyDNS, oConnectTimeout,
         oDeprecated          oAddressFamily, oGssAuthentication, oGssDelegateCreds,
           oDeprecated, oUnsupported
 } OpCodes;  } OpCodes;
   
 /* Textual representations of the tokens. */  /* Textual representations of the tokens. */
Line 129 
Line 119 
         { "xauthlocation", oXAuthLocation },          { "xauthlocation", oXAuthLocation },
         { "gatewayports", oGatewayPorts },          { "gatewayports", oGatewayPorts },
         { "useprivilegedport", oUsePrivilegedPort },          { "useprivilegedport", oUsePrivilegedPort },
         { "rhostsauthentication", oRhostsAuthentication },          { "rhostsauthentication", oDeprecated },
         { "passwordauthentication", oPasswordAuthentication },          { "passwordauthentication", oPasswordAuthentication },
         { "kbdinteractiveauthentication", oKbdInteractiveAuthentication },          { "kbdinteractiveauthentication", oKbdInteractiveAuthentication },
         { "kbdinteractivedevices", oKbdInteractiveDevices },          { "kbdinteractivedevices", oKbdInteractiveDevices },
Line 141 
Line 131 
         { "challengeresponseauthentication", oChallengeResponseAuthentication },          { "challengeresponseauthentication", oChallengeResponseAuthentication },
         { "skeyauthentication", oChallengeResponseAuthentication }, /* alias */          { "skeyauthentication", oChallengeResponseAuthentication }, /* alias */
         { "tisauthentication", oChallengeResponseAuthentication },  /* alias */          { "tisauthentication", oChallengeResponseAuthentication },  /* alias */
 #if defined(KRB4) || defined(KRB5)          { "kerberosauthentication", oUnsupported },
         { "kerberosauthentication", oKerberosAuthentication },          { "kerberostgtpassing", oUnsupported },
           { "afstokenpassing", oUnsupported },
   #if defined(GSSAPI)
           { "gssapiauthentication", oGssAuthentication },
           { "gssapidelegatecredentials", oGssDelegateCreds },
   #else
           { "gssapiauthentication", oUnsupported },
           { "gssapidelegatecredentials", oUnsupported },
 #endif  #endif
 #if defined(AFS) || defined(KRB5)  
         { "kerberostgtpassing", oKerberosTgtPassing },  
 #endif  
 #ifdef AFS  
         { "afstokenpassing", oAFSTokenPassing },  
 #endif  
         { "fallbacktorsh", oDeprecated },          { "fallbacktorsh", oDeprecated },
         { "usersh", oDeprecated },          { "usersh", oDeprecated },
         { "identityfile", oIdentityFile },          { "identityfile", oIdentityFile },
Line 184 
Line 175 
         { "preferredauthentications", oPreferredAuthentications },          { "preferredauthentications", oPreferredAuthentications },
         { "hostkeyalgorithms", oHostKeyAlgorithms },          { "hostkeyalgorithms", oHostKeyAlgorithms },
         { "bindaddress", oBindAddress },          { "bindaddress", oBindAddress },
   #ifdef SMARTCARD
         { "smartcarddevice", oSmartcardDevice },          { "smartcarddevice", oSmartcardDevice },
   #else
           { "smartcarddevice", oUnsupported },
   #endif
         { "clearallforwardings", oClearAllForwardings },          { "clearallforwardings", oClearAllForwardings },
         { "enablesshkeysign", oEnableSSHKeysign },          { "enablesshkeysign", oEnableSSHKeysign },
   #ifdef DNS
           { "verifyhostkeydns", oVerifyHostKeyDNS },
   #else
           { "verifyhostkeydns", oUnsupported },
   #endif
         { "nohostauthenticationforlocalhost", oNoHostAuthenticationForLocalhost },          { "nohostauthenticationforlocalhost", oNoHostAuthenticationForLocalhost },
           { "rekeylimit", oRekeyLimit },
           { "connecttimeout", oConnectTimeout },
           { "addressfamily", oAddressFamily },
         { NULL, oBadOption }          { NULL, oBadOption }
 };  };
   
Line 279 
Line 282 
         u_short fwd_port, fwd_host_port;          u_short fwd_port, fwd_host_port;
         char sfwd_host_port[6];          char sfwd_host_port[6];
   
           /* Strip trailing whitespace */
           for(len = strlen(line) - 1; len > 0; len--) {
                   if (strchr(WHITESPACE, line[len]) == NULL)
                           break;
                   line[len] = '\0';
           }
   
         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). */
         keyword = strdelim(&s);          keyword = strdelim(&s);
Line 295 
Line 305 
                 /* don't panic, but count bad options */                  /* don't panic, but count bad options */
                 return -1;                  return -1;
                 /* NOTREACHED */                  /* NOTREACHED */
           case oConnectTimeout:
                   intptr = &options->connection_timeout;
   /* parse_time: */
                   arg = strdelim(&s);
                   if (!arg || *arg == '\0')
                           fatal("%s line %d: missing time value.",
                               filename, linenum);
                   if ((value = convtime(arg)) == -1)
                           fatal("%s line %d: invalid time value.",
                               filename, linenum);
                   if (*intptr == -1)
                           *intptr = value;
                   break;
   
         case oForwardAgent:          case oForwardAgent:
                 intptr = &options->forward_agent;                  intptr = &options->forward_agent;
 parse_flag:  parse_flag:
Line 324 
Line 348 
                 intptr = &options->use_privileged_port;                  intptr = &options->use_privileged_port;
                 goto parse_flag;                  goto parse_flag;
   
         case oRhostsAuthentication:  
                 intptr = &options->rhosts_authentication;  
                 goto parse_flag;  
   
         case oPasswordAuthentication:          case oPasswordAuthentication:
                 intptr = &options->password_authentication;                  intptr = &options->password_authentication;
                 goto parse_flag;                  goto parse_flag;
Line 359 
Line 379 
         case oChallengeResponseAuthentication:          case oChallengeResponseAuthentication:
                 intptr = &options->challenge_response_authentication;                  intptr = &options->challenge_response_authentication;
                 goto parse_flag;                  goto parse_flag;
 #if defined(KRB4) || defined(KRB5)  
         case oKerberosAuthentication:          case oGssAuthentication:
                 intptr = &options->kerberos_authentication;                  intptr = &options->gss_authentication;
                 goto parse_flag;                  goto parse_flag;
 #endif  
 #if defined(AFS) || defined(KRB5)          case oGssDelegateCreds:
         case oKerberosTgtPassing:                  intptr = &options->gss_deleg_creds;
                 intptr = &options->kerberos_tgt_passing;  
                 goto parse_flag;                  goto parse_flag;
 #endif  
 #ifdef AFS  
         case oAFSTokenPassing:  
                 intptr = &options->afs_token_passing;  
                 goto parse_flag;  
 #endif  
         case oBatchMode:          case oBatchMode:
                 intptr = &options->batch_mode;                  intptr = &options->batch_mode;
                 goto parse_flag;                  goto parse_flag;
Line 382 
Line 396 
                 intptr = &options->check_host_ip;                  intptr = &options->check_host_ip;
                 goto parse_flag;                  goto parse_flag;
   
           case oVerifyHostKeyDNS:
                   intptr = &options->verify_host_key_dns;
                   goto parse_flag;
   
         case oStrictHostKeyChecking:          case oStrictHostKeyChecking:
                 intptr = &options->strict_host_key_checking;                  intptr = &options->strict_host_key_checking;
                 arg = strdelim(&s);                  arg = strdelim(&s);
Line 421 
Line 439 
                 intptr = &options->compression_level;                  intptr = &options->compression_level;
                 goto parse_int;                  goto parse_int;
   
           case oRekeyLimit:
                   intptr = &options->rekey_limit;
                   arg = strdelim(&s);
                   if (!arg || *arg == '\0')
                           fatal("%.200s line %d: Missing argument.", filename, linenum);
                   if (arg[0] < '0' || arg[0] > '9')
                           fatal("%.200s line %d: Bad number.", filename, linenum);
                   value = strtol(arg, &endofnumber, 10);
                   if (arg == endofnumber)
                           fatal("%.200s line %d: Bad number.", filename, linenum);
                   switch (toupper(*endofnumber)) {
                   case 'K':
                           value *= 1<<10;
                           break;
                   case 'M':
                           value *= 1<<20;
                           break;
                   case 'G':
                           value *= 1<<30;
                           break;
                   }
                   if (*activep && *intptr == -1)
                           *intptr = value;
                   break;
   
         case oIdentityFile:          case oIdentityFile:
                 arg = strdelim(&s);                  arg = strdelim(&s);
                 if (!arg || *arg == '\0')                  if (!arg || *arg == '\0')
Line 487 
Line 530 
                 goto parse_string;                  goto parse_string;
   
         case oProxyCommand:          case oProxyCommand:
                   if (s == NULL)
                           fatal("%.200s line %d: Missing argument.", filename, linenum);
                 charptr = &options->proxy_command;                  charptr = &options->proxy_command;
                 len = strspn(s, WHITESPACE "=");                  len = strspn(s, WHITESPACE "=");
                 if (*activep && *charptr == NULL)                  if (*activep && *charptr == NULL)
Line 624 
Line 669 
                         fatal("%.200s line %d: Badly formatted port number.",                          fatal("%.200s line %d: Badly formatted port number.",
                             filename, linenum);                              filename, linenum);
                 if (*activep)                  if (*activep)
                         add_local_forward(options, fwd_port, "socks4", 0);                          add_local_forward(options, fwd_port, "socks", 0);
                 break;                  break;
   
         case oClearAllForwardings:          case oClearAllForwardings:
Line 664 
Line 709 
                         *intptr = value;                          *intptr = value;
                 break;                  break;
   
           case oAddressFamily:
                   arg = strdelim(&s);
                   intptr = &options->address_family;
                   if (strcasecmp(arg, "inet") == 0)
                           value = AF_INET;
                   else if (strcasecmp(arg, "inet6") == 0)
                           value = AF_INET6;
                   else if (strcasecmp(arg, "any") == 0)
                           value = AF_UNSPEC;
                   else
                           fatal("Unsupported AddressFamily \"%s\"", arg);
                   if (*activep && *intptr == -1)
                           *intptr = value;
                   break;
   
         case oEnableSSHKeysign:          case oEnableSSHKeysign:
                 intptr = &options->enable_ssh_keysign;                  intptr = &options->enable_ssh_keysign;
                 goto parse_flag;                  goto parse_flag;
Line 673 
Line 733 
                     filename, linenum, keyword);                      filename, linenum, keyword);
                 return 0;                  return 0;
   
           case oUnsupported:
                   error("%s line %d: Unsupported option \"%s\"",
                       filename, linenum, keyword);
                   return 0;
   
         default:          default:
                 fatal("process_config_line: Unimplemented opcode %d", opcode);                  fatal("process_config_line: Unimplemented opcode %d", opcode);
         }          }
Line 742 
Line 807 
         options->xauth_location = NULL;          options->xauth_location = NULL;
         options->gateway_ports = -1;          options->gateway_ports = -1;
         options->use_privileged_port = -1;          options->use_privileged_port = -1;
         options->rhosts_authentication = -1;  
         options->rsa_authentication = -1;          options->rsa_authentication = -1;
         options->pubkey_authentication = -1;          options->pubkey_authentication = -1;
         options->challenge_response_authentication = -1;          options->challenge_response_authentication = -1;
 #if defined(KRB4) || defined(KRB5)          options->gss_authentication = -1;
         options->kerberos_authentication = -1;          options->gss_deleg_creds = -1;
 #endif  
 #if defined(AFS) || defined(KRB5)  
         options->kerberos_tgt_passing = -1;  
 #endif  
 #ifdef AFS  
         options->afs_token_passing = -1;  
 #endif  
         options->password_authentication = -1;          options->password_authentication = -1;
         options->kbd_interactive_authentication = -1;          options->kbd_interactive_authentication = -1;
         options->kbd_interactive_devices = NULL;          options->kbd_interactive_devices = NULL;
Line 767 
Line 824 
         options->keepalives = -1;          options->keepalives = -1;
         options->compression_level = -1;          options->compression_level = -1;
         options->port = -1;          options->port = -1;
           options->address_family = -1;
         options->connection_attempts = -1;          options->connection_attempts = -1;
           options->connection_timeout = -1;
         options->number_of_password_prompts = -1;          options->number_of_password_prompts = -1;
         options->cipher = -1;          options->cipher = -1;
         options->ciphers = NULL;          options->ciphers = NULL;
Line 793 
Line 852 
         options->smartcard_device = NULL;          options->smartcard_device = NULL;
         options->enable_ssh_keysign = - 1;          options->enable_ssh_keysign = - 1;
         options->no_host_authentication_for_localhost = - 1;          options->no_host_authentication_for_localhost = - 1;
           options->rekey_limit = - 1;
           options->verify_host_key_dns = -1;
 }  }
   
 /*  /*
Line 815 
Line 876 
                 options->gateway_ports = 0;                  options->gateway_ports = 0;
         if (options->use_privileged_port == -1)          if (options->use_privileged_port == -1)
                 options->use_privileged_port = 0;                  options->use_privileged_port = 0;
         if (options->rhosts_authentication == -1)  
                 options->rhosts_authentication = 0;  
         if (options->rsa_authentication == -1)          if (options->rsa_authentication == -1)
                 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_response_authentication == -1)          if (options->challenge_response_authentication == -1)
                 options->challenge_response_authentication = 1;                  options->challenge_response_authentication = 1;
 #if defined(KRB4) || defined(KRB5)          if (options->gss_authentication == -1)
         if (options->kerberos_authentication == -1)                  options->gss_authentication = 1;
                 options->kerberos_authentication = 1;          if (options->gss_deleg_creds == -1)
 #endif                  options->gss_deleg_creds = 0;
 #if defined(AFS) || defined(KRB5)  
         if (options->kerberos_tgt_passing == -1)  
                 options->kerberos_tgt_passing = 1;  
 #endif  
 #ifdef AFS  
         if (options->afs_token_passing == -1)  
                 options->afs_token_passing = 1;  
 #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 857 
Line 908 
                 options->compression_level = 6;                  options->compression_level = 6;
         if (options->port == -1)          if (options->port == -1)
                 options->port = 0;      /* Filled in ssh_connect. */                  options->port = 0;      /* Filled in ssh_connect. */
           if (options->address_family == -1)
                   options->address_family = AF_UNSPEC;
         if (options->connection_attempts == -1)          if (options->connection_attempts == -1)
                 options->connection_attempts = 1;                  options->connection_attempts = 1;
         if (options->number_of_password_prompts == -1)          if (options->number_of_password_prompts == -1)
Line 909 
Line 962 
                 options->no_host_authentication_for_localhost = 0;                  options->no_host_authentication_for_localhost = 0;
         if (options->enable_ssh_keysign == -1)          if (options->enable_ssh_keysign == -1)
                 options->enable_ssh_keysign = 0;                  options->enable_ssh_keysign = 0;
           if (options->rekey_limit == -1)
                   options->rekey_limit = 0;
           if (options->verify_host_key_dns == -1)
                   options->verify_host_key_dns = 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.102  
changed lines
  Added in v.1.102.2.1