* ftp.c (recvrequest): Add new argument indicating whether "-" and "|..."
authorKen Raeburn <raeburn@mit.edu>
Mon, 16 Jun 2003 19:02:01 +0000 (19:02 +0000)
committerKen Raeburn <raeburn@mit.edu>
Mon, 16 Jun 2003 19:02:01 +0000 (19:02 +0000)
special treatment should be disabled.
* ftp_var.h (recvrequest): Update declaration.
* cmds.c (remglob, ls, mls): Pass 0 as the extra argument.
(mget): Pass 1.
(getit): Pass 1 iff only one filename was supplied.

ticket: 1351
status: open

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@15626 dc483132-0cff-0310-8789-dd5450dbe970

src/appl/gssftp/ftp/ChangeLog
src/appl/gssftp/ftp/cmds.c
src/appl/gssftp/ftp/ftp.c
src/appl/gssftp/ftp/ftp_var.h

index 614948dbb3a0960114897b965168fd5bc345521a..445734fb2640afd00cc1830b1d747de69a640410 100644 (file)
@@ -1,3 +1,12 @@
+2003-06-16  Ken Raeburn  <raeburn@mit.edu>
+
+       * ftp.c (recvrequest): Add new argument indicating whether "-" and
+       "|..." special treatment should be disabled.
+       * ftp_var.h (recvrequest): Update declaration.
+       * cmds.c (remglob, ls, mls): Pass 0 as the extra argument.
+       (mget): Pass 1.
+       (getit): Pass 1 iff only one filename was supplied.
+
 2003-06-05  Sam Hartman  <hartmans@mit.edu>
 
        * pclose.c (mypopen): use fork not vfork
index 38d72147352a1dc4b01c08748b7cf351a8bf5cdd..b9cb2a2a2cb8016daefe9476f558182b95c31ce7 100644 (file)
@@ -940,7 +940,7 @@ usage:
        }
 
        recvrequest("RETR", argv[2], argv[1], rmode,
-           argv[1] != oldargv1 || argv[2] != oldargv2);
+           argv[1] != oldargv1 || argv[2] != oldargv2, loc);
        restart_point = 0;
        return (0);
 }
@@ -1017,7 +1017,7 @@ void mget(argc, argv)
                                tp = domap(tp);
                        }
                        recvrequest("RETR", tp, cp, "w",
-                           tp != cp || !interactive);
+                           tp != cp || !interactive, 1);
                        if (!mflag && fromatty) {
                                ointer = interactive;
                                interactive = 1;
@@ -1085,7 +1085,7 @@ remglob(argv,doswitch)
                        pswitch(!proxy);
                }
                for (rmode = "w"; *++argv != NULL; rmode = "a")
-                       recvrequest ("NLST", temp, *argv, rmode, 0);
+                       recvrequest ("NLST", temp, *argv, rmode, 0, 0);
                if (doswitch) {
                        pswitch(!proxy);
                }
@@ -1455,7 +1455,7 @@ void ls(argc, argv)
                        code = -1;
                        return;
        }
-       recvrequest(cmd, argv[2], argv[1], "w", 0);
+       recvrequest(cmd, argv[2], argv[1], "w", 0, 0);
 }
 
 /*
@@ -1493,7 +1493,7 @@ usage:
        (void) setjmp(jabort);
        for (i = 1; mflag && i < argc-1; ++i) {
                *rmode = (i == 1) ? 'w' : 'a';
-               recvrequest(cmd, dest, argv[i], rmode, 0);
+               recvrequest(cmd, dest, argv[i], rmode, 0, 0);
                if (!mflag && fromatty) {
                        ointer = interactive;
                        interactive = 1;
index ffbb42cd586b3dc47ba6836264ae84107fc19c59..155f857925d0857c9c6adc7538029eb3a9fa4a58 100644 (file)
@@ -1103,7 +1103,7 @@ abortrecv(int sig)
 }
 
 void recvrequest(char *cmd, char *volatile local, char *remote, char *lmode,
-                int printnames)
+                int printnames, int fnameonly)
 {
        FILE *volatile fout, *volatile din = 0, *popen();
        int (*volatile closefunc)(), pclose(), fclose();
@@ -1149,7 +1149,7 @@ void recvrequest(char *cmd, char *volatile local, char *remote, char *lmode,
                return;
        }
        oldintr = signal(SIGINT, abortrecv);
-       if (strcmp(local, "-") && *local != '|') {
+       if (fnameonly || (strcmp(local, "-") && *local != '|')) {
                if (access(local, 2) < 0) {
                        char *dir = strrchr(local, '/');
 
@@ -1223,9 +1223,9 @@ void recvrequest(char *cmd, char *volatile local, char *remote, char *lmode,
        din = dataconn("r");
        if (din == NULL)
                goto die;
-       if (strcmp(local, "-") == 0)
+       if (strcmp(local, "-") == 0 && !fnameonly)
                fout = stdout;
-       else if (*local == '|') {
+       else if (*local == '|' && !fnameonly) {
 #ifdef SIGPIPE
                oldintp = signal(SIGPIPE, SIG_IGN);
 #endif
index 4448448aa3b26a891515148dfd9e1ea0bb4f65e9..9baa047300f5e9d84b8cdf628cad0e6f1ee5665c 100644 (file)
@@ -249,7 +249,7 @@ void setpassive (void);
 
 /* ftp.c */
 void sendrequest (char *, char *, char *, int);
-void recvrequest (char *, char *volatile, char *, char *, int);
+void recvrequest (char *, char *volatile, char *, char *, int, int);
 int login (char *);
 void setpbsz (unsigned int);
 void pswitch (int);