Use .netrc for HTTP sites and proxies, not just FTP.

PR:		193740
Submitted by:	TEUBEL György <tgyurci@gmail.com>
MFC after:	1 week
This commit is contained in:
des 2015-11-29 14:26:59 +00:00
parent 53410aaf8e
commit d93cecbf5b
2 changed files with 11 additions and 3 deletions

View File

@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd March 25, 2015
.Dd November 29, 2015
.Dt FETCH 3
.Os
.Sh NAME
@ -631,11 +631,11 @@ If defined but empty, no User-Agent header is sent.
.It Ev NETRC
Specifies a file to use instead of
.Pa ~/.netrc
to look up login names and passwords for FTP sites.
to look up login names and passwords for FTP and HTTP sites as well as
HTTP proxies.
See
.Xr ftp 1
for a description of the file format.
This feature is experimental.
.It Ev NO_PROXY
Either a single asterisk, which disables the use of proxies
altogether, or a comma- or whitespace-separated list of hosts for

View File

@ -1658,6 +1658,9 @@ http_request_body(struct url *URL, const char *op, struct url_stat *us,
http_seterr(HTTP_NEED_PROXY_AUTH);
goto ouch;
}
} else if (fetch_netrc_auth(purl) == 0) {
aparams.user = strdup(purl->user);
aparams.password = strdup(purl->pwd);
}
http_authorize(conn, "Proxy-Authorization",
&proxy_challenges, &aparams, url);
@ -1685,6 +1688,11 @@ http_request_body(struct url *URL, const char *op, struct url_stat *us,
http_seterr(HTTP_NEED_AUTH);
goto ouch;
}
} else if (fetch_netrc_auth(url) == 0) {
aparams.user = url->user ?
strdup(url->user) : strdup("");
aparams.password = url->pwd ?
strdup(url->pwd) : strdup("");
} else if (fetchAuthMethod &&
fetchAuthMethod(url) == 0) {
aparams.user = strdup(url->user);