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

Diff for /src/usr.bin/ssh/ssh.c between version 1.330 and 1.331

version 1.330, 2010/01/09 23:04:13 version 1.331, 2010/01/11 01:39:46
Line 124 
Line 124 
  */   */
 int fork_after_authentication_flag = 0;  int fork_after_authentication_flag = 0;
   
   /* forward stdio to remote host and port */
   char *stdio_forward_host = NULL;
   int stdio_forward_port = 0;
   
 /*  /*
  * General data structure for command line options and options configurable   * General data structure for command line options and options configurable
  * in configuration files.  See readconf.h.   * in configuration files.  See readconf.h.
Line 178 
Line 182 
 "           [-i identity_file] [-L [bind_address:]port:host:hostport]\n"  "           [-i identity_file] [-L [bind_address:]port:host:hostport]\n"
 "           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n"  "           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]\n"
 "           [-R [bind_address:]port:host:hostport] [-S ctl_path]\n"  "           [-R [bind_address:]port:host:hostport] [-S ctl_path]\n"
 "           [-w local_tun[:remote_tun]] [user@]hostname [command]\n"  "           [-W host:port] [-w local_tun[:remote_tun]]\n"
   "           [user@]hostname [command]\n"
         );          );
         exit(255);          exit(255);
 }  }
Line 263 
Line 268 
   
  again:   again:
         while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx"          while ((opt = getopt(ac, av, "1246ab:c:e:fgi:kl:m:no:p:qstvx"
             "ACD:F:I:KL:MNO:PR:S:TVw:XYy")) != -1) {              "ACD:F:I:KL:MNO:PR:S:TVw:W:XYy")) != -1) {
                 switch (opt) {                  switch (opt) {
                 case '1':                  case '1':
                         options.protocol = SSH_PROTO_1;                          options.protocol = SSH_PROTO_1;
Line 376 
Line 381 
                                 exit(255);                                  exit(255);
                         }                          }
                         break;                          break;
                   case 'W':
                           if (parse_forward(&fwd, optarg, 1, 0)) {
                                   stdio_forward_host = fwd.listen_host;
                                   stdio_forward_port = fwd.listen_port;
                                   xfree(fwd.connect_host);
                           } else {
                                   fprintf(stderr,
                                       "Bad stdio forwarding specification '%s'\n",
                                       optarg);
                                   exit(255);
                           }
                           no_tty_flag = 1;
                           no_shell_flag = 1;
                           options.clear_forwardings = 1;
                           options.exit_on_forward_failure = 1;
                           break;
                 case 'q':                  case 'q':
                         options.log_level = SYSLOG_LEVEL_QUIET;                          options.log_level = SYSLOG_LEVEL_QUIET;
                         break;                          break;
Line 852 
Line 873 
 }  }
   
 static void  static void
   client_cleanup_stdio_fwd(int id, void *arg)
   {
           debug("stdio forwarding: done");
           cleanup_exit(0);
   }
   
   static int
   client_setup_stdio_fwd(const char *host_to_connect, u_short port_to_connect)
   {
           Channel *c;
   
           debug3("client_setup_stdio_fwd %s:%d", host_to_connect,
               port_to_connect);
           if ((c = channel_connect_stdio_fwd(host_to_connect, port_to_connect))
               == NULL)
                   return 0;
           channel_register_cleanup(c->self, client_cleanup_stdio_fwd, 0);
           return 1;
   }
   
   static void
 ssh_init_forwarding(void)  ssh_init_forwarding(void)
 {  {
         int success = 0;          int success = 0;
         int i;          int i;
   
           if (stdio_forward_host != NULL) {
                   if (!compat20) {
                           fatal("stdio forwarding require Protocol 2");
                   }
                   if (!client_setup_stdio_fwd(stdio_forward_host,
                       stdio_forward_port))
                           fatal("Failed to connect in stdio forward mode.");
           }
   
         /* Initiate local TCP/IP port forwardings. */          /* Initiate local TCP/IP port forwardings. */
         for (i = 0; i < options.num_local_forwards; i++) {          for (i = 0; i < options.num_local_forwards; i++) {

Legend:
Removed from v.1.330  
changed lines
  Added in v.1.331