]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
configure: added --disable-get-easy-options
authorDaniel Stenberg <daniel@haxx.se>
Wed, 26 Aug 2020 06:30:38 +0000 (08:30 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 27 Aug 2020 12:17:42 +0000 (14:17 +0200)
To allow disabling of the curl_easy_option APIs in a build.

Closes #5365

configure.ac
docs/CURL-DISABLE.md
lib/easygetopt.c

index 0d3e4e1038c4a2e5cfaa93c70c7ee5b7d47525f2..78e0c4f4fcb4e06f0a28f9c1207dd5878b4511c6 100755 (executable)
@@ -4830,6 +4830,24 @@ AC_HELP_STRING([--disable-dnsshuffle],[Disable DNS shuffling]),
        AC_MSG_RESULT(yes)
 )
 
+dnl ************************************************************
+dnl disable the curl_easy_options API
+dnl
+AC_MSG_CHECKING([whether to support curl_easy_option*])
+AC_ARG_ENABLE(get-easy-option,
+AC_HELP_STRING([--enable-get-easy-options],[Enable curl_easy_options])
+AC_HELP_STRING([--disable-get-easy-options],[Disable curl_easy_options]),
+[ case "$enableval" in
+  no)
+       AC_MSG_RESULT(no)
+       AC_DEFINE(CURL_DISABLE_GETOPTIONS, 1, [to disable curl_easy_options])
+       ;;
+  *)   AC_MSG_RESULT(yes)
+       ;;
+  esac ],
+       AC_MSG_RESULT(yes)
+)
+
 dnl ************************************************************
 dnl switch on/off alt-svc
 dnl
index 2dd250c7ff793115ad51bac545df4b421564f954..f90acda2c936d03ed1f893f6ee595b55407ea878 100644 (file)
@@ -24,6 +24,11 @@ Disable the FILE protocol
 
 Disable the FTP (and FTPS) protocol
 
+## CURL_DISABLE_GETOPTIONS
+
+Disable the `curl_easy_options` API calls that lets users get information
+about existing options to `curl_easy_setopt`.
+
 ## CURL_DISABLE_GOPHER
 
 Disable the GOPHER protocol.
index 8cfd49977fe2f9764fa7190b840573e5cb923b60..c4c6f631c39886c28efac8c3638ce5e3d14fc89b 100644 (file)
@@ -24,6 +24,8 @@
 #include "strcase.h"
 #include "easyoptions.h"
 
+#ifndef CURL_DISABLE_GETOPTIONS
+
 /* Lookups easy options at runtime */
 static struct curl_easyoption *lookup(const char *name, CURLoption id)
 {
@@ -71,3 +73,23 @@ curl_easy_option_next(const struct curl_easyoption *prev)
   return NULL;
 }
 
+#else
+const struct curl_easyoption *curl_easy_option_by_name(const char *name)
+{
+  (void)name;
+  return NULL;
+}
+
+const struct curl_easyoption *curl_easy_option_by_id (CURLoption id)
+{
+  (void)id;
+  return NULL;
+}
+
+const struct curl_easyoption *
+curl_easy_option_next(const struct curl_easyoption *prev)
+{
+  (void)prev;
+  return NULL;
+}
+#endif