summaryrefslogtreecommitdiff
path: root/src/tool_setopt.h
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-05-22 23:25:43 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-05-23 23:31:43 +0200
commit4e86f2fc4e6c504c39baf5763f34225c41c1605b (patch)
tree88d23ab90f3df8dd3aff196ed65b48b69bb66e8a /src/tool_setopt.h
parent2a32f5f4579a42a7ebdf571772bc4517fa19fab3 (diff)
downloadgnurl-4e86f2fc4e6c504c39baf5763f34225c41c1605b.tar.gz
gnurl-4e86f2fc4e6c504c39baf5763f34225c41c1605b.tar.bz2
gnurl-4e86f2fc4e6c504c39baf5763f34225c41c1605b.zip
tool_setopt: for builds with disabled-proxy, skip all proxy setopts()
Reported-by: Marcel Raad Fixes #3926 Closes #3929
Diffstat (limited to 'src/tool_setopt.h')
-rw-r--r--src/tool_setopt.h41
1 files changed, 22 insertions, 19 deletions
diff --git a/src/tool_setopt.h b/src/tool_setopt.h
index 663041f65..2266d1c9c 100644
--- a/src/tool_setopt.h
+++ b/src/tool_setopt.h
@@ -29,11 +29,14 @@
* Macros used in operate()
*/
-#define SETOPT_CHECK(v) do { \
- result = (v); \
- if(result) \
- goto show_error; \
-} WHILE_FALSE
+#define SETOPT_CHECK(v,opt) do { \
+ result = tool_real_error((v), opt); \
+ if(result) \
+ goto show_error; \
+ } WHILE_FALSE
+
+/* allow removed features to simulate success: */
+CURLcode tool_real_error(CURLcode result, CURLoption tag);
#ifndef CURL_DISABLE_LIBCURL_OPTION
@@ -97,25 +100,25 @@ CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config,
const char *name, CURLoption tag, ...);
#define my_setopt(x,y,z) \
- SETOPT_CHECK(tool_setopt(x, FALSE, global, #y, y, z))
+ SETOPT_CHECK(tool_setopt(x, FALSE, global, #y, y, z), y)
#define my_setopt_str(x,y,z) \
- SETOPT_CHECK(tool_setopt(x, TRUE, global, #y, y, z))
+ SETOPT_CHECK(tool_setopt(x, TRUE, global, #y, y, z), y)
#define my_setopt_enum(x,y,z) \
- SETOPT_CHECK(tool_setopt_enum(x, global, #y, y, setopt_nv_ ## y, z))
+ SETOPT_CHECK(tool_setopt_enum(x, global, #y, y, setopt_nv_ ## y, z), y)
#define my_setopt_flags(x,y,z) \
- SETOPT_CHECK(tool_setopt_flags(x, global, #y, y, setopt_nv_ ## y, z))
+ SETOPT_CHECK(tool_setopt_flags(x, global, #y, y, setopt_nv_ ## y, z), y)
#define my_setopt_bitmask(x,y,z) \
- SETOPT_CHECK(tool_setopt_bitmask(x, global, #y, y, setopt_nv_ ## y, z))
+ SETOPT_CHECK(tool_setopt_bitmask(x, global, #y, y, setopt_nv_ ## y, z), y)
#define my_setopt_mimepost(x,y,z) \
- SETOPT_CHECK(tool_setopt_mimepost(x, global, #y, y, z))
+ SETOPT_CHECK(tool_setopt_mimepost(x, global, #y, y, z), y)
#define my_setopt_slist(x,y,z) \
- SETOPT_CHECK(tool_setopt_slist(x, global, #y, y, z))
+ SETOPT_CHECK(tool_setopt_slist(x, global, #y, y, z), y)
#define res_setopt(x,y,z) tool_setopt(x, FALSE, global, #y, y, z)
@@ -126,25 +129,25 @@ CURLcode tool_setopt(CURL *curl, bool str, struct GlobalConfig *config,
/* No --libcurl, so pass options directly to library */
#define my_setopt(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_str(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_enum(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_flags(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_bitmask(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_mimepost(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define my_setopt_slist(x,y,z) \
- SETOPT_CHECK(curl_easy_setopt(x, y, z))
+ SETOPT_CHECK(curl_easy_setopt(x, y, z), y)
#define res_setopt(x,y,z) curl_easy_setopt(x,y,z)