[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.143.2.2 and 1.144

version 1.143.2.2, 2006/10/06 03:19:33 version 1.144, 2005/12/06 22:38:27
Line 1 
Line 1 
 /* $OpenBSD$ */  
 /*  /*
  * Author: Tatu Ylonen <ylo@cs.hut.fi>   * Author: Tatu Ylonen <ylo@cs.hut.fi>
  * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland   * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
Line 12 
Line 11 
  * called by a name other than "ssh" or "Secure Shell".   * called by a name other than "ssh" or "Secure Shell".
  */   */
   
 #include <sys/types.h>  #include "includes.h"
 #include <sys/stat.h>  RCSID("$OpenBSD$");
 #include <sys/socket.h>  
   
 #include <netinet/in.h>  
   
 #include <ctype.h>  
 #include <errno.h>  
 #include <netdb.h>  
 #include <signal.h>  
 #include <stdio.h>  
 #include <string.h>  
 #include <unistd.h>  
   
 #include "xmalloc.h"  
 #include "ssh.h"  #include "ssh.h"
   #include "xmalloc.h"
 #include "compat.h"  #include "compat.h"
 #include "cipher.h"  #include "cipher.h"
 #include "pathnames.h"  #include "pathnames.h"
 #include "log.h"  #include "log.h"
 #include "key.h"  
 #include "readconf.h"  #include "readconf.h"
 #include "match.h"  #include "match.h"
 #include "misc.h"  #include "misc.h"
 #include "buffer.h"  
 #include "kex.h"  #include "kex.h"
 #include "mac.h"  #include "mac.h"
   
Line 108 
Line 94 
 typedef enum {  typedef enum {
         oBadOption,          oBadOption,
         oForwardAgent, oForwardX11, oForwardX11Trusted, oGatewayPorts,          oForwardAgent, oForwardX11, oForwardX11Trusted, oGatewayPorts,
         oExitOnForwardFailure,  
         oPasswordAuthentication, oRSAAuthentication,          oPasswordAuthentication, oRSAAuthentication,
         oChallengeResponseAuthentication, oXAuthLocation,          oChallengeResponseAuthentication, oXAuthLocation,
         oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,          oIdentityFile, oHostName, oPort, oCipher, oRemoteForward, oLocalForward,
Line 139 
Line 124 
         { "forwardagent", oForwardAgent },          { "forwardagent", oForwardAgent },
         { "forwardx11", oForwardX11 },          { "forwardx11", oForwardX11 },
         { "forwardx11trusted", oForwardX11Trusted },          { "forwardx11trusted", oForwardX11Trusted },
         { "exitonforwardfailure", oExitOnForwardFailure },  
         { "xauthlocation", oXAuthLocation },          { "xauthlocation", oXAuthLocation },
         { "gatewayports", oGatewayPorts },          { "gatewayports", oGatewayPorts },
         { "useprivilegedport", oUsePrivilegedPort },          { "useprivilegedport", oUsePrivilegedPort },
Line 287 
Line 271 
                 xfree(options->remote_forwards[i].connect_host);                  xfree(options->remote_forwards[i].connect_host);
         }          }
         options->num_remote_forwards = 0;          options->num_remote_forwards = 0;
         options->tun_open = SSH_TUNMODE_NO;          options->tun_open = 0;
 }  }
   
 /*  /*
Line 320 
Line 304 
                     int *activep)                      int *activep)
 {  {
         char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256];          char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, fwdarg[256];
         int opcode, *intptr, value, value2, scale;          int opcode, *intptr, value, value2;
         long long orig, val64;  
         size_t len;          size_t len;
         Forward fwd;          Forward fwd;
   
Line 334 
Line 317 
   
         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). */
         if ((keyword = strdelim(&s)) == NULL)          keyword = strdelim(&s);
                 return 0;  
         /* Ignore leading whitespace. */          /* Ignore leading whitespace. */
         if (*keyword == '\0')          if (*keyword == '\0')
                 keyword = strdelim(&s);                  keyword = strdelim(&s);
Line 392 
Line 374 
                 intptr = &options->gateway_ports;                  intptr = &options->gateway_ports;
                 goto parse_flag;                  goto parse_flag;
   
         case oExitOnForwardFailure:  
                 intptr = &options->exit_on_forward_failure;  
                 goto parse_flag;  
   
         case oUsePrivilegedPort:          case oUsePrivilegedPort:
                 intptr = &options->use_privileged_port;                  intptr = &options->use_privileged_port;
                 goto parse_flag;                  goto parse_flag;
