diff options
Diffstat (limited to 'src/tool_setopt.h')
-rw-r--r-- | src/tool_setopt.h | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/src/tool_setopt.h b/src/tool_setopt.h index fcd60f856..4189addae 100644 --- a/src/tool_setopt.h +++ b/src/tool_setopt.h @@ -35,8 +35,45 @@ #ifndef CURL_DISABLE_LIBCURL_OPTION +/* Associate symbolic names with option values */ +typedef struct { + const char *name; + long value; +} NameValue; + +extern const NameValue setopt_nv_CURLPROXY[]; +extern const NameValue setopt_nv_CURLAUTH[]; +extern const NameValue setopt_nv_CURL_HTTP_VERSION[]; +extern const NameValue setopt_nv_CURL_SSLVERSION[]; +extern const NameValue setopt_nv_CURL_TIMECOND[]; +extern const NameValue setopt_nv_CURLFTPSSL_CCC[]; +extern const NameValue setopt_nv_CURLPROTO[]; + +/* Map options to NameValue sets */ +#define setopt_nv_CURLOPT_HTTP_VERSION setopt_nv_CURL_HTTP_VERSION +#define setopt_nv_CURLOPT_HTTPAUTH setopt_nv_CURLAUTH +#define setopt_nv_CURLOPT_SSLVERSION setopt_nv_CURL_SSLVERSION +#define setopt_nv_CURLOPT_TIMECONDITION setopt_nv_CURL_TIMECOND +#define setopt_nv_CURLOPT_FTP_SSL_CCC setopt_nv_CURLFTPSSL_CCC +#define setopt_nv_CURLOPT_PROTOCOLS setopt_nv_CURLPROTO +#define setopt_nv_CURLOPT_REDIR_PROTOCOLS setopt_nv_CURLPROTO +#define setopt_nv_CURLOPT_PROXYTYPE setopt_nv_CURLPROXY +#define setopt_nv_CURLOPT_PROXYAUTH setopt_nv_CURLAUTH + /* Intercept setopt calls for --libcurl */ +CURLcode tool_setopt_enum(CURL *curl, struct Configurable *config, + const char *name, CURLoption tag, + const NameValue *nv, long lval); +CURLcode tool_setopt_flags(CURL *curl, struct Configurable *config, + const char *name, CURLoption tag, + const NameValue *nv, long lval); +CURLcode tool_setopt_httppost(CURL *curl, struct Configurable *config, + const char *name, CURLoption tag, + struct curl_httppost *httppost); +CURLcode tool_setopt_slist(CURL *curl, struct Configurable *config, + const char *name, CURLoption tag, + struct curl_slist *list); CURLcode tool_setopt(CURL *curl, bool str, struct Configurable *config, const char *name, CURLoption tag, ...); @@ -46,11 +83,23 @@ CURLcode tool_setopt(CURL *curl, bool str, struct Configurable *config, #define my_setopt_str(x,y,z) \ SETOPT_CHECK(tool_setopt(x, TRUE, config, #y, y, z)) +#define my_setopt_enum(x,y,z) \ + SETOPT_CHECK(tool_setopt_enum(x, config, #y, y, setopt_nv_ ## y, z)) + +#define my_setopt_flags(x,y,z) \ + SETOPT_CHECK(tool_setopt_flags(x, config, #y, y, setopt_nv_ ## y, z)) + +#define my_setopt_httppost(x,y,z) \ + SETOPT_CHECK(tool_setopt_httppost(x, config, #y, y, z)) + +#define my_setopt_slist(x,y,z) \ + SETOPT_CHECK(tool_setopt_slist(x, config, #y, y, z)) + #define res_setopt(x,y,z) tool_setopt(x, FALSE, config, #y, y, z) #define res_setopt_str(x,y,z) tool_setopt(x, TRUE, config, #y, y, z) -#else +#else /* CURL_DISABLE_LIBCURL_OPTION */ /* No --libcurl, so pass options directly to library */ @@ -60,6 +109,18 @@ CURLcode tool_setopt(CURL *curl, bool str, struct Configurable *config, #define my_setopt_str(x,y,z) \ SETOPT_CHECK(curl_easy_setopt(x, y, z)) +#define my_setopt_enum(x,y,z) \ + SETOPT_CHECK(curl_easy_setopt(x, y, z)) + +#define my_setopt_flags(x,y,z) \ + SETOPT_CHECK(curl_easy_setopt(x, y, z)) + +#define my_setopt_httppost(x,y,z) \ + SETOPT_CHECK(curl_easy_setopt(x, y, z)) + +#define my_setopt_slist(x,y,z) \ + SETOPT_CHECK(curl_easy_setopt(x, y, z)) + #define res_setopt(x,y,z) curl_easy_setopt(x,y,z) #define res_setopt_str(x,y,z) curl_easy_setopt(x,y,z) |