diff --git a/curl b/curl index cb01383..f3294d9 160000 --- a/curl +++ b/curl @@ -1 +1 @@ -Subproject commit cb013830383f1ccc9757aba36bc32df5ec281c02 +Subproject commit f3294d9d86e6a7915a967efff2842089b8b0d071 diff --git a/curl-compile-scripts/build_Android.sh b/curl-compile-scripts/build_Android.sh index 9f0d287..464b1d0 100755 --- a/curl-compile-scripts/build_Android.sh +++ b/curl-compile-scripts/build_Android.sh @@ -31,7 +31,7 @@ fi #Configure OpenSSL cd $SSLPATH -./Configure android no-asm no-shared no-cast no-idea no-camellia no-whirpool +./Configure android no-asm no-shared no-cast no-idea no-camellia no-whirpool no-hw no-engine EXITCODE=$? if [ $EXITCODE -ne 0 ]; then echo "Error running the ssl configure program" @@ -86,7 +86,7 @@ if [ ! -x "$CURLPATH/configure" ]; then fi fi -export CFLAGS="--sysroot=$SYSROOT -march=$ARCH -mandroid -mthumb" +export CFLAGS="--sysroot=$SYSROOT -march=$ARCH -mthumb" export CPPFLAGS="$CFLAGS -I$TOOLCHAIN/include -DANDROID -DCURL_STATICLIB" export LIBS="-lssl -lcrypto" export LDFLAGS="-march=$ARCH -L$SCRIPTPATH/obj/local/armeabi-v7a" diff --git a/curl-compile-scripts/jni/crypto.mk b/curl-compile-scripts/jni/crypto.mk index b54a47d..bd5e6cf 100644 --- a/curl-compile-scripts/jni/crypto.mk +++ b/curl-compile-scripts/jni/crypto.mk @@ -56,14 +56,8 @@ CRYPTO_CSOURCES := \ ec/ec_print.c ec/eck_prn.c ec/ecp_mont.c ec/ecp_nist.c ec/ecp_oct.c \ ec/ecp_smpl.c ecdh/ech_err.c ecdh/ech_kdf.c ecdh/ech_key.c ecdh/ech_lib.c \ ecdh/ech_ossl.c ecdsa/ecs_asn1.c ecdsa/ecs_err.c ecdsa/ecs_lib.c \ - ecdsa/ecs_ossl.c ecdsa/ecs_sign.c ecdsa/ecs_vrf.c engine/eng_all.c \ - engine/eng_cnf.c engine/eng_ctrl.c engine/eng_dyn.c engine/eng_err.c \ - engine/eng_fat.c engine/eng_init.c engine/eng_lib.c engine/eng_list.c \ - engine/eng_pkey.c engine/eng_table.c engine/tb_asnmth.c engine/tb_cipher.c \ - engine/tb_dh.c engine/tb_digest.c engine/tb_dsa.c engine/tb_ecdh.c \ - engine/tb_ecdsa.c engine/tb_pkmeth.c engine/tb_rand.c engine/tb_rsa.c \ - engine/tb_store.c err/err.c err/err_all.c err/err_prn.c evp/bio_b64.c \ - evp/bio_enc.c evp/bio_md.c evp/bio_ok.c evp/c_all.c evp/c_allc.c evp/c_alld.c\ + ecdsa/ecs_ossl.c ecdsa/ecs_sign.c ecdsa/ecs_vrf.c err/err.c err/err_all.c err/err_prn.c \ + evp/bio_b64.c evp/bio_enc.c evp/bio_md.c evp/bio_ok.c evp/c_all.c evp/c_allc.c evp/c_alld.c\ evp/digest.c evp/e_aes.c evp/e_aes_cbc_hmac_sha1.c \ evp/e_aes_cbc_hmac_sha256.c evp/e_bf.c evp/e_des.c evp/e_des3.c evp/e_null.c \ evp/e_old.c evp/e_rc2.c evp/e_rc4.c evp/e_rc4_hmac_md5.c evp/e_rc5.c \ @@ -77,7 +71,7 @@ CRYPTO_CSOURCES := \ hmac/hm_pmeth.c hmac/hmac.c krb5/krb5_asn.c lhash/lh_stats.c lhash/lhash.c \ md4/md4_dgst.c md4/md4_one.c md5/md5_dgst.c md5/md5_one.c mem.c mem_clr.c \ mem_dbg.c modes/cbc128.c modes/ccm128.c modes/cfb128.c modes/ctr128.c \ - modes/gcm128.c modes/ofb128.c modes/wrap128.c modes/xts128.c o_dir.c o_init.c\ + modes/gcm128.c modes/ofb128.c modes/wrap128.c modes/xts128.c o_dir.c o_init.c getenv.c \ o_str.c o_time.c objects/o_names.c objects/obj_dat.c objects/obj_err.c \ objects/obj_lib.c objects/obj_xref.c ocsp/ocsp_asn.c ocsp/ocsp_cl.c \ ocsp/ocsp_err.c ocsp/ocsp_ext.c ocsp/ocsp_ht.c ocsp/ocsp_lib.c \ diff --git a/curl-compile-scripts/jni/curl.mk b/curl-compile-scripts/jni/curl.mk index d7a7b49..d0fc841 100644 --- a/curl-compile-scripts/jni/curl.mk +++ b/curl-compile-scripts/jni/curl.mk @@ -16,21 +16,21 @@ CURL_CSOURCES := \ connect.c content_encoding.c cookie.c curl_addrinfo.c curl_ctype.c curl_des.c \ curl_endian.c curl_fnmatch.c curl_gethostname.c curl_gssapi.c curl_memrchr.c \ curl_multibyte.c curl_ntlm_core.c curl_ntlm_wb.c curl_path.c curl_range.c \ - curl_rtmp.c curl_sasl.c curl_sspi.c curl_threads.c dict.c dotdot.c easy.c \ + curl_rtmp.c curl_sasl.c curl_sspi.c curl_threads.c dict.c dotdot.c doh.c easy.c \ escape.c file.c fileinfo.c formdata.c ftp.c ftplistparser.c getenv.c \ getinfo.c gopher.c hash.c hmac.c hostasyn.c hostcheck.c hostip.c hostip4.c \ hostip6.c hostsyn.c http_chunks.c http_digest.c http_negotiate.c http_ntlm.c \ http_proxy.c http.c http2.c idn_win32.c if2ip.c imap.c inet_ntop.c \ inet_pton.c krb5.c ldap.c llist.c md4.c md5.c memdebug.c mime.c mprintf.c \ multi.c netrc.c non-ascii.c nonblock.c nwlib.c nwos.c openldap.c parsedate.c \ - pingpong.c pipeline.c pop3.c progress.c rand.c rtsp.c security.c select.c \ + pingpong.c pipeline.c pop3.c progress.c psl.c rand.c rtsp.c security.c select.c \ sendf.c setopt.c sha256.c share.c slist.c smb.c smtp.c socks.c socks_gssapi.c \ socks_sspi.c speedcheck.c splay.c ssh.c ssh-libssh.c strcase.c strdup.c \ strerror.c strtok.c strtoofft.c system_win32.c telnet.c tftp.c timeval.c \ - transfer.c url.c version.c warnless.c wildcard.c x509asn1.c vtls/axtls.c \ + transfer.c url.c urlapi.c version.c warnless.c wildcard.c x509asn1.c \ vtls/cyassl.c vtls/darwinssl.c vtls/gskit.c vtls/gtls.c vtls/mbedtls.c \ vtls/nss.c vtls/openssl.c vtls/polarssl_threadlock.c vtls/polarssl.c \ - vtls/schannel_verify.c vtls/schannel.c vtls/vtls.c vauth/cleartext.c \ + vtls/schannel_verify.c vtls/schannel.c vtls/vtls.c vtls/mesalink.c vauth/cleartext.c \ vauth/cram.c vauth/digest.c vauth/digest_sspi.c vauth/krb5_gssapi.c \ vauth/krb5_sspi.c vauth/ntlm_sspi.c vauth/ntlm.c vauth/oauth2.c \ vauth/spnego_gssapi.c vauth/spnego_sspi.c vauth/vauth.c diff --git a/openssl b/openssl index 3ce7bc4..b34cf4e 160000 --- a/openssl +++ b/openssl @@ -1 +1 @@ -Subproject commit 3ce7bc40a3c48da1c96c2d04c10045bd797c6aa3 +Subproject commit b34cf4eb616446a1ee7bd0db0a625edf25047342 diff --git a/prebuilt-with-ssl/android/arm64-v8a/libcurl.a b/prebuilt-with-ssl/android/arm64-v8a/libcurl.a index 078682a..aa5a89c 100644 Binary files a/prebuilt-with-ssl/android/arm64-v8a/libcurl.a and b/prebuilt-with-ssl/android/arm64-v8a/libcurl.a differ diff --git a/prebuilt-with-ssl/android/armeabi-v7a/libcurl.a b/prebuilt-with-ssl/android/armeabi-v7a/libcurl.a index 58e81fb..8766dc2 100644 Binary files a/prebuilt-with-ssl/android/armeabi-v7a/libcurl.a and b/prebuilt-with-ssl/android/armeabi-v7a/libcurl.a differ diff --git a/prebuilt-with-ssl/android/include/Makefile.in b/prebuilt-with-ssl/android/include/Makefile.in index b575358..6d149d0 100644 --- a/prebuilt-with-ssl/android/include/Makefile.in +++ b/prebuilt-with-ssl/android/include/Makefile.in @@ -89,7 +89,7 @@ build_triplet = @build@ host_triplet = @host@ subdir = include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compile_check_sizeof.m4 \ $(top_srcdir)/m4/curl-compilers.m4 \ $(top_srcdir)/m4/curl-confopts.m4 \ $(top_srcdir)/m4/curl-functions.m4 \ @@ -202,6 +202,7 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ +AR_FLAGS = @AR_FLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -212,12 +213,6 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ -CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ -CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ -CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ -CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ -CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ -CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -260,7 +255,6 @@ ENABLE_STATIC = @ENABLE_STATIC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCOV = @GCOV@ -GENHTML = @GENHTML@ GREP = @GREP@ HAVE_BROTLI = @HAVE_BROTLI@ HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ @@ -327,7 +321,6 @@ STRIP = @STRIP@ SUPPORT_FEATURES = @SUPPORT_FEATURES@ SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ USE_ARES = @USE_ARES@ -USE_AXTLS = @USE_AXTLS@ USE_CYASSL = @USE_CYASSL@ USE_DARWINSSL = @USE_DARWINSSL@ USE_GNUTLS = @USE_GNUTLS@ @@ -336,6 +329,7 @@ USE_LIBRTMP = @USE_LIBRTMP@ USE_LIBSSH = @USE_LIBSSH@ USE_LIBSSH2 = @USE_LIBSSH2@ USE_MBEDTLS = @USE_MBEDTLS@ +USE_MESALINK = @USE_MESALINK@ USE_NGHTTP2 = @USE_NGHTTP2@ USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ diff --git a/prebuilt-with-ssl/android/include/README b/prebuilt-with-ssl/android/include/README index c2589ec..091ef76 100644 --- a/prebuilt-with-ssl/android/include/README +++ b/prebuilt-with-ssl/android/include/README @@ -14,20 +14,5 @@ of environment. You must include files from here using... ... style and point the compiler's include path to the directory holding the curl subdirectory. It makes it more likely to survive future modifications. -NOTE FOR LIBCURL HACKERS - -* If you check out from git on a non-configure platform, you must run the - appropriate buildconf* script to set up files before being able of compiling - the library. - -* We cannot assume anything else but very basic compiler features being - present. While libcurl requires an ANSI C compiler to build, some of the - earlier ANSI compilers clearly can't deal with some preprocessor operators. - -* Newlines must remain unix-style for older compilers' sake. - -* Comments must be written in the old-style /* unnested C-fashion */ - -To figure out how to do good and portable checks for features, operating -systems or specific hardwarare, a very good resource is Bjorn Reese's -collection at https://sourceforge.net/p/predef/wiki/ +The public curl include files can be shared freely between different platforms +and different architectures. diff --git a/prebuilt-with-ssl/android/include/curl/Makefile.am b/prebuilt-with-ssl/android/include/curl/Makefile.am index 989d4a2..16d97e1 100644 --- a/prebuilt-with-ssl/android/include/curl/Makefile.am +++ b/prebuilt-with-ssl/android/include/curl/Makefile.am @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. +# Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -20,8 +20,8 @@ # ########################################################################### pkginclude_HEADERS = \ - curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ - typecheck-gcc.h system.h + curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ + typecheck-gcc.h system.h urlapi.h pkgincludedir= $(includedir)/curl diff --git a/prebuilt-with-ssl/android/include/curl/Makefile.in b/prebuilt-with-ssl/android/include/curl/Makefile.in index a338667..b8aeeae 100644 --- a/prebuilt-with-ssl/android/include/curl/Makefile.in +++ b/prebuilt-with-ssl/android/include/curl/Makefile.in @@ -89,7 +89,7 @@ build_triplet = @build@ host_triplet = @host@ subdir = include/curl ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_compile_check_sizeof.m4 \ $(top_srcdir)/m4/curl-compilers.m4 \ $(top_srcdir)/m4/curl-confopts.m4 \ $(top_srcdir)/m4/curl-functions.m4 \ @@ -189,6 +189,7 @@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ +AR_FLAGS = @AR_FLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ @@ -199,12 +200,6 @@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_CURL_SYMBOL_HIDING = @CFLAG_CURL_SYMBOL_HIDING@ -CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ -CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ -CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ -CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ -CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@ -CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ CONFIGURE_OPTIONS = @CONFIGURE_OPTIONS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ @@ -247,7 +242,6 @@ ENABLE_STATIC = @ENABLE_STATIC@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCOV = @GCOV@ -GENHTML = @GENHTML@ GREP = @GREP@ HAVE_BROTLI = @HAVE_BROTLI@ HAVE_GNUTLS_SRP = @HAVE_GNUTLS_SRP@ @@ -314,7 +308,6 @@ STRIP = @STRIP@ SUPPORT_FEATURES = @SUPPORT_FEATURES@ SUPPORT_PROTOCOLS = @SUPPORT_PROTOCOLS@ USE_ARES = @USE_ARES@ -USE_AXTLS = @USE_AXTLS@ USE_CYASSL = @USE_CYASSL@ USE_DARWINSSL = @USE_DARWINSSL@ USE_GNUTLS = @USE_GNUTLS@ @@ -323,6 +316,7 @@ USE_LIBRTMP = @USE_LIBRTMP@ USE_LIBSSH = @USE_LIBSSH@ USE_LIBSSH2 = @USE_LIBSSH2@ USE_MBEDTLS = @USE_MBEDTLS@ +USE_MESALINK = @USE_MESALINK@ USE_NGHTTP2 = @USE_NGHTTP2@ USE_NSS = @USE_NSS@ USE_OPENLDAP = @USE_OPENLDAP@ @@ -396,7 +390,7 @@ top_srcdir = @top_srcdir@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. +# Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -411,8 +405,8 @@ top_srcdir = @top_srcdir@ # ########################################################################### pkginclude_HEADERS = \ - curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ - typecheck-gcc.h system.h + curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h \ + typecheck-gcc.h system.h urlapi.h all: all-am diff --git a/prebuilt-with-ssl/android/include/curl/curl.h b/prebuilt-with-ssl/android/include/curl/curl.h index 3fd4ca8..88e1f39 100644 --- a/prebuilt-with-ssl/android/include/curl/curl.h +++ b/prebuilt-with-ssl/android/include/curl/curl.h @@ -145,8 +145,9 @@ typedef enum { CURLSSLBACKEND_WOLFSSL = 7, CURLSSLBACKEND_SCHANNEL = 8, CURLSSLBACKEND_DARWINSSL = 9, - CURLSSLBACKEND_AXTLS = 10, - CURLSSLBACKEND_MBEDTLS = 11 + CURLSSLBACKEND_AXTLS = 10, /* never used since 7.63.0 */ + CURLSSLBACKEND_MBEDTLS = 11, + CURLSSLBACKEND_MESALINK = 12 } curl_sslbackend; /* aliases for library clones and renames */ @@ -354,11 +355,21 @@ typedef int (*curl_seek_callback)(void *instream, signal libcurl to pause sending data on the current transfer. */ #define CURL_READFUNC_PAUSE 0x10000001 +/* Return code for when the trailing headers' callback has terminated + without any errors*/ +#define CURL_TRAILERFUNC_OK 0 +/* Return code for when was an error in the trailing header's list and we + want to abort the request */ +#define CURL_TRAILERFUNC_ABORT 1 + typedef size_t (*curl_read_callback)(char *buffer, size_t size, size_t nitems, void *instream); +typedef int (*curl_trailer_callback)(struct curl_slist **list, + void *userdata); + typedef enum { CURLSOCKTYPE_IPCXN, /* socket created for a specific IP connection */ CURLSOCKTYPE_ACCEPT, /* socket created by accept() call */ @@ -517,8 +528,7 @@ typedef enum { CURLE_UNKNOWN_OPTION, /* 48 - User specified an unknown option */ CURLE_TELNET_OPTION_SYNTAX, /* 49 - Malformed telnet option */ CURLE_OBSOLETE50, /* 50 - NOT USED */ - CURLE_PEER_FAILED_VERIFICATION, /* 51 - peer's certificate or fingerprint - wasn't verified fine */ + CURLE_OBSOLETE51, /* 51 - NOT USED */ CURLE_GOT_NOTHING, /* 52 - when this is a specific error */ CURLE_SSL_ENGINE_NOTFOUND, /* 53 - SSL crypto engine not found */ CURLE_SSL_ENGINE_SETFAILED, /* 54 - can not set SSL crypto engine as @@ -528,7 +538,8 @@ typedef enum { CURLE_OBSOLETE57, /* 57 - NOT IN USE */ CURLE_SSL_CERTPROBLEM, /* 58 - problem with the local certificate */ CURLE_SSL_CIPHER, /* 59 - couldn't use specified cipher */ - CURLE_SSL_CACERT, /* 60 - problem with the CA cert (path?) */ + CURLE_PEER_FAILED_VERIFICATION, /* 60 - peer's certificate or fingerprint + wasn't verified fine */ CURLE_BAD_CONTENT_ENCODING, /* 61 - Unrecognized/bad encoding */ CURLE_LDAP_INVALID_URL, /* 62 - Invalid LDAP URL */ CURLE_FILESIZE_EXCEEDED, /* 63 - Maximum file size exceeded */ @@ -598,6 +609,9 @@ typedef enum { #define CURLOPT_ENCODING CURLOPT_ACCEPT_ENCODING #define CURLE_FTP_WEIRD_SERVER_REPLY CURLE_WEIRD_SERVER_REPLY +/* The following were added in 7.62.0 */ +#define CURLE_SSL_CACERT CURLE_PEER_FAILED_VERIFICATION + /* The following were added in 7.21.5, April 2011 */ #define CURLE_UNKNOWN_TELNET_OPTION CURLE_UNKNOWN_OPTION @@ -691,6 +705,7 @@ typedef enum { * CURLAUTH_NTLM - HTTP NTLM authentication * CURLAUTH_DIGEST_IE - HTTP Digest authentication with IE flavour * CURLAUTH_NTLM_WB - HTTP NTLM authentication delegated to winbind helper + * CURLAUTH_BEARER - HTTP Bearer token authentication * CURLAUTH_ONLY - Use together with a single other type to force no * authentication or just that single type * CURLAUTH_ANY - All fine types set @@ -708,6 +723,7 @@ typedef enum { #define CURLAUTH_NTLM (((unsigned long)1)<<3) #define CURLAUTH_DIGEST_IE (((unsigned long)1)<<4) #define CURLAUTH_NTLM_WB (((unsigned long)1)<<5) +#define CURLAUTH_BEARER (((unsigned long)1)<<6) #define CURLAUTH_ONLY (((unsigned long)1)<<31) #define CURLAUTH_ANY (~CURLAUTH_DIGEST_IE) #define CURLAUTH_ANYSAFE (~(CURLAUTH_BASIC|CURLAUTH_DIGEST_IE)) @@ -798,6 +814,9 @@ typedef enum { this value, keep them in sync. */ #define CURL_HET_DEFAULT 200L +/* The default connection upkeep interval in milliseconds. */ +#define CURL_UPKEEP_INTERVAL_DEFAULT 60000L + #ifndef CURL_NO_OLDIES /* define this to test if your app builds with all the obsolete stuff removed! */ @@ -1847,6 +1866,34 @@ typedef enum { /* shuffle addresses before use when DNS returns multiple */ CINIT(DNS_SHUFFLE_ADDRESSES, LONG, 275), + /* Specify which TLS 1.3 ciphers suites to use */ + CINIT(TLS13_CIPHERS, STRINGPOINT, 276), + CINIT(PROXY_TLS13_CIPHERS, STRINGPOINT, 277), + + /* Disallow specifying username/login in URL. */ + CINIT(DISALLOW_USERNAME_IN_URL, LONG, 278), + + /* DNS-over-HTTPS URL */ + CINIT(DOH_URL, STRINGPOINT, 279), + + /* Preferred buffer size to use for uploads */ + CINIT(UPLOAD_BUFFERSIZE, LONG, 280), + + /* Time in ms between connection upkeep calls for long-lived connections. */ + CINIT(UPKEEP_INTERVAL_MS, LONG, 281), + + /* Specify URL using CURL URL API. */ + CINIT(CURLU, OBJECTPOINT, 282), + + /* add trailing data just after no more data is available */ + CINIT(TRAILERFUNCTION, FUNCTIONPOINT, 283), + + /* pointer to be passed to HTTP_TRAILER_FUNCTION */ + CINIT(TRAILERDATA, OBJECTPOINT, 284), + + /* set this to 1L to allow HTTP/0.9 responses or 0L to disallow */ + CINIT(HTTP09_ALLOWED, LONG, 285), + CURLOPT_LASTENTRY /* the last unused */ } CURLoption; @@ -2527,7 +2574,17 @@ typedef enum { CURLINFO_SCHEME = CURLINFO_STRING + 49, /* Fill in new entries below here! */ - CURLINFO_LASTONE = 49 + /* Preferably these would be defined conditionally based on the + sizeof curl_off_t being 64-bits */ + CURLINFO_TOTAL_TIME_T = CURLINFO_OFF_T + 50, + CURLINFO_NAMELOOKUP_TIME_T = CURLINFO_OFF_T + 51, + CURLINFO_CONNECT_TIME_T = CURLINFO_OFF_T + 52, + CURLINFO_PRETRANSFER_TIME_T = CURLINFO_OFF_T + 53, + CURLINFO_STARTTRANSFER_TIME_T = CURLINFO_OFF_T + 54, + CURLINFO_REDIRECT_TIME_T = CURLINFO_OFF_T + 55, + CURLINFO_APPCONNECT_TIME_T = CURLINFO_OFF_T + 56, + + CURLINFO_LASTONE = 56 } CURLINFO; /* CURLINFO_RESPONSE_CODE is the new name for the option previously known as @@ -2570,6 +2627,7 @@ typedef enum { CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_SSL_SESSION, CURL_LOCK_DATA_CONNECT, + CURL_LOCK_DATA_PSL, CURL_LOCK_DATA_LAST } curl_lock_data; @@ -2759,6 +2817,7 @@ CURL_EXTERN CURLcode curl_easy_pause(CURL *handle, int bitmask); stuff before they can be included! */ #include "easy.h" /* nothing in curl is fun without the easy stuff */ #include "multi.h" +#include "urlapi.h" /* the typechecker doesn't work in C++ (yet) */ #if defined(__GNUC__) && defined(__GNUC_MINOR__) && \ diff --git a/prebuilt-with-ssl/android/include/curl/curlver.h b/prebuilt-with-ssl/android/include/curl/curlver.h index 26f2371..a6ceb34 100644 --- a/prebuilt-with-ssl/android/include/curl/curlver.h +++ b/prebuilt-with-ssl/android/include/curl/curlver.h @@ -30,12 +30,12 @@ /* This is the version number of the libcurl package from which this header file origins: */ -#define LIBCURL_VERSION "7.60.0-DEV" +#define LIBCURL_VERSION "7.64.0-DEV" /* The numeric version number is also available "in parts" by using these defines: */ #define LIBCURL_VERSION_MAJOR 7 -#define LIBCURL_VERSION_MINOR 60 +#define LIBCURL_VERSION_MINOR 64 #define LIBCURL_VERSION_PATCH 0 /* This is the numeric version of the libcurl version number, meant for easier @@ -57,7 +57,7 @@ CURL_VERSION_BITS() macro since curl's own configure script greps for it and needs it to contain the full number. */ -#define LIBCURL_VERSION_NUM 0x073C00 +#define LIBCURL_VERSION_NUM 0x074000 /* * This is the date and time when the full source package was created. The diff --git a/prebuilt-with-ssl/android/include/curl/easy.h b/prebuilt-with-ssl/android/include/curl/easy.h index 752c504..f42a8a9 100644 --- a/prebuilt-with-ssl/android/include/curl/easy.h +++ b/prebuilt-with-ssl/android/include/curl/easy.h @@ -95,6 +95,16 @@ CURL_EXTERN CURLcode curl_easy_recv(CURL *curl, void *buffer, size_t buflen, CURL_EXTERN CURLcode curl_easy_send(CURL *curl, const void *buffer, size_t buflen, size_t *n); + +/* + * NAME curl_easy_upkeep() + * + * DESCRIPTION + * + * Performs connection upkeep for the given session handle. + */ +CURL_EXTERN CURLcode curl_easy_upkeep(CURL *curl); + #ifdef __cplusplus } #endif diff --git a/prebuilt-with-ssl/android/include/curl/system.h b/prebuilt-with-ssl/android/include/curl/system.h index eac4cfe..1e555ec 100644 --- a/prebuilt-with-ssl/android/include/curl/system.h +++ b/prebuilt-with-ssl/android/include/curl/system.h @@ -298,7 +298,7 @@ # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 -#elif defined(__SUNPRO_C) /* Oracle Solaris Studio */ +#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) /* Oracle Solaris Studio */ # if !defined(__LP64) && (defined(__ILP32) || \ defined(__i386) || \ defined(__sparcv8) || \ @@ -320,6 +320,24 @@ # define CURL_PULL_SYS_TYPES_H 1 # define CURL_PULL_SYS_SOCKET_H 1 +#elif defined(__xlc__) /* IBM xlc compiler */ +# if !defined(_LP64) +# define CURL_TYPEOF_CURL_OFF_T long long +# define CURL_FORMAT_CURL_OFF_T "lld" +# define CURL_FORMAT_CURL_OFF_TU "llu" +# define CURL_SUFFIX_CURL_OFF_T LL +# define CURL_SUFFIX_CURL_OFF_TU ULL +# else +# define CURL_TYPEOF_CURL_OFF_T long +# define CURL_FORMAT_CURL_OFF_T "ld" +# define CURL_FORMAT_CURL_OFF_TU "lu" +# define CURL_SUFFIX_CURL_OFF_T L +# define CURL_SUFFIX_CURL_OFF_TU UL +# endif +# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t +# define CURL_PULL_SYS_TYPES_H 1 +# define CURL_PULL_SYS_SOCKET_H 1 + /* ===================================== */ /* KEEP MSVC THE PENULTIMATE ENTRY */ /* ===================================== */ @@ -344,7 +362,7 @@ /* KEEP GENERIC GCC THE LAST ENTRY */ /* ===================================== */ -#elif defined(__GNUC__) +#elif defined(__GNUC__) && !defined(_SCO_DS) # if !defined(__LP64__) && \ (defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \ defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \ diff --git a/prebuilt-with-ssl/android/include/curl/typecheck-gcc.h b/prebuilt-with-ssl/android/include/curl/typecheck-gcc.h index 3a0f253..01df7b1 100644 --- a/prebuilt-with-ssl/android/include/curl/typecheck-gcc.h +++ b/prebuilt-with-ssl/android/include/curl/typecheck-gcc.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -269,6 +269,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, (option) == CURLOPT_DNS_LOCAL_IP4 || \ (option) == CURLOPT_DNS_LOCAL_IP6 || \ (option) == CURLOPT_DNS_SERVERS || \ + (option) == CURLOPT_DOH_URL || \ (option) == CURLOPT_EGDSOCKET || \ (option) == CURLOPT_FTPPORT || \ (option) == CURLOPT_FTP_ACCOUNT || \ @@ -362,6 +363,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, (option) == CURLOPT_SSL_CTX_DATA || \ (option) == CURLOPT_WRITEDATA || \ (option) == CURLOPT_RESOLVER_START_DATA || \ + (option) == CURLOPT_CURLU || \ 0) /* evaluates to true if option takes a POST data argument (void* or char*) */ @@ -428,7 +430,7 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, * == or whatsoever. */ -/* XXX: should evaluate to true iff expr is a pointer */ +/* XXX: should evaluate to true if expr is a pointer */ #define _curl_is_any_ptr(expr) \ (sizeof(expr) == sizeof(void *)) @@ -500,7 +502,8 @@ _CURL_WARNING(_curl_easy_getinfo_err_curl_off_t, /* evaluates to true if expr can be passed as POST data (void* or char*) */ #define _curl_is_postfields(expr) \ (_curl_is_ptr((expr), void) || \ - _curl_is_arr((expr), char)) + _curl_is_arr((expr), char) || \ + _curl_is_arr((expr), unsigned char)) /* FIXME: the whole callback checking is messy... * The idea is to tolerate char vs. void and const vs. not const diff --git a/prebuilt-with-ssl/android/include/curl/urlapi.h b/prebuilt-with-ssl/android/include/curl/urlapi.h new file mode 100644 index 0000000..850faa9 --- /dev/null +++ b/prebuilt-with-ssl/android/include/curl/urlapi.h @@ -0,0 +1,122 @@ +#ifndef __CURL_URLAPI_H +#define __CURL_URLAPI_H +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) 2018 - 2019, Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.haxx.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ***************************************************************************/ + +#include "curl.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* the error codes for the URL API */ +typedef enum { + CURLUE_OK, + CURLUE_BAD_HANDLE, /* 1 */ + CURLUE_BAD_PARTPOINTER, /* 2 */ + CURLUE_MALFORMED_INPUT, /* 3 */ + CURLUE_BAD_PORT_NUMBER, /* 4 */ + CURLUE_UNSUPPORTED_SCHEME, /* 5 */ + CURLUE_URLDECODE, /* 6 */ + CURLUE_OUT_OF_MEMORY, /* 7 */ + CURLUE_USER_NOT_ALLOWED, /* 8 */ + CURLUE_UNKNOWN_PART, /* 9 */ + CURLUE_NO_SCHEME, /* 10 */ + CURLUE_NO_USER, /* 11 */ + CURLUE_NO_PASSWORD, /* 12 */ + CURLUE_NO_OPTIONS, /* 13 */ + CURLUE_NO_HOST, /* 14 */ + CURLUE_NO_PORT, /* 15 */ + CURLUE_NO_QUERY, /* 16 */ + CURLUE_NO_FRAGMENT /* 17 */ +} CURLUcode; + +typedef enum { + CURLUPART_URL, + CURLUPART_SCHEME, + CURLUPART_USER, + CURLUPART_PASSWORD, + CURLUPART_OPTIONS, + CURLUPART_HOST, + CURLUPART_PORT, + CURLUPART_PATH, + CURLUPART_QUERY, + CURLUPART_FRAGMENT +} CURLUPart; + +#define CURLU_DEFAULT_PORT (1<<0) /* return default port number */ +#define CURLU_NO_DEFAULT_PORT (1<<1) /* act as if no port number was set, + if the port number matches the + default for the scheme */ +#define CURLU_DEFAULT_SCHEME (1<<2) /* return default scheme if + missing */ +#define CURLU_NON_SUPPORT_SCHEME (1<<3) /* allow non-supported scheme */ +#define CURLU_PATH_AS_IS (1<<4) /* leave dot sequences */ +#define CURLU_DISALLOW_USER (1<<5) /* no user+password allowed */ +#define CURLU_URLDECODE (1<<6) /* URL decode on get */ +#define CURLU_URLENCODE (1<<7) /* URL encode on set */ +#define CURLU_APPENDQUERY (1<<8) /* append a form style part */ +#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */ + +typedef struct Curl_URL CURLU; + +/* + * curl_url() creates a new CURLU handle and returns a pointer to it. + * Must be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url(void); + +/* + * curl_url_cleanup() frees the CURLU handle and related resources used for + * the URL parsing. It will not free strings previously returned with the URL + * API. + */ +CURL_EXTERN void curl_url_cleanup(CURLU *handle); + +/* + * curl_url_dup() duplicates a CURLU handle and returns a new copy. The new + * handle must also be freed with curl_url_cleanup(). + */ +CURL_EXTERN CURLU *curl_url_dup(CURLU *in); + +/* + * curl_url_get() extracts a specific part of the URL from a CURLU + * handle. Returns error code. The returned pointer MUST be freed with + * curl_free() afterwards. + */ +CURL_EXTERN CURLUcode curl_url_get(CURLU *handle, CURLUPart what, + char **part, unsigned int flags); + +/* + * curl_url_set() sets a specific part of the URL in a CURLU handle. Returns + * error code. The passed in string will be copied. Passing a NULL instead of + * a part string, clears that part. + */ +CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what, + const char *part, unsigned int flags); + + +#ifdef __cplusplus +} /* end of extern "C" */ +#endif + +#endif diff --git a/prebuilt-with-ssl/android/x86/libcurl.a b/prebuilt-with-ssl/android/x86/libcurl.a index 37ebab2..0cd7324 100644 Binary files a/prebuilt-with-ssl/android/x86/libcurl.a and b/prebuilt-with-ssl/android/x86/libcurl.a differ diff --git a/prebuilt-with-ssl/android/x86_64/libcurl.a b/prebuilt-with-ssl/android/x86_64/libcurl.a index 2b58a68..57e9f53 100644 Binary files a/prebuilt-with-ssl/android/x86_64/libcurl.a and b/prebuilt-with-ssl/android/x86_64/libcurl.a differ