Files
third_party_curl/0004-ProvieClearDnsCacheAPI.patch
maosiping 8563a400b9 clean cache but not destroy
Signed-off-by: maosiping <maosiping@huawei.com>
2025-05-27 22:04:43 +08:00

56 lines
1.5 KiB
Diff

diff --git a/curl.map b/curl.map
index d20bfbbfc..31260c893 100644
--- a/curl.map
+++ b/curl.map
@@ -11,6 +11,7 @@
curl_multi_poll;
curl_multi_wakeup;
curl_multi_perform;
+ curl_multi_clear_dns_cache;
curl_multi_cleanup;
curl_multi_info_read;
curl_multi_strerror;
diff --git a/curl_without_http3.map b/curl_without_http3.map
index a10fb64f8..e7dc327dc 100644
--- a/curl_without_http3.map
+++ b/curl_without_http3.map
@@ -11,6 +11,7 @@ global:
curl_multi_poll;
curl_multi_wakeup;
curl_multi_perform;
+ curl_multi_clear_dns_cache;
curl_multi_cleanup;
curl_multi_info_read;
curl_multi_strerror;
diff --git a/include/curl/multi.h b/include/curl/multi.h
index df5d8c549..73b6c7c27 100644
--- a/include/curl/multi.h
+++ b/include/curl/multi.h
@@ -221,6 +221,8 @@ CURL_EXTERN CURLMcode curl_multi_wakeup(CURLM *multi_handle);
CURL_EXTERN CURLMcode curl_multi_perform(CURLM *multi_handle,
int *running_handles);
+CURL_EXTERN void curl_multi_clear_dns_cache(CURLM *multi_handle);
+
/*
* Name: curl_multi_cleanup()
*
diff --git a/lib/multi.c b/lib/multi.c
index 642882768..ae3e72d66 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -2798,6 +2798,13 @@ static void unlink_all_msgsent_handles(struct Curl_multi *multi)
}
}
+void curl_multi_clear_dns_cache(CURLM *multi)
+{
+ if (GOOD_MULTI_HANDLE(multi)) {
+ Curl_hash_clean(&multi->hostcache);
+ }
+}
+
CURLMcode curl_multi_cleanup(struct Curl_multi *multi)
{
struct Curl_easy *data;