Merge pull request #5513 from leoetlino/dns-timeout

Analytics: Don't crash when a DNS resolve times out
This commit is contained in:
Tilka 2017-06-04 01:21:44 +01:00 committed by GitHub
commit 78c0e8c809
1 changed files with 3 additions and 0 deletions

View File

@ -192,6 +192,9 @@ HttpAnalyticsBackend::HttpAnalyticsBackend(const std::string& endpoint)
CURL* curl = curl_easy_init(); CURL* curl = curl_easy_init();
if (curl) if (curl)
{ {
// libcurl may not have been built with async DNS support, so we disable
// signal handlers to avoid a possible and likely crash if a resolve times out.
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, true);
curl_easy_setopt(curl, CURLOPT_URL, endpoint.c_str()); curl_easy_setopt(curl, CURLOPT_URL, endpoint.c_str());
curl_easy_setopt(curl, CURLOPT_POST, true); curl_easy_setopt(curl, CURLOPT_POST, true);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &DummyCurlWriteFunction); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &DummyCurlWriteFunction);