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

Diff for /src/usr.bin/ssh/clientloop.c between version 1.98 and 1.99

version 1.98, 2002/03/21 16:58:13 version 1.99, 2002/03/21 23:07:37
Line 472 
Line 472 
 }  }
   
 static void  static void
 process_cmdline(Buffer *bin, Buffer *bout, Buffer *berr)  process_cmdline(void)
 {  {
         void (*handler)(int);          void (*handler)(int);
         char *s, *cmd;          char *s, *cmd;
         u_short fwd_port, fwd_host_port;          u_short fwd_port, fwd_host_port;
         char buf[1024], sfwd_port[6], sfwd_host_port[6];          char buf[1024], sfwd_port[6], sfwd_host_port[6];
         int local = 0;          int local = 0;
         int n;  
   
         leave_raw_mode();          leave_raw_mode();
         handler = signal(SIGINT, SIG_IGN);          handler = signal(SIGINT, SIG_IGN);
         s = read_passphrase("\r\nssh> ", RP_ECHO);          cmd = s = read_passphrase("\r\nssh> ", RP_ECHO);
         if (s == NULL)          if (s == NULL)
                 goto out;                  goto out;
         cmd = s;  
   
         while (*s && isspace(*s))          while (*s && isspace(*s))
                 s++;                  s++;
   
         if (*s == 0)          if (*s == 0)
                 goto out;                  goto out;
   
         if (strlen(s) < 2 || s[0] != '-' || !(s[1] == 'L' || s[1] == 'R')) {          if (strlen(s) < 2 || s[0] != '-' || !(s[1] == 'L' || s[1] == 'R')) {
                 log("Invalid command");                  log("Invalid command.");
                 goto out;                  goto out;
         }          }
         if (s[1] == 'L')          if (s[1] == 'L')
                 local = 1;                  local = 1;
         if (!local && !compat20) {          if (!local && !compat20) {
                 log("Not supported for SSH protocol version 1");                  log("Not supported for SSH protocol version 1.");
                 goto out;                  goto out;
         }          }
   
         s += 2;          s += 2;
         while (*s && isspace(*s))          while (*s && isspace(*s))
                 s++;                  s++;
Line 513 
Line 507 
             sfwd_port, buf, sfwd_host_port) != 3 &&              sfwd_port, buf, sfwd_host_port) != 3 &&
             sscanf(s, "%5[0-9]/%255[^/]/%5[0-9]",              sscanf(s, "%5[0-9]/%255[^/]/%5[0-9]",
             sfwd_port, buf, sfwd_host_port) != 3) {              sfwd_port, buf, sfwd_host_port) != 3) {
                 log("Bad forwarding specification");                  log("Bad forwarding specification.");
                 goto out;                  goto out;
         }          }
         if ((fwd_port = a2port(sfwd_port)) == 0 ||          if ((fwd_port = a2port(sfwd_port)) == 0 ||
             (fwd_host_port = a2port(sfwd_host_port)) == 0) {              (fwd_host_port = a2port(sfwd_host_port)) == 0) {
                 log("Bad forwarding port(s)");                  log("Bad forwarding port(s).");
                 goto out;                  goto out;
         }          }
         if (local) {          if (local) {
                 n = channel_setup_local_fwd_listener(fwd_port, buf,                  if (channel_setup_local_fwd_listener(fwd_port, buf,
                     fwd_host_port, options.gateway_ports);                      fwd_host_port, options.gateway_ports) < 0) {
                 if (n <= 0) {                          log("Port forwarding failed.");
                         log("Port forwarding failed");  
                         goto out;                          goto out;
                 }                  }
         } else          } else
                 channel_request_remote_forwarding(fwd_port, buf,                  channel_request_remote_forwarding(fwd_port, buf,
                     fwd_host_port);                      fwd_host_port);
         log("Forwarding port");          log("Forwarding port.");
 out:  out:
         signal(SIGINT, handler);          signal(SIGINT, handler);
         enter_raw_mode();          enter_raw_mode();
Line 664 
Line 657 
                                 continue;                                  continue;
   
                         case 'C':                          case 'C':
                                 process_cmdline(bin, bout, berr);                                  process_cmdline();
                                 continue;                                  continue;
   
                         default:                          default:

Legend:
Removed from v.1.98  
changed lines
  Added in v.1.99