diff --git a/appveyor.yml b/appveyor.yml index 9dce3ea..e8959da 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -7,7 +7,7 @@ shallow_clone: true environment: LR_EXTERNAL: c:\external - CURL_VER: 7.61.0 + CURL_VER: 7.62.0 matrix: - LUA: "lua 5.1" diff --git a/src/lceasy.c b/src/lceasy.c index a5b8685..0328648 100644 --- a/src/lceasy.c +++ b/src/lceasy.c @@ -291,6 +291,20 @@ static int lcurl_easy_mime(lua_State *L){ #endif +#if LCURL_CURL_VER_GE(7,62,0) + +static int lcurl_easy_upkeep(lua_State *L){ + lcurl_easy_t *p = lcurl_geteasy(L); + CURLcode code = curl_easy_upkeep(p->curl); + if(code == CURLE_OK){ + lua_settop(L, 1); + return 1; + } + return lcurl_fail_ex(L, p->err_mode, LCURL_ERROR_EASY, code); +} + +#endif + //{ OPTIONS //{ set @@ -1760,6 +1774,7 @@ static const struct luaL_Reg lcurl_easy_methods[] = { { "escape", lcurl_easy_escape }, { "unescape", lcurl_easy_unescape }, { "perform", lcurl_easy_perform }, + { "upkeep", lcurl_easy_upkeep }, { "close", lcurl_easy_cleanup }, { "__gc", lcurl_easy_cleanup }, { "__tostring", lcurl_easy_to_s }, diff --git a/src/lcerr_easy.h b/src/lcerr_easy.h index 94ad143..d294e6b 100644 --- a/src/lcerr_easy.h +++ b/src/lcerr_easy.h @@ -71,7 +71,11 @@ ERR_ENTRY ( RECV_ERROR ) ERR_ENTRY ( OBSOLETE57 ) ERR_ENTRY ( SSL_CERTPROBLEM ) ERR_ENTRY ( SSL_CIPHER ) +#if LCURL_CURL_VER_GE(7,62,0) +ERR_ENTRY ( OBSOLETE51 ) +#else ERR_ENTRY ( SSL_CACERT ) +#endif ERR_ENTRY ( BAD_CONTENT_ENCODING ) ERR_ENTRY ( LDAP_INVALID_URL ) ERR_ENTRY ( FILESIZE_EXCEEDED ) diff --git a/src/lcopteasy.h b/src/lcopteasy.h index 3e7ae0b..d61edef 100644 --- a/src/lcopteasy.h +++ b/src/lcopteasy.h @@ -450,6 +450,13 @@ OPT_ENTRY(proxy_tls13_ciphers, PROXY_TLS13_CIPHERS, STR, 0, LCURL_DEFA OPT_ENTRY(tls13_ciphers, TLS13_CIPHERS, STR, 0, LCURL_DEFAULT_VALUE) #endif +#if LCURL_CURL_VER_GE(7,61,0) +OPT_ENTRY(upkeep_interval_ms, UPKEEP_INTERVAL_MS, LNG, 0, CURL_UPKEEP_INTERVAL_DEFAULT) +OPT_ENTRY(doh_url, DOH_URL, STR, 0, LCURL_DEFAULT_VALUE) +// thre no named value for default value. It just defined as 64kB in documentation +OPT_ENTRY(upload_buffersize, UPLOAD_BUFFERSIZE, LNG, 0, 64 * 1024) +#endif + //{ Restore system macros #ifdef LCURL__TCP_FASTOPEN diff --git a/src/lua/cURL/impl/cURL.lua b/src/lua/cURL/impl/cURL.lua index 2e1fbce..e7243a9 100644 --- a/src/lua/cURL/impl/cURL.lua +++ b/src/lua/cURL/impl/cURL.lua @@ -381,6 +381,7 @@ Easy.setopt_httpauth = wrap_setopt_flags("httpauth", { ["ONLY" ] = curl.AUTH_ONLY; ["ANY" ] = curl.AUTH_ANY; ["ANYSAFE" ] = curl.AUTH_ANYSAFE; + ["BEARER" ] = curl.AUTH_BEARER; }) Easy.setopt_ssh_auth_types = wrap_setopt_flags("ssh_auth_types", {