aboutsummaryrefslogtreecommitdiff
path: root/src/tool_setopt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tool_setopt.c')
-rw-r--r--src/tool_setopt.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/tool_setopt.c b/src/tool_setopt.c
index 9aefc21d5..4014177f2 100644
--- a/src/tool_setopt.c
+++ b/src/tool_setopt.c
@@ -39,6 +39,7 @@
/* and finally any "NONE" value. */
#define NV(e) {#e, e}
+#define NV1(e, v) {#e, (v)}
#define NVEND {NULL, 0} /* sentinel to mark end of list */
const NameValue setopt_nv_CURLPROXY[] = {
@@ -122,6 +123,13 @@ const NameValue setopt_nv_CURLPROTO[] = {
NVEND,
};
+/* These options have non-zero default values. */
+static const NameValue setopt_nv_CURLNONZERODEFAULTS[] = {
+ NV1(CURLOPT_SSL_VERIFYPEER, 1),
+ NV1(CURLOPT_SSL_VERIFYHOST, 1),
+ NVEND
+};
+
/* Format and add code; jump to nomem on malloc error */
#define ADD(args) do { \
ret = easysrc_add args; \
@@ -453,10 +461,19 @@ CURLcode tool_setopt(CURL *curl, bool str, struct Configurable *config,
if(tag < CURLOPTTYPE_OBJECTPOINT) {
/* Value is expected to be a long */
long lval = va_arg(arg, long);
+ long defval = 0L;
+ const NameValue *nv = NULL;
+ for(nv=setopt_nv_CURLNONZERODEFAULTS; nv->name; nv++) {
+ if(!strcmp(name, nv->name)) {
+ defval = nv->value;
+ break; /* found it */
+ }
+ }
+
snprintf(buf, sizeof(buf), "%ldL", lval);
value = buf;
ret = curl_easy_setopt(curl, tag, lval);
- if(!lval)
+ if(lval == defval)
skip = TRUE;
}
else if(tag < CURLOPTTYPE_OFF_T) {