Merge pull request #137 from moteus/master

Support libcurl 7.60-7.62
This commit is contained in:
Alexey Melnichuk 2018-11-04 17:49:40 +03:00 committed by GitHub
commit 11f39e347d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 61 additions and 2 deletions

View File

@ -7,7 +7,7 @@ shallow_clone: true
environment:
LR_EXTERNAL: c:\external
CURL_VER: 7.59.0
CURL_VER: 7.62.0
matrix:
- LUA: "lua 5.1"

View File

@ -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,9 @@ static const struct luaL_Reg lcurl_easy_methods[] = {
{ "escape", lcurl_easy_escape },
{ "unescape", lcurl_easy_unescape },
{ "perform", lcurl_easy_perform },
#if LCURL_CURL_VER_GE(7,62,0)
{ "upkeep", lcurl_easy_upkeep },
#endif
{ "close", lcurl_easy_cleanup },
{ "__gc", lcurl_easy_cleanup },
{ "__tostring", lcurl_easy_to_s },

View File

@ -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 )

View File

@ -21,6 +21,9 @@ FLG_ENTRY(AUTH_ANYSAFE )
#if LCURL_CURL_VER_GE(7,55,0)
FLG_ENTRY(AUTH_GSSAPI )
#endif
#if LCURL_CURL_VER_GE(7,61,0)
FLG_ENTRY(AUTH_BEARER )
#endif
#ifdef CURLSSH_AUTH_ANY
FLG_ENTRY(SSH_AUTH_ANY )

View File

@ -67,6 +67,16 @@ OPT_ENTRY( speed_upload_t, SPEED_UPLOAD_T, OFF, 0)
OPT_ENTRY( filetime_t, FILETIME_T, OFF, 0)
#endif
#if LCURL_CURL_VER_GE(7,61,0)
OPT_ENTRY(appconnect_time_t, APPCONNECT_TIME_T, OFF, 0)
OPT_ENTRY(connect_time_t, CONNECT_TIME_T, OFF, 0)
OPT_ENTRY(namelookup_time_t, NAMELOOKUP_TIME_T, OFF, 0)
OPT_ENTRY(pretransfer_time_t, PRETRANSFER_TIME_T, OFF, 0)
OPT_ENTRY(redirect_time_t, REDIRECT_TIME_T, OFF, 0)
OPT_ENTRY(starttransfer_time_t, STARTTRANSFER_TIME_T, OFF, 0)
OPT_ENTRY(total_time_t, TOTAL_TIME_T, OFF, 0)
#endif
// OPT_ENTRY( PRIVATE, void )
// OPT_ENTRY( TLS_SSL_PTR, struct curl_tlssessioninfo **
// OPT_ENTRY( TLS_SESSION, struct curl_tlssessioninfo *

View File

@ -439,6 +439,24 @@ OPT_ENTRY( happy_eyeballs_timeout_ms,HAPPY_EYEBALLS_TIMEOUT_MS,LNG, 0, CURL_HET_
OPT_ENTRY( timevalue_large, TIMEVALUE_LARGE ,OFF, 0, LCURL_DEFAULT_VALUE)
#endif
#if LCURL_CURL_VER_GE(7,60,0)
OPT_ENTRY(dns_shuffle_addresses, DNS_SHUFFLE_ADDRESSES, LNG, 0, LCURL_DEFAULT_VALUE)
OPT_ENTRY(haproxyprotocol, HAPROXYPROTOCOL, LNG, 0, LCURL_DEFAULT_VALUE)
#endif
#if LCURL_CURL_VER_GE(7,61,0)
OPT_ENTRY(disallow_username_in_url, DISALLOW_USERNAME_IN_URL, LNG, 0, LCURL_DEFAULT_VALUE)
OPT_ENTRY(proxy_tls13_ciphers, PROXY_TLS13_CIPHERS, STR, 0, LCURL_DEFAULT_VALUE)
OPT_ENTRY(tls13_ciphers, TLS13_CIPHERS, STR, 0, LCURL_DEFAULT_VALUE)
#endif
#if LCURL_CURL_VER_GE(7,62,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

View File

@ -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", {

View File

@ -20,6 +20,8 @@ local fname = "./test.download"
local utils = require "utils"
local is_curl_ge = utils.is_curl_ge
local function weak_ptr(val)
return setmetatable({value = val},{__mode = 'v'})
end
@ -186,7 +188,11 @@ function test_add_handle()
c = nil
if i == 3 then
assert_equal(curl.error(curl.ERROR_EASY, curl.E_UNSUPPORTED_PROTOCOL), data)
if is_curl_ge(7, 62,0) then
assert_equal(curl.error(curl.ERROR_EASY, curl.E_URL_MALFORMAT), data)
else
assert_equal(curl.error(curl.ERROR_EASY, curl.E_UNSUPPORTED_PROTOCOL), data)
end
else
local data = json_data()
assert_table(data.args)