svn commit: r291453 - head/lib/libfetch

Dag-Erling Smørgrav des at FreeBSD.org
Sun Nov 29 14:27:01 UTC 2015


Author: des
Date: Sun Nov 29 14:26:59 2015
New Revision: 291453
URL: https://svnweb.freebsd.org/changeset/base/291453

Log:
  Use .netrc for HTTP sites and proxies, not just FTP.
  
  PR:		193740
  Submitted by:	TEUBEL György <tgyurci at gmail.com>
  MFC after:	1 week

Modified:
  head/lib/libfetch/fetch.3
  head/lib/libfetch/http.c

Modified: head/lib/libfetch/fetch.3
==============================================================================
--- head/lib/libfetch/fetch.3	Sun Nov 29 13:14:45 2015	(r291452)
+++ head/lib/libfetch/fetch.3	Sun Nov 29 14:26:59 2015	(r291453)
@@ -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 head
 .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

Modified: head/lib/libfetch/http.c
==============================================================================
--- head/lib/libfetch/http.c	Sun Nov 29 13:14:45 2015	(r291452)
+++ head/lib/libfetch/http.c	Sun Nov 29 14:26:59 2015	(r291453)
@@ -1658,6 +1658,9 @@ http_request_body(struct url *URL, const
 					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
 					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);


More information about the svn-src-all mailing list