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

Diff for /src/usr.bin/ftp/fetch.c between version 1.48 and 1.49

version 1.48, 2003/12/16 21:46:22 version 1.49, 2004/02/28 20:08:38
Line 610 
Line 610 
         char *argv[];          char *argv[];
         char *outfile;          char *outfile;
 {  {
         static char lasthost[MAXHOSTNAMELEN];  
         char *xargv[5];          char *xargv[5];
         char *cp, *line, *host, *dir, *file, *portnum;          char *cp, *line, *host, *dir, *file, *portnum;
         char *user, *pass;          char *user, *pass;
         char *ftpproxy, *httpproxy;          char *ftpproxy, *httpproxy;
         int rval, xargc;          int rval, xargc;
         volatile int argpos;          volatile int argpos;
         int dirhasglob, filehasglob;          int dirhasglob, filehasglob, oautologin;
         char rempath[MAXPATHLEN];          char rempath[MAXPATHLEN];
   
         argpos = 0;          argpos = 0;
Line 778 
Line 777 
                             user, pass, host, portnum, dir, file);                              user, pass, host, portnum, dir, file);
   
                 /*                  /*
                  * Set up the connection if we don't have one.                   * Set up the connection.
                  */                   */
                 if (strcmp(host, lasthost) != 0) {                  if (connected)
                         int oautologin;                          disconnect(0, NULL);
                   xargv[0] = __progname;
                         (void)strlcpy(lasthost, host, sizeof lasthost);                  xargv[1] = host;
                         if (connected)  
                                 disconnect(0, NULL);  
                         xargv[0] = __progname;  
                         xargv[1] = host;  
                         xargv[2] = NULL;  
                         xargc = 2;  
                         if (!EMPTYSTRING(portnum)) {  
                                 xargv[2] = portnum;  
                                 xargv[3] = NULL;  
                                 xargc = 3;  
                         }  
                         oautologin = autologin;  
                         if (user != NULL)  
                                 autologin = 0;  
                         setpeer(xargc, xargv);  
                         autologin = oautologin;  
                         if ((connected == 0) ||  
                             ((connected == 1) && !ftp_login(host, user, pass))) {  
                                 warnx("Can't connect or login to host `%s'",  
                                     host);  
                                 rval = argpos + 1;  
                                 continue;  
                         }  
   
                         /* Always use binary transfers. */  
                         setbinary(0, NULL);  
                 }  
                 /* cd back to '/' */  
                 xargv[0] = "cd";  
                 xargv[1] = "/";  
                 xargv[2] = NULL;                  xargv[2] = NULL;
                 cd(2, xargv);                  xargc = 2;
                 if (!dirchange) {                  if (!EMPTYSTRING(portnum)) {
                           xargv[2] = portnum;
                           xargv[3] = NULL;
                           xargc = 3;
                   }
                   oautologin = autologin;
                   if (user != NULL)
                           autologin = 0;
                   setpeer(xargc, xargv);
                   autologin = oautologin;
                   if ((connected == 0) ||
                       ((connected == 1) && !ftp_login(host, user, pass))) {
                           warnx("Can't connect or login to host `%s'", host);
                         rval = argpos + 1;                          rval = argpos + 1;
                         continue;                          continue;
                 }                  }
   
                   /* Always use binary transfers. */
                   setbinary(0, NULL);
   
                 dirhasglob = filehasglob = 0;                  dirhasglob = filehasglob = 0;
                 if (doglob) {                  if (doglob) {

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49