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 <tgyu...@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);
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to