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

Diff for /src/usr.bin/ftp/cmds.c between version 1.61 and 1.62

version 1.61, 2008/06/16 19:56:04 version 1.62, 2008/06/25 18:07:00
Line 258 
Line 258 
         code = -1;          code = -1;
 }  }
   
   #ifndef SMALL
   void
   reput(int argc, char *argv[])
   {
   
           (void)putit(argc, argv, 1);
   }
   #endif /* !SMALL */
   
   void
   put(int argc, char *argv[])
   {
   
           (void)putit(argc, argv, 0);
   }
   
 /*  /*
  * Send a single file.   * Send a single file.
  */   */
 void  void
 put(int argc, char *argv[])  putit(int argc, char *argv[], int restartit)
 {  {
         char *cmd;          char *cmd;
         int loc = 0;          int loc = 0;
Line 294 
Line 310 
         if (argv[1] != oldargv1 && argv[2] == oldargv1) {          if (argv[1] != oldargv1 && argv[2] == oldargv1) {
                 argv[2] = argv[1];                  argv[2] = argv[1];
         }          }
         cmd = (argv[0][0] == 'a') ? "APPE" : ((sunique) ? "STOU" : "STOR");  #ifndef SMALL
           if (restartit == 1) {
                   if (curtype != type)
                           changetype(type, 0);
                   restart_point = remotesize(argv[2], 1);
                   if (restart_point < 0) {
                           restart_point = 0;
                           code = -1;
                           return;
                   }
           }
   #endif /* !SMALL */
           if (strcmp(argv[0], "append") == 0) {
                   restartit = 1;
           }
           cmd = restartit ? "APPE" : ((sunique) ? "STOU" : "STOR");
         if (loc && ntflag) {          if (loc && ntflag) {
                 argv[2] = dotrans(argv[2]);                  argv[2] = dotrans(argv[2]);
         }          }
Line 303 
Line 334 
         }          }
         sendrequest(cmd, argv[1], argv[2],          sendrequest(cmd, argv[1], argv[2],
             argv[1] != oldargv1 || argv[2] != oldargv2);              argv[1] != oldargv1 || argv[2] != oldargv2);
           restart_point = 0;
         if (oldargv1 != argv[1])        /* free up after globulize() */          if (oldargv1 != argv[1])        /* free up after globulize() */
                 free(argv[1]);                  free(argv[1]);
 }  }
