aboutsummaryrefslogtreecommitdiff
path: root/lib/url.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-04-25 21:39:48 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-04-25 21:39:48 +0000
commit01165e08e0d131b399fba2190f17af67e66f0888 (patch)
treeedabecf2359b409ed1e10f450ace39e859a31807 /lib/url.c
parent6e1633a6c5f88479998a1e0675818c9d97d9ed90 (diff)
Fred New reported a bug where we used Basic auth and user name and password in
.netrc, and when following a Location: the subsequent requests didn't properly use the auth as found in the netrc file. Added test case 257 to verify my fix.
Diffstat (limited to 'lib/url.c')
-rw-r--r--lib/url.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/url.c b/lib/url.c
index e75c29043..fb9c5905d 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -3147,15 +3147,23 @@ static CURLcode CreateConnection(struct SessionHandle *data,
user, passwd);
}
+ conn->bits.netrc = FALSE;
if (data->set.use_netrc != CURL_NETRC_IGNORED) {
if(Curl_parsenetrc(conn->host.name,
user, passwd,
data->set.netrc_file)) {
- infof(data, "Couldn't find host %s in the " DOT_CHAR "netrc file, using defaults\n",
+ infof(data, "Couldn't find host %s in the " DOT_CHAR
+ "netrc file, using defaults\n",
conn->host.name);
}
- else
+ else {
+ /* set bits.netrc TRUE to remember that we got the name from a .netrc
+ file, so that it is safe to use even if we followed a Location: to a
+ different host or similar. */
+ conn->bits.netrc = TRUE;
+
conn->bits.user_passwd = 1; /* enable user+password */
+ }
}
/* If our protocol needs a password and we have none, use the defaults */