print local, remote filenames only if remapped or non-prompting,
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 22 Mar 1989 09:47:14 +0000 (01:47 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Wed, 22 Mar 1989 09:47:14 +0000 (01:47 -0800)
verbose multi-file transfer (and print before rather than after transfer)

SCCS-vsn: usr.bin/ftp/cmds.c 5.16
SCCS-vsn: usr.bin/ftp/ftp.c 5.26

usr/src/usr.bin/ftp/cmds.c
usr/src/usr.bin/ftp/ftp.c

index 8844839..ae7bce4 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)cmds.c     5.15 (Berkeley) %G%";
+static char sccsid[] = "@(#)cmds.c     5.16 (Berkeley) %G%";
 #endif /* not lint */
 
 /*
 #endif /* not lint */
 
 /*
@@ -286,7 +286,7 @@ put(argc, argv)
 {
        char *cmd;
        int loc = 0;
 {
        char *cmd;
        int loc = 0;
-       char *oldargv1;
+       char *oldargv1, *oldargv2;
 
        if (argc == 2) {
                argc++;
 
        if (argc == 2) {
                argc++;
@@ -318,6 +318,7 @@ usage:
        if (argc < 3) 
                goto usage;
        oldargv1 = argv[1];
        if (argc < 3) 
                goto usage;
        oldargv1 = argv[1];
+       oldargv2 = argv[2];
        if (!globulize(&argv[1])) {
                code = -1;
                return;
        if (!globulize(&argv[1])) {
                code = -1;
                return;
@@ -336,7 +337,8 @@ usage:
        if (loc && mapflag) {
                argv[2] = domap(argv[2]);
        }
        if (loc && mapflag) {
                argv[2] = domap(argv[2]);
        }
-       sendrequest(cmd, argv[1], argv[2]);
+       sendrequest(cmd, argv[1], argv[2],
+           argv[1] != oldargv1 || argv[2] != oldargv2);
 }
 
 /*
 }
 
 /*
@@ -400,7 +402,8 @@ mput(argc, argv)
                                if (mapflag) {
                                        tp = domap(tp);
                                }
                                if (mapflag) {
                                        tp = domap(tp);
                                }
-                               sendrequest((sunique) ? "STOU" : "STOR", cp,tp);
+                               sendrequest((sunique) ? "STOU" : "STOR",
+                                   cp, tp, cp != tp || !interactive);
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
@@ -423,7 +426,7 @@ mput(argc, argv)
                                tp = (ntflag) ? dotrans(argv[i]) : argv[i];
                                tp = (mapflag) ? domap(tp) : tp;
                                sendrequest((sunique) ? "STOU" : "STOR",
                                tp = (ntflag) ? dotrans(argv[i]) : argv[i];
                                tp = (mapflag) ? domap(tp) : tp;
                                sendrequest((sunique) ? "STOU" : "STOR",
-                                           argv[i], tp);
+                                   argv[i], tp, tp != argv[i] || !interactive);
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
@@ -449,7 +452,7 @@ mput(argc, argv)
                                tp = (ntflag) ? dotrans(*cpp) : *cpp;
                                tp = (mapflag) ? domap(tp) : tp;
                                sendrequest((sunique) ? "STOU" : "STOR",
                                tp = (ntflag) ? dotrans(*cpp) : *cpp;
                                tp = (mapflag) ? domap(tp) : tp;
                                sendrequest((sunique) ? "STOU" : "STOR",
-                                          *cpp, tp);
+                                   *cpp, tp, *cpp != tp || !interactive);
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
                                if (!mflag && fromatty) {
                                        ointer = interactive;
                                        interactive = 1;
@@ -477,6 +480,7 @@ get(argc, argv)
        char *argv[];
 {
        int loc = 0;
        char *argv[];
 {
        int loc = 0;
+       char *oldargv1, *oldargv2;
 
        if (argc == 2) {
                argc++;
 
        if (argc == 2) {
                argc++;
@@ -507,6 +511,8 @@ usage:
        }
        if (argc < 3) 
                goto usage;
        }
        if (argc < 3) 
                goto usage;
+       oldargv1 = argv[1];
+       oldargv2 = argv[2];
        if (!globulize(&argv[2])) {
                code = -1;
                return;
        if (!globulize(&argv[2])) {
                code = -1;
                return;
@@ -614,7 +620,8 @@ mget(argc, argv)
                        if (mapflag) {
                                tp = domap(tp);
                        }
                        if (mapflag) {
                                tp = domap(tp);
                        }
-                       recvrequest("RETR", tp, cp, "w");
+                       recvrequest("RETR", tp, cp, "w",
+                           tp != cp || !interactive);
                        if (!mflag && fromatty) {
                                ointer = interactive;
                                interactive = 1;
                        if (!mflag && fromatty) {
                                ointer = interactive;
                                interactive = 1;
@@ -669,7 +676,7 @@ remglob(argv,doswitch)
                        pswitch(!proxy);
                }
                for (mode = "w"; *++argv != NULL; mode = "a")
                        pswitch(!proxy);
                }
                for (mode = "w"; *++argv != NULL; mode = "a")
-                       recvrequest ("NLST", temp, *argv, mode);
+                       recvrequest ("NLST", temp, *argv, mode, 0);
                if (doswitch) {
                        pswitch(!proxy);
                }
                if (doswitch) {
                        pswitch(!proxy);
                }
@@ -1060,7 +1067,7 @@ ls(argc, argv)
                        code = -1;
                        return;
        }
                        code = -1;
                        return;
        }
-       recvrequest(cmd, argv[2], argv[1], "w");
+       recvrequest(cmd, argv[2], argv[1], "w", 0);
 }
 
 /*
 }
 
 /*
@@ -1109,7 +1116,7 @@ mls(argc, argv)
        (void) setjmp(jabort);
        for (i = 1; mflag && i < argc-1; ++i) {
                *mode = (i == 1) ? 'w' : 'a';
        (void) setjmp(jabort);
        for (i = 1; mflag && i < argc-1; ++i) {
                *mode = (i == 1) ? 'w' : 'a';
-               recvrequest(cmd, dest, argv[i], mode);
+               recvrequest(cmd, dest, argv[i], mode, 0);
                if (!mflag && fromatty) {
                        ointer = interactive;
                        interactive = 1;
                if (!mflag && fromatty) {
                        ointer = interactive;
                        interactive = 1;
index 95c7630..ab7bc6f 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)ftp.c      5.24.1.3 (Berkeley) %G%";
+static char sccsid[] = "@(#)ftp.c      5.26 (Berkeley) %G%";
 #endif /* not lint */
 
 #include <sys/param.h>
 #endif /* not lint */
 
 #include <sys/param.h>
