From f58943be0bb3ef87ab57a0464b8d22bc0d6acbe7 Mon Sep 17 00:00:00 2001 From: Mike Karels Date: Thu, 20 Apr 1989 17:27:30 -0800 Subject: [PATCH] use binary for list, etc. if unix; avoid null usernames; bostic's pathname stuff SCCS-vsn: usr.bin/ftp/cmds.c 5.18 SCCS-vsn: usr.bin/ftp/ftp.c 5.28 --- usr/src/usr.bin/ftp/cmds.c | 11 +++++++---- usr/src/usr.bin/ftp/ftp.c | 12 ++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/usr/src/usr.bin/ftp/cmds.c b/usr/src/usr.bin/ftp/cmds.c index 6e87a994e0..d830852106 100644 --- a/usr/src/usr.bin/ftp/cmds.c +++ b/usr/src/usr.bin/ftp/cmds.c @@ -16,7 +16,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)cmds.c 5.17 (Berkeley) %G%"; +static char sccsid[] = "@(#)cmds.c 5.18 (Berkeley) %G%"; #endif /* not lint */ /* @@ -37,7 +37,7 @@ static char sccsid[] = "@(#)cmds.c 5.17 (Berkeley) %G%"; #include #include "ftp_var.h" - +#include "pathnames.h" extern char *globerr; extern char **glob(); @@ -46,6 +46,7 @@ extern char *remglob(); extern char *getenv(); extern char *index(); extern char *rindex(); +extern int allbinary; extern char reply_string[]; char *mname; @@ -109,6 +110,7 @@ setpeer(argc, argv) overbose = verbose; if (debug == 0) verbose = -1; + allbinary = 0; if (command("SYST") == COMPLETE && overbose) { register char *cp, c; cp = index(reply_string+4, ' '); @@ -128,6 +130,7 @@ setpeer(argc, argv) } if (!strncmp(reply_string, "215 UNIX Type: L8", 17)) { setbinary(); + allbinary = 1; if (overbose) printf("Using %s mode to transfer files.\n", typename); @@ -668,7 +671,7 @@ remglob(argv,doswitch) return (cp); } if (ftemp == NULL) { - (void) strcpy(temp, "/tmp/ftpXXXXXX"); + (void) strcpy(temp, _PATH_TMP); (void) mktemp(temp); oldverbose = verbose, verbose = 0; oldhash = hash, hash = 0; @@ -1150,7 +1153,7 @@ shell(argc, argv) (void) signal(SIGQUIT, SIG_DFL); shell = getenv("SHELL"); if (shell == NULL) - shell = "/bin/sh"; + shell = _PATH_BSHELL; namep = rindex(shell,'/'); if (namep == NULL) namep = shell; diff --git a/usr/src/usr.bin/ftp/ftp.c b/usr/src/usr.bin/ftp/ftp.c index 4b38c26e8a..2804ad5327 100644 --- a/usr/src/usr.bin/ftp/ftp.c +++ b/usr/src/usr.bin/ftp/ftp.c @@ -16,7 +16,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)ftp.c 5.27 (Berkeley) %G%"; +static char sccsid[] = "@(#)ftp.c 5.28 (Berkeley) %G%"; #endif /* not lint */ #include @@ -45,6 +45,7 @@ int data = -1; int abrtflag = 0; int ptflag = 0; int connected; +int allbinary; struct sockaddr_in myctladdr; uid_t getuid(); @@ -168,7 +169,7 @@ login(host) code = -1; return(0); } - if (user == NULL) { + while (user == NULL) { char *myname = getlogin(); if (myname == NULL) { @@ -177,7 +178,10 @@ login(host) if (pp != NULL) myname = pp->pw_name; } - printf("Name (%s:%s): ", host, myname); + if (myname) + printf("Name (%s:%s): ", host, myname); + else + printf("Name (%s): ", host); (void) fgets(tmp, sizeof(tmp) - 1, stdin); tmp[strlen(tmp) - 1] = '\0'; if (*tmp == '\0') @@ -709,7 +713,7 @@ recvrequest(cmd, local, remote, mode, printnames) if (setjmp(recvabort)) goto abort; if (!is_retr) { - if (type != TYPE_A) { + if (type != TYPE_A && (allbinary == 0 || type != TYPE_I)) { oldtype = type; oldverbose = verbose; if (!debug) -- 2.20.1