diff options
author | ume <ume@FreeBSD.org> | 2000-05-22 13:01:13 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2000-05-22 13:01:13 +0000 |
commit | 79e112b26f54888921168ebd1526a2dee791c500 (patch) | |
tree | d55a73d587ee8cf180c22685b958f2949fe5d83b /lib/libfetch | |
parent | dc6965be7e7e21bfeb998653d48064729fcbb19c (diff) | |
download | FreeBSD-src-79e112b26f54888921168ebd1526a2dee791c500.zip FreeBSD-src-79e112b26f54888921168ebd1526a2dee791c500.tar.gz |
Use $FTP_PASSWORD for FTP password. If $FTP_PASSWORD is not
found, `yourname@yourhost' is used.
Diffstat (limited to 'lib/libfetch')
-rw-r--r-- | lib/libfetch/ftp.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c index e1cee8b..64feb37 100644 --- a/lib/libfetch/ftp.c +++ b/lib/libfetch/ftp.c @@ -487,6 +487,9 @@ _ftp_connect(char *host, int port, char *user, char *pwd, char *flags) int af = AF_INET; #endif char *p, *q; + const char *logname; + char localhost[MAXHOSTNAMELEN]; + char pbuf[MAXHOSTNAMELEN + MAXLOGNAME + 1]; direct = (flags && strchr(flags, 'd')); verbose = (flags && strchr(flags, 'v')); @@ -559,7 +562,14 @@ _ftp_connect(char *host, int port, char *user, char *pwd, char *flags) /* did the server request a password? */ if (e == FTP_NEED_PASSWORD) { if (!pwd || !*pwd) - pwd = FTP_ANONYMOUS_PASSWORD; + pwd = getenv("FTP_PASSWORD"); + if (!pwd || !*pwd) { + if ((logname = getlogin()) == 0) + logname = FTP_ANONYMOUS_PASSWORD; + gethostname(localhost, sizeof localhost); + snprintf(pbuf, sizeof pbuf, "%s@%s", logname, localhost); + pwd = pbuf; + } e = _ftp_cmd(cd, "PASS %s", pwd); } |