]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
doh: Fix sharing user's resolve list with DOH handles
authorJay Satiro <raysatiro@yahoo.com>
Mon, 15 Feb 2021 05:25:59 +0000 (00:25 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 15 Feb 2021 21:14:34 +0000 (16:14 -0500)
- Share the shared object from the user's easy handle with the DOH
  handles.

Prior to this change if the user had set a shared object with shared
cached DNS (CURL_LOCK_DATA_DNS) for their easy handle then that wasn't
used by any associated DOH handles, since they used the multi's default
hostcache.

This change means all the handles now use the same hostcache, which is
either the shared hostcache from the user created shared object if it
exists or if not then the multi's default hostcache.

Reported-by: Manuj Bhatia
Fixes https://github.com/curl/curl/issues/6589
Closes https://github.com/curl/curl/pull/6607

lib/doh.c

index 2af3a5e4cc96a410f81a095b09f2f965ece44124..cebb4c4bde132a339d4ccfdf4e74bbe89c31f6d1 100644 (file)
--- a/lib/doh.c
+++ b/lib/doh.c
@@ -284,6 +284,7 @@ static CURLcode dohprobe(struct Curl_easy *data,
     ERROR_CHECK_SETOPT(CURLOPT_PROTOCOLS, CURLPROTO_HTTP|CURLPROTO_HTTPS);
 #endif
     ERROR_CHECK_SETOPT(CURLOPT_TIMEOUT_MS, (long)timeout_ms);
+    ERROR_CHECK_SETOPT(CURLOPT_SHARE, data->share);
     if(data->set.verbose)
       ERROR_CHECK_SETOPT(CURLOPT_VERBOSE, 1L);
     if(data->set.no_signal)