Line 313 
Line 345 
 void  void
 mput(int argc, char *argv[])  mput(int argc, char *argv[])
 {  {
         int i;          extern int optind, optreset;
           int ch, i, restartit = 0;
         sig_t oldintr;          sig_t oldintr;
         char *tp;          char *cmd, *tp;
   
         if (argc < 2 && !another(&argc, &argv, "local-files")) {          optind = optreset = 1;
                 fprintf(ttyout, "usage: %s local-files\n", argv[0]);  
   #ifndef SMALL
           while ((ch = getopt(argc, argv, "c")) != -1) {
                   switch(ch) {
                   case 'c':
                           restartit = 1;
                           break;
                   default:
                           goto usage;
                   }
           }
   #endif /* !SMALL */
   
           if (argc - optind < 1 && !another(&argc, &argv, "local-files")) {
   usage:
                   fprintf(ttyout, "usage: %s [-c] local-files\n", argv[0]);
                 code = -1;                  code = -1;
                 return;                  return;
         }          }
   
   #ifndef SMALL
           optind--;
           argv[optind] = argv[0];
           argc -= optind;
           argv += optind;
   #endif /* !SMALL */
   
         mname = argv[0];          mname = argv[0];
         mflag = 1;          mflag = 1;
   
         oldintr = signal(SIGINT, mabort);          oldintr = signal(SIGINT, mabort);
         (void)setjmp(jabort);          (void)setjmp(jabort);
         if (proxy) {          if (proxy) {
Line 360 
Line 417 
                                 if (mapflag) {                                  if (mapflag) {
                                         tp = domap(tp);                                          tp = domap(tp);
                                 }                                  }
                                 sendrequest((sunique) ? "STOU" : "STOR",  #ifndef SMALL
                                     cp, tp, cp != tp || !interactive);                                  if (restartit == 1) {
                                           off_t ret;
   
                                           if (curtype != type)
                                                   changetype(type, 0);
                                           ret = remotesize(tp, 0);
                                           restart_point = (ret < 0) ? 0 : ret;
                                   }
   #endif /* !SMALL */
                                   cmd = restartit ? "APPE" : ((sunique) ?
                                       "STOU" : "STOR");
                                   sendrequest(cmd, cp, tp,
                                       cp != tp || !interactive);
                                   restart_point = 0;
                                 if (!mflag && fromatty) {                                  if (!mflag && fromatty) {
                                         if (confirm("Continue with", "mput", 1))                                          if (confirm("Continue with",
                                               argv[0], 1))
                                                 mflag = 1;                                                  mflag = 1;
                                 }                                  }
                         }                          }
Line 381 
Line 452 
                         if (mflag && confirm(argv[0], argv[i], 0)) {                          if (mflag && confirm(argv[0], argv[i], 0)) {
                                 tp = (ntflag) ? dotrans(argv[i]) : argv[i];                                  tp = (ntflag) ? dotrans(argv[i]) : argv[i];
                                 tp = (mapflag) ? domap(tp) : tp;                                  tp = (mapflag) ? domap(tp) : tp;
                                 sendrequest((sunique) ? "STOU" : "STOR",  #ifndef SMALL
                                     argv[i], tp, tp != argv[i] || !interactive);                                  if (restartit == 1) {
                                           off_t ret;
   
                                           if (curtype != type)
                                                   changetype(type, 0);
                                           ret = remotesize(tp, 0);
                                           restart_point = (ret < 0) ? 0 : ret;
                                   }
   #endif /* !SMALL */
                                   cmd = restartit ? "APPE" : ((sunique) ?
                                       "STOU" : "STOR");
                                   sendrequest(cmd, argv[i], tp,
                                       tp != argv[i] || !interactive);
                                   restart_point = 0;
                                 if (!mflag && fromatty) {                                  if (!mflag && fromatty) {
                                         if (confirm("Continue with", "mput", 1))                                          if (confirm("Continue with",
                                               argv[0], 1))
                                                 mflag = 1;                                                  mflag = 1;
                                 }                                  }
                         }                          }
Line 402 
Line 487 
                         if (mflag && confirm(argv[0], *cpp, 0)) {                          if (mflag && confirm(argv[0], *cpp, 0)) {
                                 tp = (ntflag) ? dotrans(*cpp) : *cpp;                                  tp = (ntflag) ? dotrans(*cpp) : *cpp;
                                 tp = (mapflag) ? domap(tp) : tp;                                  tp = (mapflag) ? domap(tp) : tp;
                                 sendrequest((sunique) ? "STOU" : "STOR",  #ifndef SMALL
                                     *cpp, tp, *cpp != tp || !interactive);                                  if (restartit == 1) {
                                           off_t ret;
   
                                           if (curtype != type)
                                                   changetype(type, 0);
                                           ret = remotesize(tp, 0);
                                           restart_point = (ret < 0) ? 0 : ret;
                                   }
   #endif /* !SMALL */
                                   cmd = restartit ? "APPE" : ((sunique) ?
                                       "STOU" : "STOR");
                                   sendrequest(cmd, *cpp, tp,
                                       *cpp != tp || !interactive);
                                   restart_point = 0;
                                 if (!mflag && fromatty) {                                  if (!mflag && fromatty) {
                                         if (confirm("Continue with", "mput", 1))                                          if (confirm("Continue with",
                                               argv[0], 1))
                                                 mflag = 1;                                                  mflag = 1;
                                 }                                  }
                         }                          }
Line 416 
Line 515 
         mflag = 0;          mflag = 0;
 }  }
   
   #ifndef SMALL
 void  void
 reget(int argc, char *argv[])  reget(int argc, char *argv[])
 {  {
   
         (void)getit(argc, argv, 1, "r+w");          (void)getit(argc, argv, 1, "r+w");
 }  }
   #endif /* !SMALL */
   
 void  void
 get(int argc, char *argv[])  get(int argc, char *argv[])