@@ -385,8 +385,9 @@ abortsend()
 
 #define HASHBYTES 1024
 
 
 #define HASHBYTES 1024
 
-sendrequest(cmd, local, remote)
+sendrequest(cmd, local, remote, printnames)
        char *cmd, *local, *remote;
        char *cmd, *local, *remote;
+       int printnames;
 {
        FILE *fin, *dout = 0, *popen();
        int (*closefunc)(), pclose(), fclose(), (*oldintr)(), (*oldintp)();
 {
        FILE *fin, *dout = 0, *popen();
        int (*closefunc)(), pclose(), fclose(), (*oldintr)(), (*oldintp)();
@@ -398,6 +399,12 @@ sendrequest(cmd, local, remote)
        struct timeval start, stop;
        char *mode;
 
        struct timeval start, stop;
        char *mode;
 
+       if (verbose && printnames) {
+               if (local && *local != '-')
+                       printf("local: %s ", local);
+               if (remote)
+                       printf("remote: %s\n", remote);
+       }
        if (proxy) {
                proxtrans(cmd, local, remote);
                return;
        if (proxy) {
                proxtrans(cmd, local, remote);
                return;
@@ -570,7 +577,7 @@ sendrequest(cmd, local, remote)
        if (oldintp)
                (void) signal(SIGPIPE, oldintp);
        if (bytes > 0)
        if (oldintp)
                (void) signal(SIGPIPE, oldintp);
        if (bytes > 0)
-               ptransfer("sent", bytes, &start, &stop, local, remote);
+               ptransfer("sent", bytes, &start, &stop);
        return;
 abort:
        (void) gettimeofday(&stop, (struct timezone *)0);
        return;
 abort:
        (void) gettimeofday(&stop, (struct timezone *)0);
@@ -592,7 +599,7 @@ abort:
        if (closefunc != NULL && fin != NULL)
                (*closefunc)(fin);
        if (bytes > 0)
        if (closefunc != NULL && fin != NULL)
                (*closefunc)(fin);
        if (bytes > 0)
-               ptransfer("sent", bytes, &start, &stop, local, remote);
+               ptransfer("sent", bytes, &start, &stop);
 }
 
 jmp_buf        recvabort;
 }
 
 jmp_buf        recvabort;
@@ -607,7 +614,7 @@ abortrecv()
        longjmp(recvabort, 1);
 }
 
        longjmp(recvabort, 1);
 }
 
