summaryrefslogtreecommitdiffstats
path: root/lib/libfetch/ftp.c
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2000-05-22 13:01:13 +0000
committerume <ume@FreeBSD.org>2000-05-22 13:01:13 +0000
commit79e112b26f54888921168ebd1526a2dee791c500 (patch)
treed55a73d587ee8cf180c22685b958f2949fe5d83b /lib/libfetch/ftp.c
parentdc6965be7e7e21bfeb998653d48064729fcbb19c (diff)
downloadFreeBSD-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/ftp.c')
-rw-r--r--lib/libfetch/ftp.c12
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);
}
OpenPOWER on IntegriCloud