Line 483 
Line 584 
                 argv[2] = dotrans(argv[2]);                  argv[2] = dotrans(argv[2]);
         if (loc && mapflag)          if (loc && mapflag)
                 argv[2] = domap(argv[2]);                  argv[2] = domap(argv[2]);
   #ifndef SMALL
         if (restartit) {          if (restartit) {
                 struct stat stbuf;                  struct stat stbuf;
                 int ret;                  int ret;
Line 508 
Line 610 
                         }                          }
                 }                  }
         }          }
   #endif /* !SMALL */
   
         recvrequest("RETR", argv[2], argv[1], mode,          recvrequest("RETR", argv[2], argv[1], mode,
             argv[1] != oldargv1 || argv[2] != oldargv2, loc);              argv[1] != oldargv1 || argv[2] != oldargv2, loc);
Line 527 
Line 630 
         putc('\n', ttyout);          putc('\n', ttyout);
         (void)fflush(ttyout);          (void)fflush(ttyout);
         if (mflag && fromatty)          if (mflag && fromatty)
                 if (confirm("Continue with", mname, 0))                  if (confirm("Continue with", mname, 1))
                         longjmp(jabort, 1);                          longjmp(jabort, 1);
         mflag = 0;          mflag = 0;
         longjmp(jabort, 1);          longjmp(jabort, 1);
Line 539 
Line 642 
 void  void
 mget(int argc, char *argv[])  mget(int argc, char *argv[])
 {  {
           extern int optind, optreset;
         sig_t oldintr;          sig_t oldintr;
         int ch;          int ch, restartit = 0;
         char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN], localcwd[MAXPATHLEN];          char *cp, *tp, *tp2, tmpbuf[MAXPATHLEN], localcwd[MAXPATHLEN];
   
         if (argc < 2 && !another(&argc, &argv, "remote-files")) {          optind = optreset = 1;
                 fprintf(ttyout, "usage: %s remote-files\n", argv[0]);  
   #ifndef SMALL
           while ((ch = getopt(argc, argv, "c")) != -1) {
                   switch(ch) {
                   case 'c':
                           restartit = 1;
                           break;
                   default:
                           goto usage;
                   }
           }
   #endif /* !SMALL */
   
           if (argc - optind < 1 && !another(&argc, &argv, "remote-files")) {
   usage:
                   fprintf(ttyout, "usage: %s [-c] remote-files\n", argv[0]);
                 code = -1;                  code = -1;
                 return;                  return;
         }          }
   
   #ifndef SMALL
           optind--;
           argv[optind] = argv[0];
           argc -= optind;
           argv += optind;
   #endif /* !SMALL */
   
         mname = argv[0];          mname = argv[0];
         mflag = 1;          mflag = 1;
         if (getcwd(localcwd, sizeof(localcwd)) == NULL)          if (getcwd(localcwd, sizeof(localcwd)) == NULL)
Line 579 
Line 706 
                                 tp = dotrans(tp);                                  tp = dotrans(tp);
                         if (mapflag)                          if (mapflag)
                                 tp = domap(tp);                                  tp = domap(tp);
                         recvrequest("RETR", tp, cp, "w",  #ifndef SMALL
                           if (restartit == 1) {
                                   struct stat stbuf;
                                   int ret;
   
                                   ret = stat(tp, &stbuf);
                                   restart_point = (ret < 0) ? 0 : stbuf.st_size;
                           }
   #endif /* !SMALL */
                           recvrequest("RETR", tp, cp, restart_point ? "r+w" : "w",
                             tp != cp || !interactive, 1);                              tp != cp || !interactive, 1);
                           restart_point = 0;
                         if (!mflag && fromatty) {                          if (!mflag && fromatty) {
                                 if (confirm("Continue with", "mget", 1))                                  if (confirm("Continue with", argv[0], 1))
                                         mflag = 1;                                          mflag = 1;
                         }                          }
                 }                  }
Line 1024 
Line 1161 
                 if (mflag && confirm(argv[0], cp, 0)) {                  if (mflag && confirm(argv[0], cp, 0)) {
                         (void)command("DELE %s", cp);                          (void)command("DELE %s", cp);
                         if (!mflag && fromatty) {                          if (!mflag && fromatty) {
                                 if (confirm("Continue with", "mdelete", 0))                                  if (confirm("Continue with", argv[0], 1))
                                         mflag = 1;                                          mflag = 1;
                         }                          }
                 }                  }

Legend:
Removed from v.1.61  
changed lines
  Added in v.1.62