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

Diff for /src/usr.bin/ssh/scp.c between version 1.22 and 1.23

version 1.22, 1999/12/06 20:15:28 version 1.23, 2000/01/04 00:07:59
Line 74 
Line 74 
 /* Name of current file being transferred. */  /* Name of current file being transferred. */
 char *curfile;  char *curfile;
   
   /* This is set to non-zero if IPv4 is desired. */
   int IPv4 = 0;
   
   /* This is set to non-zero if IPv6 is desired. */
   int IPv6 = 0;
   
 /* This is set to non-zero to enable verbose mode. */  /* This is set to non-zero to enable verbose mode. */
 int verbose_mode = 0;  int verbose_mode = 0;
   
Line 145 
Line 151 
                 args[i++] = SSH_PROGRAM;                  args[i++] = SSH_PROGRAM;
                 args[i++] = "-x";                  args[i++] = "-x";
                 args[i++] = "-oFallBackToRsh no";                  args[i++] = "-oFallBackToRsh no";
                   if (IPv4)
                           args[i++] = "-4";
                   if (IPv6)
                           args[i++] = "-6";
                   args[i++] = "-oFallBackToRsh no";
                 if (verbose_mode)                  if (verbose_mode)
                         args[i++] = "-v";                          args[i++] = "-v";
                 if (compress)                  if (compress)
Line 242 
Line 253 
         extern int optind;          extern int optind;
   
         fflag = tflag = 0;          fflag = tflag = 0;
         while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:q")) != EOF)          while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:q46")) != EOF)
                 switch (ch) {                  switch (ch) {
                 /* User-visible flags. */                  /* User-visible flags. */
                   case '4':
                           IPv4 = 1;
                           break;
                   case '6':
                           IPv6 = 1;
                           break;
                 case 'p':                  case 'p':
                         pflag = 1;                          pflag = 1;
                         break;                          break;
Line 334 
Line 351 
         exit(errs != 0);          exit(errs != 0);
 }  }
   
   char *
   cleanhostname(host)
           char *host;
   {
           if (*host == '[' && host[strlen(host) - 1] == ']') {
                   host[strlen(host) - 1] = '\0';
                   return (host + 1);
           } else
                   return host;
   }
   
 void  void
 toremote(targ, argc, argv)  toremote(targ, argc, argv)
         char *targ, *argv[];          char *targ, *argv[];
Line 372 
Line 400 
                         bp = xmalloc(len);                          bp = xmalloc(len);
                         if (host) {                          if (host) {
                                 *host++ = 0;                                  *host++ = 0;
                                   host = cleanhostname(host);
                                 suser = argv[i];                                  suser = argv[i];
                                 if (*suser == '\0')                                  if (*suser == '\0')
                                         suser = pwd->pw_name;                                          suser = pwd->pw_name;
Line 383 
Line 412 
                                                suser, host, cmd, src,                                                 suser, host, cmd, src,
                                                tuser ? tuser : "", tuser ? "@" : "",                                                 tuser ? tuser : "", tuser ? "@" : "",
                                                thost, targ);                                                 thost, targ);
                         } else                          } else {
                                   host = cleanhostname(argv[i]);
                                 (void) sprintf(bp,                                  (void) sprintf(bp,
                                                "exec %s%s -x -o'FallBackToRsh no' -n %s %s %s '%s%s%s:%s'",                                                 "exec %s%s -x -o'FallBackToRsh no' -n %s %s %s '%s%s%s:%s'",
                                                SSH_PROGRAM, verbose_mode ? " -v" : "",                                                 SSH_PROGRAM, verbose_mode ? " -v" : "",
                                                argv[i], cmd, src,                                                 host, cmd, src,
                                                tuser ? tuser : "", tuser ? "@" : "",                                                 tuser ? tuser : "", tuser ? "@" : "",
                                                thost, targ);                                                 thost, targ);
                           }
                         if (verbose_mode)                          if (verbose_mode)
                                 fprintf(stderr, "Executing: %s\n", bp);                                  fprintf(stderr, "Executing: %s\n", bp);
                         (void) system(bp);                          (void) system(bp);
Line 399 
Line 430 
                                 len = strlen(targ) + CMDNEEDS + 20;                                  len = strlen(targ) + CMDNEEDS + 20;
                                 bp = xmalloc(len);                                  bp = xmalloc(len);
                                 (void) sprintf(bp, "%s -t %s", cmd, targ);                                  (void) sprintf(bp, "%s -t %s", cmd, targ);
                                 host = thost;                                  host = cleanhostname(thost);
                                 if (do_cmd(host, tuser,                                  if (do_cmd(host, tuser,
                                            bp, &remin, &remout) < 0)                                             bp, &remin, &remout) < 0)
                                         exit(1);                                          exit(1);
Line 449 
Line 480 
                         else if (!okname(suser))                          else if (!okname(suser))
                                 continue;                                  continue;
                 }                  }
                   host = cleanhostname(host);
                 len = strlen(src) + CMDNEEDS + 20;                  len = strlen(src) + CMDNEEDS + 20;
                 bp = xmalloc(len);                  bp = xmalloc(len);
                 (void) sprintf(bp, "%s -f %s", cmd, src);                  (void) sprintf(bp, "%s -f %s", cmd, src);
Line 981 
Line 1013 
 colon(cp)  colon(cp)
         char *cp;          char *cp;
 {  {
           int flag = 0;
   
         if (*cp == ':')         /* Leading colon is part of file name. */          if (*cp == ':')         /* Leading colon is part of file name. */
                 return (0);                  return (0);
           if (*cp == '[')
                   flag = 1;
   
         for (; *cp; ++cp) {          for (; *cp; ++cp) {
                 if (*cp == ':')                  if (*cp == '@' && *(cp+1) == '[')
                           flag = 1;
                   if (*cp == ']' && *(cp+1) == ':' && flag)
                           return (cp+1);
                   if (*cp == ':' && !flag)
                         return (cp);                          return (cp);
                 if (*cp == '/')                  if (*cp == '/')
                         return (0);                          return (0);

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23