-recvrequest(cmd, local, remote, mode)
+recvrequest(cmd, local, remote, mode, printnames)
        char *cmd, *local, *remote, *mode;
 {
        FILE *fout, *din = 0, *popen();
        char *cmd, *local, *remote, *mode;
 {
        FILE *fout, *din = 0, *popen();
@@ -624,6 +631,12 @@ recvrequest(cmd, local, remote, mode)
        extern char *malloc();
 
        is_retr = strcmp(cmd, "RETR") == 0;
        extern char *malloc();
 
        is_retr = strcmp(cmd, "RETR") == 0;
+       if (is_retr && verbose && printnames) {
+               if (local && *local != '-')
+                       printf("local: %s ", local);
+               if (remote)
+                       printf("remote: %s\n", remote);
+       }
        if (proxy && is_retr) {
                proxtrans(cmd, local, remote);
                return;
        if (proxy && is_retr) {
                proxtrans(cmd, local, remote);
                return;
@@ -872,7 +885,7 @@ break2:
        (void) fclose(din);
        (void) getreply(0);
        if (bytes > 0 && is_retr)
        (void) fclose(din);
        (void) getreply(0);
        if (bytes > 0 && is_retr)
-               ptransfer("received", bytes, &start, &stop, local, remote);
+               ptransfer("received", bytes, &start, &stop);
        if (oldtype) {
                if (!debug)
                        verbose = 0;
        if (oldtype) {
                if (!debug)
                        verbose = 0;
@@ -964,7 +977,7 @@ abort:
        if (din)
                (void) fclose(din);
        if (bytes > 0)
        if (din)
                (void) fclose(din);
        if (bytes > 0)
-               ptransfer("received", bytes, &start, &stop, local, remote);
+               ptransfer("received", bytes, &start, &stop);
        (void) signal(SIGINT,oldintr);
 }
 
        (void) signal(SIGINT,oldintr);
 }
 
@@ -1056,8 +1069,8 @@ dataconn(mode)
        return (fdopen(data, mode));
 }
 
        return (fdopen(data, mode));
 }
 
-ptransfer(direction, bytes, t0, t1, local, remote)
-       char *direction, *local, *remote;
+ptransfer(direction, bytes, t0, t1)
+       char *direction;
        long bytes;
        struct timeval *t0, *t1;
 {
        long bytes;
        struct timeval *t0, *t1;
 {
@@ -1071,11 +1084,6 @@ ptransfer(direction, bytes, t0, t1, local, remote)
                bs = bytes / nz(s);
                printf("%ld bytes %s in %.2g seconds (%.2g Kbytes/s)\n",
                    bytes, direction, s, bs / 1024.);
                bs = bytes / nz(s);
                printf("%ld bytes %s in %.2g seconds (%.2g Kbytes/s)\n",
                    bytes, direction, s, bs / 1024.);
-       } else {
-               if (local && *local != '-')
-                       printf("local: %s ", local);
-               if (remote)
-                       printf("remote: %s\n", remote);
        }
 }
 
        }
 }