diff --git a/doc/lcurl.ldoc b/doc/lcurl.ldoc index cfb3026..86d6841 100644 --- a/doc/lcurl.ldoc +++ b/doc/lcurl.ldoc @@ -227,6 +227,16 @@ function close() end -- } function setopt() end +--- Reset option to default value. +-- +-- @tparam number opt one of `curl.OPT_XXX` constant or options table +-- @treturn easy self +-- +-- @usage +-- c:unsetopt(curl.OPT_URL) +-- c:unsetopt(curl.OPT_READFUNCTION) +function unsetopt() end + --- Get information. -- -- @tparam number info one of `curl.INFO_XXX` constant diff --git a/src/lceasy.c b/src/lceasy.c index bd1ddeb..aaf5640 100644 --- a/src/lceasy.c +++ b/src/lceasy.c @@ -172,6 +172,8 @@ static int lcurl_easy_reset(lua_State *L){ //{ OPTIONS +//{ set + static int lcurl_opt_set_long_(lua_State *L, int opt){ lcurl_easy_t *p = lcurl_geteasy(L); long val; CURLcode code; @@ -245,7 +247,7 @@ static int lcurl_opt_set_slist_(lua_State *L, int opt, int list_no){ return lcurl_opt_set_long_(L, CURLOPT_##N);\ } -#define OPT_ENTRY(L, N, T, S) LCURL_##T##_OPT(N, S) +#define OPT_ENTRY(L, N, T, S, D) LCURL_##T##_OPT(N, S) #include "lcopteasy.h" @@ -310,6 +312,182 @@ static int lcurl_easy_set_SHARE(lua_State *L){ lua_settop(L, 1); return 1; } +//} + +//{ unset + +static int lcurl_opt_unset_long_(lua_State *L, int opt, long val){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code; + + code = curl_easy_setopt(p->curl, opt, val); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + lua_settop(L, 1); + return 1; +} + +static int lcurl_opt_unset_string_(lua_State *L, int opt, const char *val){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code; + + code = curl_easy_setopt(p->curl, opt, val); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + + lcurl_storage_remove_i(L, p->storage, opt); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_opt_unset_slist_(lua_State *L, int opt, int list_no){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code; + int ref = p->lists[list_no]; + + code = curl_easy_setopt(p->curl, opt, NULL); + + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + + if(ref != LUA_NOREF){ + struct curl_slist *list = lcurl_storage_remove_slist(L, p->storage, ref); + curl_slist_free_all(list); + p->lists[list_no] = LUA_NOREF; + } + + lua_settop(L, 1); + return 1; +} + +#define LCURL_STR_OPT(N, S, D) static int lcurl_easy_unset_##N(lua_State *L){\ + return lcurl_opt_unset_string_(L, CURLOPT_##N, (D)); \ +} + +#define LCURL_LST_OPT(N, S, D) static int lcurl_easy_unset_##N(lua_State *L){\ + return lcurl_opt_unset_slist_(L, CURLOPT_##N, LCURL_##N##_LIST);\ +} + +#define LCURL_LNG_OPT(N, S, D) static int lcurl_easy_unset_##N(lua_State *L){\ + return lcurl_opt_unset_long_(L, CURLOPT_##N, (D));\ +} + +#define OPT_ENTRY(L, N, T, S, D) LCURL_##T##_OPT(N, S, D) + +#include "lcopteasy.h" + +#undef OPT_ENTRY + +#undef LCURL_STR_OPT +#undef LCURL_LST_OPT +#undef LCURL_LNG_OPT + +static int lcurl_easy_unset_HTTPPOST(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_HTTPPOST, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + + lcurl_storage_remove_i(L, p->storage, CURLOPT_HTTPPOST); + + //! @fixme unset readdata/readfunction for + // curl_easy_setopt(p->curl, CURLOPT_READFUNCTION, 0); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_SHARE(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_SHARE, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + + lcurl_storage_remove_i(L, p->storage, CURLOPT_SHARE); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_WRITEFUNCTION(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_WRITEFUNCTION, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + curl_easy_setopt(p->curl, CURLOPT_WRITEDATA, NULL); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_READFUNCTION(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_READFUNCTION, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + curl_easy_setopt(p->curl, CURLOPT_READDATA, NULL); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_HEADERFUNCTION(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_HEADERFUNCTION, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + curl_easy_setopt(p->curl, CURLOPT_HEADERDATA, NULL); + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_PROGRESSFUNCTION(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_PROGRESSFUNCTION, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + curl_easy_setopt(p->curl, CURLOPT_PROGRESSDATA, NULL); + +#if LCURL_CURL_VER_GE(7,32,0) + curl_easy_setopt(p->curl, CURLOPT_XFERINFOFUNCTION, NULL); + curl_easy_setopt(p->curl, CURLOPT_XFERINFODATA, NULL); +#endif + + lua_settop(L, 1); + return 1; +} + +static int lcurl_easy_unset_POSTFIELDS(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code = curl_easy_setopt(p->curl, CURLOPT_POSTFIELDS, NULL); + if(code != CURLE_OK){ + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); + } + + curl_easy_setopt(p->curl, CURLOPT_POSTFIELDSIZE, -1); + lcurl_storage_remove_i(L, p->storage, CURLOPT_POSTFIELDS); + + lua_settop(L, 1); + return 1; +} + +//} //} @@ -641,16 +819,39 @@ static int lcurl_easy_setopt(lua_State *L){ opt = luaL_checklong(L, 2); lua_remove(L, 2); -#define OPT_ENTRY(l, N, T, S) case CURLOPT_##N: return lcurl_easy_set_##N(L); +#define OPT_ENTRY(l, N, T, S, D) case CURLOPT_##N: return lcurl_easy_set_##N(L); switch(opt){ #include "lcopteasy.h" - OPT_ENTRY(postfields, POSTFIELDS, TTT, 0) - OPT_ENTRY(httppost, HTTPPOST, TTT, 0) - OPT_ENTRY(share, SHARE, TTT, 0) - OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0) - OPT_ENTRY(readfunction, READFUNCTION, TTT, 0) - OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0) - OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0) + OPT_ENTRY(postfields, POSTFIELDS, TTT, 0, 0) + OPT_ENTRY(httppost, HTTPPOST, TTT, 0, 0) + OPT_ENTRY(share, SHARE, TTT, 0, 0) + OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0, 0) + OPT_ENTRY(readfunction, READFUNCTION, TTT, 0, 0) + OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0, 0) + OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0, 0) + } +#undef OPT_ENTRY + + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, LCURL_E_UNKNOWN_OPTION); +} + +static int lcurl_easy_unsetsetopt(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + long opt; + + opt = luaL_checklong(L, 2); + lua_remove(L, 2); + +#define OPT_ENTRY(l, N, T, S, D) case CURLOPT_##N: return lcurl_easy_unset_##N(L); + switch(opt){ + #include "lcopteasy.h" + OPT_ENTRY(postfields, POSTFIELDS, TTT, 0, 0) + OPT_ENTRY(httppost, HTTPPOST, TTT, 0, 0) + OPT_ENTRY(share, SHARE, TTT, 0, 0) + OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0, 0) + OPT_ENTRY(readfunction, READFUNCTION, TTT, 0, 0) + OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0, 0) + OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0, 0) } #undef OPT_ENTRY @@ -675,15 +876,26 @@ static int lcurl_easy_getinfo(lua_State *L){ static const struct luaL_Reg lcurl_easy_methods[] = { -#define OPT_ENTRY(L, N, T, S) { "setopt_"#L, lcurl_easy_set_##N }, +#define OPT_ENTRY(L, N, T, S, D) { "setopt_"#L, lcurl_easy_set_##N }, #include "lcopteasy.h" - OPT_ENTRY(postfields, POSTFIELDS, TTT, 0) - OPT_ENTRY(httppost, HTTPPOST, TTT, 0) - OPT_ENTRY(share, SHARE, TTT, 0) - OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0) - OPT_ENTRY(readfunction, READFUNCTION, TTT, 0) - OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0) - OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0) + OPT_ENTRY(postfields, POSTFIELDS, TTT, 0, 0) + OPT_ENTRY(httppost, HTTPPOST, TTT, 0, 0) + OPT_ENTRY(share, SHARE, TTT, 0, 0) + OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0, 0) + OPT_ENTRY(readfunction, READFUNCTION, TTT, 0, 0) + OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0, 0) + OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0, 0) +#undef OPT_ENTRY + +#define OPT_ENTRY(L, N, T, S, D) { "unsetopt_"#L, lcurl_easy_unset_##N }, + #include "lcopteasy.h" + OPT_ENTRY(postfields, POSTFIELDS, TTT, 0, 0) + OPT_ENTRY(httppost, HTTPPOST, TTT, 0, 0) + OPT_ENTRY(share, SHARE, TTT, 0, 0) + OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0, 0) + OPT_ENTRY(readfunction, READFUNCTION, TTT, 0, 0) + OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0, 0) + OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0, 0) #undef OPT_ENTRY #define OPT_ENTRY(L, N, T, S) { "getinfo_"#L, lcurl_easy_get_##N }, @@ -704,16 +916,16 @@ static const struct luaL_Reg lcurl_easy_methods[] = { static const lcurl_const_t lcurl_easy_opt[] = { -#define OPT_ENTRY(L, N, T, S) { "OPT_"#N, CURLOPT_##N }, +#define OPT_ENTRY(L, N, T, S, D) { "OPT_"#N, CURLOPT_##N }, #define FLG_ENTRY(N) { #N, CURL_##N }, #include "lcopteasy.h" - OPT_ENTRY(postfields, POSTFIELDS, TTT, 0) - OPT_ENTRY(httppost, HTTPPOST, TTT, 0) - OPT_ENTRY(share, SHARE, TTT, 0) - OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0) - OPT_ENTRY(readfunction, READFUNCTION, TTT, 0) - OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0) - OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0) + OPT_ENTRY(postfields, POSTFIELDS, TTT, 0, 0) + OPT_ENTRY(httppost, HTTPPOST, TTT, 0, 0) + OPT_ENTRY(share, SHARE, TTT, 0, 0) + OPT_ENTRY(writefunction, WRITEFUNCTION, TTT, 0, 0) + OPT_ENTRY(readfunction, READFUNCTION, TTT, 0, 0) + OPT_ENTRY(headerfunction, HEADERFUNCTION, TTT, 0, 0) + OPT_ENTRY(progressfunction, PROGRESSFUNCTION, TTT, 0, 0) #undef OPT_ENTRY #undef FLG_ENTRY diff --git a/src/lceasy.h b/src/lceasy.h index a126b0f..e41c5eb 100644 --- a/src/lceasy.h +++ b/src/lceasy.h @@ -7,7 +7,7 @@ #define LCURL_LST_INDEX(N) LCURL_##N##_LIST, #define LCURL_STR_INDEX(N) #define LCURL_LNG_INDEX(N) -#define OPT_ENTRY(L, N, T, S) LCURL_##T##_INDEX(N) +#define OPT_ENTRY(L, N, T, S, D) LCURL_##T##_INDEX(N) enum { LCURL_LIST_DUMMY = -1, diff --git a/src/lcopteasy.h b/src/lcopteasy.h index 0de6760..5c19b86 100644 --- a/src/lcopteasy.h +++ b/src/lcopteasy.h @@ -17,7 +17,7 @@ #endif #ifndef OPT_ENTRY -# define OPT_ENTRY(a,b,c,d) +# define OPT_ENTRY(a,b,c,d,e) # define OPT_ENTRY_IS_NULL #endif @@ -26,214 +26,218 @@ # define FLG_ENTRY_IS_NULL #endif -OPT_ENTRY( verbose, VERBOSE, LNG, 0 ) -OPT_ENTRY( header, HEADER, LNG, 0 ) -OPT_ENTRY( noprogress, NOPROGRESS, LNG, 0 ) -OPT_ENTRY( nosignal, NOSIGNAL, LNG, 0 ) +#ifndef LCURL_DEFAULT_VALUE +# define LCURL_DEFAULT_VALUE 0 +#endif + +OPT_ENTRY( verbose, VERBOSE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( header, HEADER, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( noprogress, NOPROGRESS, LNG, 0, 1 ) +OPT_ENTRY( nosignal, NOSIGNAL, LNG, 0, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,21,0) -OPT_ENTRY( wildcardmatch, WILDCARDMATCH, LNG, 0 ) +OPT_ENTRY( wildcardmatch, WILDCARDMATCH, LNG, 0, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( url, URL, STR, LCURL_STORE_STRING ) -OPT_ENTRY( failonerror, FAILONERROR, LNG, 0 ) +OPT_ENTRY( url, URL, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( failonerror, FAILONERROR, LNG, 0, LCURL_DEFAULT_VALUE ) -OPT_ENTRY( protocols, PROTOCOLS, LNG, 0 ) -OPT_ENTRY( redir_protocols, REDIR_PROTOCOLS, LNG, 0 ) -OPT_ENTRY( proxy, PROXY, STR, LCURL_STORE_STRING ) -OPT_ENTRY( proxyport, PROXYPORT, LNG, 0 ) -OPT_ENTRY( proxytype, PROXYTYPE, LNG, 0 ) -OPT_ENTRY( noproxy, NOPROXY, STR, LCURL_STORE_STRING ) -OPT_ENTRY( httpproxytunnel, HTTPPROXYTUNNEL, LNG, 0 ) -OPT_ENTRY( socks5_gssapi_service, SOCKS5_GSSAPI_SERVICE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( socks5_gssapi_nec, SOCKS5_GSSAPI_NEC, LNG, 0 ) -OPT_ENTRY( interface, INTERFACE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( localport, LOCALPORT, LNG, 0 ) -OPT_ENTRY( localportrange, LOCALPORTRANGE, LNG, 0 ) -OPT_ENTRY( dns_cache_timeout, DNS_CACHE_TIMEOUT, LNG, 0 ) -OPT_ENTRY( dns_use_global_cache, DNS_USE_GLOBAL_CACHE, LNG, 0 ) +OPT_ENTRY( protocols, PROTOCOLS, LNG, 0, CURLPROTO_ALL ) +OPT_ENTRY( redir_protocols, REDIR_PROTOCOLS, LNG, 0, CURLPROTO_ALL ) /*! @fixme All protocols except for FILE and SCP */ +OPT_ENTRY( proxy, PROXY, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( proxyport, PROXYPORT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( proxytype, PROXYTYPE, LNG, 0, CURLPROXY_HTTP ) +OPT_ENTRY( noproxy, NOPROXY, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( httpproxytunnel, HTTPPROXYTUNNEL, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( socks5_gssapi_service, SOCKS5_GSSAPI_SERVICE, STR, LCURL_STORE_STRING, "rcmd/server-fqdn" ) +OPT_ENTRY( socks5_gssapi_nec, SOCKS5_GSSAPI_NEC, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @check doc says nothing */ +OPT_ENTRY( interface, INTERFACE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( localport, LOCALPORT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( localportrange, LOCALPORTRANGE, LNG, 0, 1 ) +OPT_ENTRY( dns_cache_timeout, DNS_CACHE_TIMEOUT, LNG, 0, 60 ) +OPT_ENTRY( dns_use_global_cache, DNS_USE_GLOBAL_CACHE, LNG, 0, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,25,0) -OPT_ENTRY( dns_servers, DNS_SERVERS, STR, LCURL_STORE_STRING ) +OPT_ENTRY( dns_servers, DNS_SERVERS, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( buffersize, BUFFERSIZE, LNG, 0 ) -OPT_ENTRY( port, PORT, LNG, 0 ) -OPT_ENTRY( tcp_nodelay, TCP_NODELAY, LNG, 0 ) -OPT_ENTRY( address_scope, ADDRESS_SCOPE, LNG, 0 ) +OPT_ENTRY( buffersize, BUFFERSIZE, LNG, 0, CURL_MAX_WRITE_SIZE ) +OPT_ENTRY( port, PORT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( tcp_nodelay, TCP_NODELAY, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( address_scope, ADDRESS_SCOPE, LNG, 0, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,25,0) -OPT_ENTRY( tcp_keepalive, TCP_KEEPALIVE, LNG, 0 ) -OPT_ENTRY( tcp_keepidle, TCP_KEEPIDLE, LNG, 0 ) -OPT_ENTRY( tcp_keepintvl, TCP_KEEPINTVL, LNG, 0 ) +OPT_ENTRY( tcp_keepalive, TCP_KEEPALIVE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( tcp_keepidle, TCP_KEEPIDLE, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @check doc says nothing */ +OPT_ENTRY( tcp_keepintvl, TCP_KEEPINTVL, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @check doc says nothing */ #endif -OPT_ENTRY( netrc, NETRC, LNG, 0 ) -OPT_ENTRY( netrc_file, NETRC_FILE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( userpwd, USERPWD, STR, LCURL_STORE_STRING ) -OPT_ENTRY( proxyuserpwd, PROXYUSERPWD, STR, LCURL_STORE_STRING ) -OPT_ENTRY( username, USERNAME, STR, LCURL_STORE_STRING ) -OPT_ENTRY( password, PASSWORD, STR, LCURL_STORE_STRING ) +OPT_ENTRY( netrc, NETRC, LNG, 0, CURL_NETRC_IGNORED ) +OPT_ENTRY( netrc_file, NETRC_FILE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( userpwd, USERPWD, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( proxyuserpwd, PROXYUSERPWD, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( username, USERNAME, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( password, PASSWORD, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,31,0) -OPT_ENTRY( login_options, LOGIN_OPTIONS, STR, LCURL_STORE_STRING ) +OPT_ENTRY( login_options, LOGIN_OPTIONS, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( proxyusername, PROXYUSERNAME, STR, LCURL_STORE_STRING ) -OPT_ENTRY( proxypassword, PROXYPASSWORD, STR, LCURL_STORE_STRING ) -OPT_ENTRY( httpauth, HTTPAUTH, LNG, 0 ) +OPT_ENTRY( proxyusername, PROXYUSERNAME, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( proxypassword, PROXYPASSWORD, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( httpauth, HTTPAUTH, LNG, 0, CURLAUTH_BASIC ) #if LCURL_CURL_VER_GE(7,21,4) -OPT_ENTRY( tlsauth_username, TLSAUTH_USERNAME, STR, LCURL_STORE_STRING ) -OPT_ENTRY( tlsauth_password, TLSAUTH_PASSWORD, STR, LCURL_STORE_STRING ) -OPT_ENTRY( tlsauth_type, TLSAUTH_TYPE, LNG, 0 ) +OPT_ENTRY( tlsauth_username, TLSAUTH_USERNAME, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( tlsauth_password, TLSAUTH_PASSWORD, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( tlsauth_type, TLSAUTH_TYPE, LNG, 0, CURL_TLSAUTH_NONE ) #endif -OPT_ENTRY( proxyauth, PROXYAUTH, LNG, 0 ) +OPT_ENTRY( proxyauth, PROXYAUTH, LNG, 0, CURLAUTH_BASIC ) #if LCURL_CURL_VER_GE(7,31,0) -OPT_ENTRY( sasl_ir, SASL_IR, LNG, 0 ) +OPT_ENTRY( sasl_ir, SASL_IR, LNG, 0, LCURL_DEFAULT_VALUE ) #endif #if LCURL_CURL_VER_GE(7,33,0) -OPT_ENTRY( xoauth2_bearer, XOAUTH2_BEARER, STR, LCURL_STORE_STRING ) +OPT_ENTRY( xoauth2_bearer, XOAUTH2_BEARER, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( autoreferer, AUTOREFERER, LNG, 0 ) +OPT_ENTRY( autoreferer, AUTOREFERER, LNG, 0, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,21,6) -OPT_ENTRY( accept_encoding, ACCEPT_ENCODING, STR, LCURL_STORE_STRING ) -OPT_ENTRY( transfer_encoding, TRANSFER_ENCODING, LNG, 0 ) +OPT_ENTRY( accept_encoding, ACCEPT_ENCODING, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( transfer_encoding, TRANSFER_ENCODING, LNG, 0, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( followlocation, FOLLOWLOCATION, LNG, 0 ) -OPT_ENTRY( unrestricted_auth, UNRESTRICTED_AUTH, LNG, 0 ) -OPT_ENTRY( maxredirs, MAXREDIRS, LNG, 0 ) -OPT_ENTRY( postredir, POSTREDIR, LNG, 0 ) -OPT_ENTRY( put, PUT, LNG, 0 ) -OPT_ENTRY( post, POST, LNG, 0 ) -OPT_ENTRY( referer, REFERER, STR, LCURL_STORE_STRING ) -OPT_ENTRY( useragent, USERAGENT, STR, LCURL_STORE_STRING ) +OPT_ENTRY( followlocation, FOLLOWLOCATION, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( unrestricted_auth, UNRESTRICTED_AUTH, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( maxredirs, MAXREDIRS, LNG, 0, -1 ) +OPT_ENTRY( postredir, POSTREDIR, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( put, PUT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( post, POST, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( referer, REFERER, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( useragent, USERAGENT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,37,0) -OPT_ENTRY( headeropt, HEADEROPT, LNG, 0 ) +OPT_ENTRY( headeropt, HEADEROPT, LNG, 0, CURLHEADER_UNIFIED ) #endif -OPT_ENTRY( httpheader, HTTPHEADER, LST, 0 ) +OPT_ENTRY( httpheader, HTTPHEADER, LST, 0, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,37,0) -OPT_ENTRY( proxyheader, PROXYHEADER, LST, 0 ) +OPT_ENTRY( proxyheader, PROXYHEADER, LST, 0, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( http200aliases, HTTP200ALIASES, LST, 0 ) -OPT_ENTRY( cookie, COOKIE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( cookiefile, COOKIEFILE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( cookiejar, COOKIEJAR, STR, LCURL_STORE_STRING ) -OPT_ENTRY( cookiesession, COOKIESESSION, LNG, 0 ) -OPT_ENTRY( cookielist, COOKIELIST, STR, LCURL_STORE_STRING ) -OPT_ENTRY( httpget, HTTPGET, LNG, 0 ) -OPT_ENTRY( http_version, HTTP_VERSION, LNG, 0 ) -OPT_ENTRY( ignore_content_length, IGNORE_CONTENT_LENGTH, LNG, 0 ) -OPT_ENTRY( http_content_decoding, HTTP_CONTENT_DECODING, LNG, 0 ) -OPT_ENTRY( http_transfer_decoding, HTTP_TRANSFER_DECODING, LNG, 0 ) +OPT_ENTRY( http200aliases, HTTP200ALIASES, LST, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( cookie, COOKIE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( cookiefile, COOKIEFILE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( cookiejar, COOKIEJAR, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( cookiesession, COOKIESESSION, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( cookielist, COOKIELIST, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( httpget, HTTPGET, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( http_version, HTTP_VERSION, LNG, 0, CURL_HTTP_VERSION_NONE ) +OPT_ENTRY( ignore_content_length, IGNORE_CONTENT_LENGTH, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( http_content_decoding, HTTP_CONTENT_DECODING, LNG, 0, 1 ) +OPT_ENTRY( http_transfer_decoding, HTTP_TRANSFER_DECODING, LNG, 0, 1 ) #if LCURL_CURL_VER_GE(7,36,0) -OPT_ENTRY( expect_100_timeout_ms, EXPECT_100_TIMEOUT_MS, LNG, 0 ) +OPT_ENTRY( expect_100_timeout_ms, EXPECT_100_TIMEOUT_MS, LNG, 0, 1000 ) #endif #if LCURL_CURL_VER_GE(7,20,0) -OPT_ENTRY( mail_from, MAIL_FROM, STR, LCURL_STORE_STRING ) -OPT_ENTRY( mail_rcpt, MAIL_RCPT, STR, LCURL_STORE_STRING ) +OPT_ENTRY( mail_from, MAIL_FROM, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) /*! @check doc says `blank` */ +OPT_ENTRY( mail_rcpt, MAIL_RCPT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #endif #if LCURL_CURL_VER_GE(7,25,0) -OPT_ENTRY( mail_auth, MAIL_AUTH, STR, LCURL_STORE_STRING ) +OPT_ENTRY( mail_auth, MAIL_AUTH, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( tftp_blksize, TFTP_BLKSIZE, LNG, 0 ) +OPT_ENTRY( tftp_blksize, TFTP_BLKSIZE, LNG, 0, 512 ) -OPT_ENTRY( ftpport, FTPPORT, STR, LCURL_STORE_STRING ) -OPT_ENTRY( quote, QUOTE, LST, 0 ) -OPT_ENTRY( postquote, POSTQUOTE, LST, 0 ) -OPT_ENTRY( prequote, PREQUOTE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( dirlistonly, DIRLISTONLY, LNG, 0 ) -OPT_ENTRY( append, APPEND, LNG, 0 ) -OPT_ENTRY( ftp_use_eprt, FTP_USE_EPRT, LNG, 0 ) -OPT_ENTRY( ftp_use_epsv, FTP_USE_EPSV, LNG, 0 ) +OPT_ENTRY( ftpport, FTPPORT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( quote, QUOTE, LST, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( postquote, POSTQUOTE, LST, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( prequote, PREQUOTE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( dirlistonly, DIRLISTONLY, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( append, APPEND, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( ftp_use_eprt, FTP_USE_EPRT, LNG, 0, LCURL_DEFAULT_VALUE )/*! @check doc says nothing */ +OPT_ENTRY( ftp_use_epsv, FTP_USE_EPSV, LNG, 0, 1 ) #if LCURL_CURL_VER_GE(7,20,0) -OPT_ENTRY( ftp_use_pret, FTP_USE_PRET, LNG, 0 ) +OPT_ENTRY( ftp_use_pret, FTP_USE_PRET, LNG, 0, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( ftp_create_missing_dirs, FTP_CREATE_MISSING_DIRS, LNG, 0 ) -OPT_ENTRY( ftp_response_timeout, FTP_RESPONSE_TIMEOUT, LNG, 0 ) -OPT_ENTRY( ftp_alternative_to_user, FTP_ALTERNATIVE_TO_USER, STR, LCURL_STORE_STRING ) -OPT_ENTRY( ftp_skip_pasv_ip, FTP_SKIP_PASV_IP, LNG, 0 ) -OPT_ENTRY( ftpsslauth, FTPSSLAUTH, LNG, 0 ) -OPT_ENTRY( ftp_ssl_ccc, FTP_SSL_CCC, LNG, 0 ) -OPT_ENTRY( ftp_account, FTP_ACCOUNT, STR, LCURL_STORE_STRING ) -OPT_ENTRY( ftp_filemethod, FTP_FILEMETHOD, LNG, 0 ) +OPT_ENTRY( ftp_create_missing_dirs, FTP_CREATE_MISSING_DIRS, LNG, 0, CURLFTP_CREATE_DIR_NONE ) +OPT_ENTRY( ftp_response_timeout, FTP_RESPONSE_TIMEOUT, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @fixme doc says `None` */ +OPT_ENTRY( ftp_alternative_to_user, FTP_ALTERNATIVE_TO_USER, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( ftp_skip_pasv_ip, FTP_SKIP_PASV_IP, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( ftpsslauth, FTPSSLAUTH, LNG, 0, CURLFTPAUTH_DEFAULT ) +OPT_ENTRY( ftp_ssl_ccc, FTP_SSL_CCC, LNG, 0, CURLFTPSSL_CCC_NONE ) +OPT_ENTRY( ftp_account, FTP_ACCOUNT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( ftp_filemethod, FTP_FILEMETHOD, LNG, 0, CURLFTPMETHOD_MULTICWD ) -OPT_ENTRY( transfertext, TRANSFERTEXT, LNG, 0 ) -OPT_ENTRY( proxy_transfer_mode, PROXY_TRANSFER_MODE, LNG, 0 ) -OPT_ENTRY( crlf, CRLF, LNG, 0 ) -OPT_ENTRY( range, RANGE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( resume_from, RESUME_FROM, LNG, 0 ) -OPT_ENTRY( resume_from_large, RESUME_FROM_LARGE, LNG, 0 ) -OPT_ENTRY( customrequest, CUSTOMREQUEST, STR, LCURL_STORE_STRING ) -OPT_ENTRY( filetime, FILETIME, LNG, 0 ) -OPT_ENTRY( nobody, NOBODY, LNG, 0 ) -OPT_ENTRY( infilesize, INFILESIZE, LNG, 0 ) -OPT_ENTRY( infilesize_large, INFILESIZE_LARGE, LNG, 0 ) -OPT_ENTRY( upload, UPLOAD, LNG, 0 ) -OPT_ENTRY( maxfilesize, MAXFILESIZE, LNG, 0 ) -OPT_ENTRY( maxfilesize_large, MAXFILESIZE_LARGE, LNG, 0 ) -OPT_ENTRY( timecondition, TIMECONDITION, LNG, 0 ) -OPT_ENTRY( timevalue, TIMEVALUE, LNG, 0 ) +OPT_ENTRY( transfertext, TRANSFERTEXT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( proxy_transfer_mode, PROXY_TRANSFER_MODE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( crlf, CRLF, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( range, RANGE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( resume_from, RESUME_FROM, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( resume_from_large, RESUME_FROM_LARGE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( customrequest, CUSTOMREQUEST, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( filetime, FILETIME, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( nobody, NOBODY, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( infilesize, INFILESIZE, LNG, 0, LCURL_DEFAULT_VALUE )/*! @fixme doc says `Unset` */ +OPT_ENTRY( infilesize_large, INFILESIZE_LARGE, LNG, 0, LCURL_DEFAULT_VALUE )/*! @fixme doc says `Unset` */ +OPT_ENTRY( upload, UPLOAD, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( maxfilesize, MAXFILESIZE, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @fixme doc says `None` */ +OPT_ENTRY( maxfilesize_large, MAXFILESIZE_LARGE, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @fixme doc says `None` */ +OPT_ENTRY( timecondition, TIMECONDITION, LNG, 0, CURL_TIMECOND_NONE ) +OPT_ENTRY( timevalue, TIMEVALUE, LNG, 0, LCURL_DEFAULT_VALUE ) -OPT_ENTRY( timeout, TIMEOUT, LNG, 0 ) -OPT_ENTRY( timeout_ms, TIMEOUT_MS, LNG, 0 ) -OPT_ENTRY( low_speed_limit, LOW_SPEED_LIMIT, LNG, 0 ) -OPT_ENTRY( low_speed_time, LOW_SPEED_TIME, LNG, 0 ) -OPT_ENTRY( max_send_speed_large, MAX_SEND_SPEED_LARGE, LNG, 0 ) -OPT_ENTRY( max_recv_speed_large, MAX_RECV_SPEED_LARGE, LNG, 0 ) -OPT_ENTRY( maxconnects, MAXCONNECTS, LNG, 0 ) -OPT_ENTRY( fresh_connect, FRESH_CONNECT, LNG, 0 ) -OPT_ENTRY( forbid_reuse, FORBID_REUSE, LNG, 0 ) -OPT_ENTRY( connecttimeout, CONNECTTIMEOUT, LNG, 0 ) -OPT_ENTRY( connecttimeout_ms, CONNECTTIMEOUT_MS, LNG, 0 ) -OPT_ENTRY( ipresolve, IPRESOLVE, LNG, 0 ) -OPT_ENTRY( connect_only, CONNECT_ONLY, LNG, 0 ) -OPT_ENTRY( use_ssl, USE_SSL, LNG, 0 ) +OPT_ENTRY( timeout, TIMEOUT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( timeout_ms, TIMEOUT_MS, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( low_speed_limit, LOW_SPEED_LIMIT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( low_speed_time, LOW_SPEED_TIME, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( max_send_speed_large, MAX_SEND_SPEED_LARGE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( max_recv_speed_large, MAX_RECV_SPEED_LARGE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( maxconnects, MAXCONNECTS, LNG, 0, 5 ) +OPT_ENTRY( fresh_connect, FRESH_CONNECT, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( forbid_reuse, FORBID_REUSE, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( connecttimeout, CONNECTTIMEOUT, LNG, 0, 300 ) +OPT_ENTRY( connecttimeout_ms, CONNECTTIMEOUT_MS, LNG, 0, 300000 ) +OPT_ENTRY( ipresolve, IPRESOLVE, LNG, 0, CURL_IPRESOLVE_WHATEVER ) +OPT_ENTRY( connect_only, CONNECT_ONLY, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( use_ssl, USE_SSL, LNG, 0, CURLUSESSL_NONE ) #if LCURL_CURL_VER_GE(7,21,3) -OPT_ENTRY( resolve, RESOLVE, LST, 0 ) +OPT_ENTRY( resolve, RESOLVE, LST, 0, LCURL_DEFAULT_VALUE ) #endif #if LCURL_CURL_VER_GE(7,33,0) -OPT_ENTRY( dns_interface, DNS_INTERFACE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( dns_local_ip4, DNS_LOCAL_IP4, STR, LCURL_STORE_STRING ) -OPT_ENTRY( dns_local_ip6, DNS_LOCAL_IP6, STR, LCURL_STORE_STRING ) -OPT_ENTRY( accepttimeout_ms, ACCEPTTIMEOUT_MS, LNG, 0 ) +OPT_ENTRY( dns_interface, DNS_INTERFACE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( dns_local_ip4, DNS_LOCAL_IP4, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( dns_local_ip6, DNS_LOCAL_IP6, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( accepttimeout_ms, ACCEPTTIMEOUT_MS, LNG, 0, 60000 ) #endif -OPT_ENTRY( ssh_auth_types, SSH_AUTH_TYPES, LNG, 0) -OPT_ENTRY( ssh_host_public_key_md5, SSH_HOST_PUBLIC_KEY_MD5, STR, 0) -OPT_ENTRY( ssh_public_keyfile, SSH_PUBLIC_KEYFILE, STR, 0) -OPT_ENTRY( ssh_private_keyfile, SSH_PRIVATE_KEYFILE, STR, 0) -OPT_ENTRY( ssh_knownhosts, SSH_KNOWNHOSTS, STR, 0) +OPT_ENTRY( ssh_auth_types, SSH_AUTH_TYPES, LNG, 0, LCURL_DEFAULT_VALUE) /*! @fixme doc says `None` */ +OPT_ENTRY( ssh_host_public_key_md5, SSH_HOST_PUBLIC_KEY_MD5, STR, 0, LCURL_DEFAULT_VALUE) +OPT_ENTRY( ssh_public_keyfile, SSH_PUBLIC_KEYFILE, STR, 0, LCURL_DEFAULT_VALUE) +OPT_ENTRY( ssh_private_keyfile, SSH_PRIVATE_KEYFILE, STR, 0, LCURL_DEFAULT_VALUE) +OPT_ENTRY( ssh_knownhosts, SSH_KNOWNHOSTS, STR, 0, LCURL_DEFAULT_VALUE) -OPT_ENTRY( new_file_perms, NEW_FILE_PERMS, LNG, 0) -OPT_ENTRY( new_directory_perms, NEW_DIRECTORY_PERMS, LNG, 0) +OPT_ENTRY( new_file_perms, NEW_FILE_PERMS, LNG, 0, 0644) +OPT_ENTRY( new_directory_perms, NEW_DIRECTORY_PERMS, LNG, 0, 0755) -OPT_ENTRY( telnetoptions, TELNETOPTIONS, LST, 0) +OPT_ENTRY( telnetoptions, TELNETOPTIONS, LST, 0, LCURL_DEFAULT_VALUE) -OPT_ENTRY( random_file, RANDOM_FILE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( egdsocket, EGDSOCKET, STR, LCURL_STORE_STRING ) -OPT_ENTRY( issuercert, ISSUERCERT, STR, LCURL_STORE_STRING ) -OPT_ENTRY( krblevel, KRBLEVEL, STR, LCURL_STORE_STRING ) +OPT_ENTRY( random_file, RANDOM_FILE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( egdsocket, EGDSOCKET, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( issuercert, ISSUERCERT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( krblevel, KRBLEVEL, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) -OPT_ENTRY( cainfo, CAINFO, STR, LCURL_STORE_STRING ) -OPT_ENTRY( capath, CAPATH, STR, LCURL_STORE_STRING ) -OPT_ENTRY( certinfo, CERTINFO, LNG, 0 ) -OPT_ENTRY( crlfile, CRLFILE, STR, LCURL_STORE_STRING ) +OPT_ENTRY( cainfo, CAINFO, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) /*! @fixme doc says `Built-in system specific` */ +OPT_ENTRY( capath, CAPATH, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( certinfo, CERTINFO, LNG, 0, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( crlfile, CRLFILE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) -OPT_ENTRY( sslcert, SSLCERT, STR, LCURL_STORE_STRING ) -OPT_ENTRY( sslcerttype, SSLCERTTYPE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( sslengine, SSLENGINE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( sslengine_default, SSLENGINE_DEFAULT, LNG, 0 ) -OPT_ENTRY( sslkey, SSLKEY, STR, LCURL_STORE_STRING ) -OPT_ENTRY( sslkeytype, SSLKEYTYPE, STR, LCURL_STORE_STRING ) -OPT_ENTRY( sslversion, SSLVERSION, LNG, 0 ) -OPT_ENTRY( ssl_cipher_list, SSL_CIPHER_LIST, STR, LCURL_STORE_STRING ) +OPT_ENTRY( sslcert, SSLCERT, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( sslcerttype, SSLCERTTYPE, STR, LCURL_STORE_STRING, "PEM" ) +OPT_ENTRY( sslengine, SSLENGINE, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( sslengine_default, SSLENGINE_DEFAULT, LNG, 0, LCURL_DEFAULT_VALUE ) /*! @fixme doc says `None` */ +OPT_ENTRY( sslkey, SSLKEY, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) +OPT_ENTRY( sslkeytype, SSLKEYTYPE, STR, LCURL_STORE_STRING, "PEM" ) +OPT_ENTRY( sslversion, SSLVERSION, LNG, 0, CURL_SSLVERSION_DEFAULT ) +OPT_ENTRY( ssl_cipher_list, SSL_CIPHER_LIST, STR, LCURL_STORE_STRING, LCURL_DEFAULT_VALUE ) #if LCURL_CURL_VER_GE(7,33,0) -OPT_ENTRY( ssl_enable_alpn, SSL_ENABLE_ALPN, LNG, 0 ) -OPT_ENTRY( ssl_enable_npn, SSL_ENABLE_NPN, LNG, 0 ) +OPT_ENTRY( ssl_enable_alpn, SSL_ENABLE_ALPN, LNG, 0, 1 ) +OPT_ENTRY( ssl_enable_npn, SSL_ENABLE_NPN, LNG, 0, 1 ) #endif #if LCURL_CURL_VER_GE(7,25,0) -OPT_ENTRY( ssl_options, SSL_OPTIONS, LNG, 0 ) +OPT_ENTRY( ssl_options, SSL_OPTIONS, LNG, 0, LCURL_DEFAULT_VALUE ) #endif -OPT_ENTRY( ssl_sessionid_cache, SSL_SESSIONID_CACHE, LNG, 0 ) -OPT_ENTRY( ssl_verifyhost, SSL_VERIFYHOST, LNG, 0 ) -OPT_ENTRY( ssl_verifypeer, SSL_VERIFYPEER, LNG, 0 ) +OPT_ENTRY( ssl_sessionid_cache, SSL_SESSIONID_CACHE, LNG, 0, 1 ) +OPT_ENTRY( ssl_verifyhost, SSL_VERIFYHOST, LNG, 0, 2 ) +OPT_ENTRY( ssl_verifypeer, SSL_VERIFYPEER, LNG, 0, 1 ) FLG_ENTRY( SSLVERSION_DEFAULT )