Line 499 
Line 477 
                         fatal("%.200s line %d: Missing argument.", filename, linenum);                          fatal("%.200s line %d: Missing argument.", filename, linenum);
                 if (arg[0] < '0' || arg[0] > '9')                  if (arg[0] < '0' || arg[0] > '9')
                         fatal("%.200s line %d: Bad number.", filename, linenum);                          fatal("%.200s line %d: Bad number.", filename, linenum);
                 orig = val64 = strtoll(arg, &endofnumber, 10);                  value = strtol(arg, &endofnumber, 10);
                 if (arg == endofnumber)                  if (arg == endofnumber)
                         fatal("%.200s line %d: Bad number.", filename, linenum);                          fatal("%.200s line %d: Bad number.", filename, linenum);
                 switch (toupper(*endofnumber)) {                  switch (toupper(*endofnumber)) {
                 case '\0':  
                         scale = 1;  
                         break;  
                 case 'K':                  case 'K':
                         scale = 1<<10;                          value *= 1<<10;
                         break;                          break;
                 case 'M':                  case 'M':
                         scale = 1<<20;                          value *= 1<<20;
                         break;                          break;
                 case 'G':                  case 'G':
                         scale = 1<<30;                          value *= 1<<30;
                         break;                          break;
                 default:  
                         fatal("%.200s line %d: Invalid RekeyLimit suffix",  
                             filename, linenum);  
                 }                  }
                 val64 *= scale;  
                 /* detect integer wrap and too-large limits */  
                 if ((val64 / scale) != orig || val64 > INT_MAX)  
                         fatal("%.200s line %d: RekeyLimit too large",  
                             filename, linenum);  
                 if (val64 < 16)  
                         fatal("%.200s line %d: RekeyLimit too small",  
                             filename, linenum);  
                 if (*activep && *intptr == -1)                  if (*activep && *intptr == -1)
                         *intptr = (int)val64;                          *intptr = value;
                 break;                  break;
   
         case oIdentityFile:          case oIdentityFile:
Line 869 
Line 833 
   
         case oTunnel:          case oTunnel:
                 intptr = &options->tun_open;                  intptr = &options->tun_open;
                 arg = strdelim(&s);                  goto parse_flag;
                 if (!arg || *arg == '\0')  
                         fatal("%s line %d: Missing yes/point-to-point/"  
                             "ethernet/no argument.", filename, linenum);  
                 value = 0;      /* silence compiler */  
                 if (strcasecmp(arg, "ethernet") == 0)  
                         value = SSH_TUNMODE_ETHERNET;  
                 else if (strcasecmp(arg, "point-to-point") == 0)  
                         value = SSH_TUNMODE_POINTOPOINT;  
                 else if (strcasecmp(arg, "yes") == 0)  
                         value = SSH_TUNMODE_DEFAULT;  
                 else if (strcasecmp(arg, "no") == 0)  
                         value = SSH_TUNMODE_NO;  
                 else  
                         fatal("%s line %d: Bad yes/point-to-point/ethernet/"  
                             "no argument: %s", filename, linenum, arg);  
                 if (*activep)  
                         *intptr = value;  
                 break;  
   
         case oTunnelDevice:          case oTunnelDevice:
                 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 argument.", filename, linenum);
                 value = a2tun(arg, &value2);                  value = a2tun(arg, &value2);
                 if (value == SSH_TUNID_ERR)                  if (value < -1)
                         fatal("%.200s line %d: Bad tun device.", filename, linenum);                          fatal("%.200s line %d: Bad tun device.", filename, linenum);
                 if (*activep) {                  if (*activep) {
                         options->tun_local = value;                          options->tun_local = value;
Line 997 
Line 943 
         options->forward_agent = -1;          options->forward_agent = -1;
         options->forward_x11 = -1;          options->forward_x11 = -1;
         options->forward_x11_trusted = -1;          options->forward_x11_trusted = -1;
         options->exit_on_forward_failure = -1;  
         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;
Line 1078 
Line 1023 
                 options->forward_x11 = 0;                  options->forward_x11 = 0;
         if (options->forward_x11_trusted == -1)          if (options->forward_x11_trusted == -1)
                 options->forward_x11_trusted = 0;                  options->forward_x11_trusted = 0;
         if (options->exit_on_forward_failure == -1)  
                 options->exit_on_forward_failure = 0;  
         if (options->xauth_location == NULL)          if (options->xauth_location == NULL)
                 options->xauth_location = _PATH_XAUTH;                  options->xauth_location = _PATH_XAUTH;
         if (options->gateway_ports == -1)          if (options->gateway_ports == -1)
Line 1187 
Line 1130 
         if (options->hash_known_hosts == -1)          if (options->hash_known_hosts == -1)
                 options->hash_known_hosts = 0;                  options->hash_known_hosts = 0;
         if (options->tun_open == -1)          if (options->tun_open == -1)
                 options->tun_open = SSH_TUNMODE_NO;                  options->tun_open = 0;
         if (options->tun_local == -1)  
                 options->tun_local = SSH_TUNID_ANY;  
         if (options->tun_remote == -1)  
                 options->tun_remote = SSH_TUNID_ANY;  
         if (options->permit_local_command == -1)          if (options->permit_local_command == -1)
                 options->permit_local_command = 0;                  options->permit_local_command = 0;
         /* options->local_command should not be set by default */          /* options->local_command should not be set by default */

Legend:
Removed from v.1.143.2.2  
changed lines
  Added in v.1.144