From ad691b191afd91bb747b6bbaa04c54303c6d581a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 26 Aug 2020 08:30:38 +0200 Subject: [PATCH] configure: added --disable-get-easy-options To allow disabling of the curl_easy_option APIs in a build. Closes #5365 --- configure.ac | 18 ++++++++++++++++++ docs/CURL-DISABLE.md | 5 +++++ lib/easygetopt.c | 22 ++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/configure.ac b/configure.ac index 0d3e4e103..78e0c4f4f 100755 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/docs/CURL-DISABLE.md b/docs/CURL-DISABLE.md index 2dd250c7f..f90acda2c 100644 --- a/docs/CURL-DISABLE.md +++ b/docs/CURL-DISABLE.md @@ -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. diff --git a/lib/easygetopt.c b/lib/easygetopt.c index 8cfd49977..c4c6f631c 100644 --- a/lib/easygetopt.c +++ b/lib/easygetopt.c @@ -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