aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/easy.c2
-rw-r--r--lib/hostip.h4
-rw-r--r--lib/http.c9
-rw-r--r--lib/multi.c2
-rw-r--r--lib/share.c2
5 files changed, 8 insertions, 11 deletions
diff --git a/lib/easy.c b/lib/easy.c
index d1e7ef442..bc91f4874 100644
--- a/lib/easy.c
+++ b/lib/easy.c
@@ -271,7 +271,7 @@ CURLcode curl_easy_perform(CURL *curl)
}
if (!data->hostcache) {
- data->hostcache = Curl_hash_alloc(7, Curl_freednsinfo);
+ data->hostcache = Curl_mk_dnscache();
if(!data->hostcache)
/* While we possibly could survive and do good without a host cache,
diff --git a/lib/hostip.h b/lib/hostip.h
index 64d402240..b7d212d81 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -74,8 +74,8 @@ void Curl_scan_cache_used(void *user, void *ptr);
/* free name info */
void Curl_freeaddrinfo(Curl_addrinfo *freeaddr);
-/* free cached name info */
-void Curl_freednsinfo(void *freethis);
+/* make a new dns cache and return the handle */
+curl_hash *Curl_mk_dnscache(void);
/* prune old entries from the DNS cache */
void Curl_hostcache_prune(struct SessionHandle *data);
diff --git a/lib/http.c b/lib/http.c
index a7961cba5..41b1ef7c4 100644
--- a/lib/http.c
+++ b/lib/http.c
@@ -398,17 +398,14 @@ CURLcode Curl_http_auth(struct connectdata *conn,
*availp |= CURLAUTH_DIGEST;
if(data->state.authwant == CURLAUTH_DIGEST) {
/* Digest authentication is activated */
- CURLdigest dig = CURLDIGEST_BAD;
-
- if(data->state.digest.nonce)
- infof(data, "Authentication problem. Ignoring this.\n");
- else
- dig = Curl_input_digest(conn, start);
+ CURLdigest dig = Curl_input_digest(conn, start);
if(CURLDIGEST_FINE == dig)
/* We act on it. Store our new url, which happens to be
the same one we already use! */
conn->newurl = strdup(data->change.url); /* clone string */
+ else
+ infof(data, "Authentication problem. Ignoring this.\n");
}
else
if(data->state.authwant & CURLAUTH_DIGEST) {
diff --git a/lib/multi.c b/lib/multi.c
index 18bfba2bd..ddc4b16cb 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -122,7 +122,7 @@ CURLM *curl_multi_init(void)
multi->type = CURL_MULTI_HANDLE;
}
- multi->hostcache = Curl_hash_alloc(7, Curl_freednsinfo);
+ multi->hostcache = Curl_mk_dnscache();
if(!multi->hostcache) {
/* failure, free mem and bail out */
free(multi);
diff --git a/lib/share.c b/lib/share.c
index ff1aef2e5..e554339de 100644
--- a/lib/share.c
+++ b/lib/share.c
@@ -73,7 +73,7 @@ curl_share_setopt(CURLSH *sh, CURLSHoption option, ...)
{
case CURL_LOCK_DATA_DNS:
if (!share->hostcache) {
- share->hostcache = Curl_hash_alloc(7, Curl_freednsinfo);
+ share->hostcache = Curl_mk_dnscache();
}
break;