summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Michael Brummer <jan.brummer@tabos.org>2023-02-06 08:54:31 +0100
committerJan-Michael Brummer <jan.brummer@tabos.org>2023-03-27 16:31:58 +0200
commit09587d08d2f0013adcfe0026cc37c74e9e1b628b (patch)
tree02bd757b479b6ef09a6993a18713ad4b7da7d355
parent89fecc5a95ed64dc590e203f3dc3bef70313345d (diff)
downloadlibproxy-git-09587d08d2f0013adcfe0026cc37c74e9e1b628b.tar.gz
Set curl options to fix recursive calls (#45)
Set various curl options to ensure we are not calling back to libproxy and also improve timeout handling and identification.
-rw-r--r--src/backend/plugins/download-curl/download-curl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/backend/plugins/download-curl/download-curl.c b/src/backend/plugins/download-curl/download-curl.c
index 924153f..d848795 100644
--- a/src/backend/plugins/download-curl/download-curl.c
+++ b/src/backend/plugins/download-curl/download-curl.c
@@ -71,9 +71,18 @@ px_download_curl_download (PxDownload *download,
if (!self->curl)
self->curl = curl_easy_init ();
+ if (!self->curl)
+ return NULL;
+
if (g_str_has_prefix (url, "pac+"))
url += 4;
+ curl_easy_setopt (self->curl, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt (self->curl, CURLOPT_FOLLOWLOCATION, 1);
+ curl_easy_setopt (self->curl, CURLOPT_NOPROXY, "*");
+ curl_easy_setopt (self->curl, CURLOPT_CONNECTTIMEOUT, 30);
+ curl_easy_setopt (self->curl, CURLOPT_USERAGENT, "libproxy");
+
curl_easy_setopt (self->curl, CURLOPT_URL, url);
curl_easy_setopt (self->curl, CURLOPT_WRITEFUNCTION, store_data);
curl_easy_setopt (self->curl, CURLOPT_WRITEDATA, byte_array);