Commit b8f943cb authored by Rye Mutt's avatar Rye Mutt 🍞
Browse files

vendor source version 7.66.0

--HG--
branch : vendor
parent ed59bf69
This diff is collapsed.
......@@ -62,6 +62,7 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--cflags" "gssapi"
OUTPUT_VARIABLE _GSS_CFLAGS
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "CFLAGS: ${_GSS_CFLAGS}")
if(NOT _GSS_CONFIGURE_FAILED) # 0 means success
......@@ -84,6 +85,7 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--libs" "gssapi"
OUTPUT_VARIABLE _GSS_LIB_FLAGS
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "LDFLAGS: ${_GSS_LIB_FLAGS}")
......@@ -110,6 +112,7 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--version"
OUTPUT_VARIABLE _GSS_VERSION
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# older versions may not have the "--version" parameter. In this case we just don't care.
......@@ -121,6 +124,7 @@ if(NOT _GSS_FOUND) #not found by pkg-config. Let's take more traditional approac
COMMAND ${_GSS_CONFIGURE_SCRIPT} "--vendor"
OUTPUT_VARIABLE _GSS_VENDOR
RESULT_VARIABLE _GSS_CONFIGURE_FAILED
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# older versions may not have the "--vendor" parameter. In this case we just don't care.
......
......@@ -260,7 +260,7 @@ if(ENABLE_THREADED_RESOLVER)
endif()
# Check for all needed libraries
check_library_exists_concat("dl" dlopen HAVE_LIBDL)
check_library_exists_concat("${CMAKE_DL_LIBS}" dlopen HAVE_LIBDL)
check_library_exists_concat("socket" connect HAVE_LIBSOCKET)
check_library_exists("c" gethostbyname "" NOT_NEED_LIBNSL)
......@@ -860,6 +860,7 @@ check_symbol_exists(strlcat "${CURL_INCLUDES}" HAVE_STRLCAT)
check_symbol_exists(getpwuid "${CURL_INCLUDES}" HAVE_GETPWUID)
check_symbol_exists(getpwuid_r "${CURL_INCLUDES}" HAVE_GETPWUID_R)
check_symbol_exists(geteuid "${CURL_INCLUDES}" HAVE_GETEUID)
check_symbol_exists(usleep "${CURL_INCLUDES}" HAVE_USLEEP)
check_symbol_exists(utime "${CURL_INCLUDES}" HAVE_UTIME)
check_symbol_exists(gmtime_r "${CURL_INCLUDES}" HAVE_GMTIME_R)
check_symbol_exists(localtime_r "${CURL_INCLUDES}" HAVE_LOCALTIME_R)
......
......@@ -154,9 +154,20 @@ VC_DIST = projects/README \
WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/MakefileBuild.vc winbuild/Makefile.vc
PLAN9_DIST = plan9/include/mkfile \
plan9/include/mkfile \
plan9/mkfile.proto \
plan9/mkfile \
plan9/BUILD.PLAN9.txt \
plan9/lib/mkfile.inc \
plan9/lib/mkfile \
plan9/src/mkfile.inc \
plan9/src/mkfile
EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
scripts/updatemanpages.pl $(CMAKE_DIST) \
$(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
......
......@@ -436,8 +436,12 @@ USE_LIBSSH2 = @USE_LIBSSH2@
USE_MBEDTLS = @USE_MBEDTLS@
USE_MESALINK = @USE_MESALINK@
USE_NGHTTP2 = @USE_NGHTTP2@
USE_NGHTTP3 = @USE_NGHTTP3@
USE_NGTCP2 = @USE_NGTCP2@
USE_NGTCP2_CRYPTO_OPENSSL = @USE_NGTCP2_CRYPTO_OPENSSL@
USE_NSS = @USE_NSS@
USE_OPENLDAP = @USE_OPENLDAP@
USE_QUICHE = @USE_QUICHE@
USE_SCHANNEL = @USE_SCHANNEL@
USE_SECTRANSP = @USE_SECTRANSP@
USE_UNIX_SOCKETS = @USE_UNIX_SOCKETS@
......@@ -624,9 +628,20 @@ VC_DIST = projects/README \
WINBUILD_DIST = winbuild/BUILD.WINDOWS.txt winbuild/gen_resp_file.bat \
winbuild/MakefileBuild.vc winbuild/Makefile.vc
PLAN9_DIST = plan9/include/mkfile \
plan9/include/mkfile \
plan9/mkfile.proto \
plan9/mkfile \
plan9/BUILD.PLAN9.txt \
plan9/lib/mkfile.inc \
plan9/lib/mkfile \
plan9/src/mkfile.inc \
plan9/src/mkfile
EXTRA_DIST = CHANGES COPYING maketgz Makefile.dist curl-config.in \
RELEASE-NOTES buildconf libcurl.pc.in MacOSX-Framework \
scripts/updatemanpages.pl $(CMAKE_DIST) $(VC_DIST) $(WINBUILD_DIST) \
scripts/updatemanpages.pl $(CMAKE_DIST) \
$(VC_DIST) $(WINBUILD_DIST) $(PLAN9_DIST) \
lib/libcurl.vers.in buildconf.bat scripts/coverage.sh scripts/completion.pl
CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
......@@ -656,6 +671,9 @@ LIB_VTLS_HFILES = vtls/openssl.h vtls/vtls.h vtls/gtls.h \
vtls/wolfssl.h vtls/schannel.h vtls/sectransp.h vtls/gskit.h \
vtls/mbedtls.h vtls/mesalink.h
LIB_VQUIC_CFILES = vquic/ngtcp2.c vquic/quiche.c
LIB_VQUIC_HFILES = vquic/ngtcp2.h vquic/quiche.h
LIB_VSSH_CFILES = vssh/libssh2.c vssh/libssh.c
LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c \
ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c \
......@@ -665,7 +683,7 @@ LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c \
http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c \
strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c \
inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c \
ssh.c ssh-libssh.c curl_addrinfo.c socks_gssapi.c socks_sspi.c \
curl_addrinfo.c socks_gssapi.c socks_sspi.c \
curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c \
pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c \
openldap.c curl_gethostname.c gopher.c idn_win32.c \
......@@ -695,11 +713,15 @@ LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h \
curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h \
curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h \
curl_get_line.h altsvc.h
curl_get_line.h altsvc.h quic.h
LIB_RCFILES = libcurl.rc
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES)
HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES)
CSOURCES = $(LIB_CFILES) $(LIB_VAUTH_CFILES) $(LIB_VTLS_CFILES) \
$(LIB_VQUIC_CFILES) $(LIB_VSSH_CFILES)
HHEADERS = $(LIB_HFILES) $(LIB_VAUTH_HFILES) $(LIB_VTLS_HFILES) \
$(LIB_VQUIC_HFILES)
# libcurl has sources that provide functions named curlx_* that aren't part of
# the official API, but we re-use the code here to avoid duplication.
......@@ -748,6 +770,7 @@ CURL_CFILES = \
tool_panykey.c \
tool_paramhlp.c \
tool_parsecfg.c \
tool_progress.c \
tool_strdup.c \
tool_setopt.c \
tool_sleep.c \
......@@ -789,6 +812,7 @@ CURL_HFILES = \
tool_panykey.h \
tool_paramhlp.h \
tool_parsecfg.h \
tool_progress.h \
tool_sdecls.h \
tool_setopt.h \
tool_setup.h \
......
curl and libcurl 7.65.3
curl and libcurl 7.66.0
Public curl releases: 184
Command line options: 221
curl_easy_setopt() options: 268
Public functions in libcurl: 80
Public curl releases: 185
Command line options: 225
curl_easy_setopt() options: 269
Public functions in libcurl: 81
Contributors: 1991
This release includes the following changes:
o CURLINFO_RETRY_AFTER: parse the Retry-After header value [35]
o HTTP3: initial (experimental still not working) support [5]
o curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool [27]
o curl: support parallel transfers with -Z [4]
o curl_multi_poll: a sister to curl_multi_wait() that waits more [28]
o sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID [27]
This release includes the following bugfixes:
o progress: make the progress meter appear again [1]
o CVE-2019-5481: FTP-KRB double-free [64]
o CVE-2019-5482: TFTP small blocksize heap buffer overflow [65]
o CI: remove duplicate configure flag for LGTM.com
o CMake: remove needless newlines at end of gss variables
o CMake: use platform dependent name for dlopen() library [62]
o CURLINFO docs: mention that in redirects times are added [55]
o CURLOPT_ALTSVC.3: use a "" file name to not load from a file
o CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
o CURLOPT_HEADERFUNCTION.3: clarify [54]
o CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly [33]
o CURLOPT_READFUNCTION.3: provide inline example
o CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2 [51]
o Curl_addr2string: take an addrlen argument too [61]
o Curl_fillreadbuffer: avoid double-free trailer buf on error [66]
o HTTP: use chunked Transfer-Encoding for HTTP_POST if size unknown [10]
o alt-svc: add protocol version selection masking [31]
o alt-svc: fix removal of expired cache entry [30]
o alt-svc: make it use h3-22 with ngtcp2 as well
o alt-svc: more liberal ALPN name parsing [17]
o alt-svc: send Alt-Used: in redirected requests [32]
o alt-svc: with quiche, use the quiche h3 alpn string [16]
o appveyor: pass on -k to make
o asyn-thread: create a socketpair to wait on [14]
o build-openssl: fix build with Visual Studio 2019 [45]
o cleanup: move functions out of url.c and make them static [58]
o cleanup: remove the 'numsocks' argument used in many places [25]
o configure: avoid undefined check_for_ca_bundle [37]
o curl.h: add CURL_HTTP_VERSION_3 to the version enum
o curl.h: fix outdated comment [23]
o curl: cap the maximum allowed values for retry time arguments [13]
o curl: handle a libcurl build without netrc support [63]
o curl: make use of CURLINFO_RETRY_AFTER when retrying [35]
o curl: remove outdated comment [24]
o curl: use .curlrc (with a dot) on Windows [52]
o curl: use CURLINFO_PROTOCOL to check for HTTP(s)
o curl_global_init_mem.3: mention it was added in 7.12.0
o curl_version: bump string buffer size to 250
o curl_version_info.3: mentioned ALTSVC and HTTP3
o curl_version_info: offer quic (and h3) library info [38]
o curl_version_info: provide nghttp2 details [2]
o defines: avoid underscore-prefixed defines [47]
o docs/ALTSVC: remove what works and the experimental explanation [34]
o docs/EXPERIMENTAL: explain what it means and what's experimental now
o docs/MANUAL.md: converted to markdown from plain text [3]
o docs/examples/curlx: fix errors [48]
o docs: s/curl_debug/curl_dbg_debug in comments and docs [36]
o easy: resize receive buffer on easy handle reset [9]
o examples: Avoid reserved names in hiperfifo examples [8]
o examples: add http3.c, altsvc.c and http3-present.c [40]
o getenv: support up to 4K environment variable contents on windows [21]
o http09: disable HTTP/0.9 by default in both tool and library [29]
o http2: when marked for closure and wanted to close == OK [56]
o http2_recv: trigger another read when the last data is returned [11]
o http: fix use of credentials from URL when using HTTP proxy [44]
o http_negotiate: improve handling of gss_init_sec_context() failures [18]
o md4: Use our own MD4 when no crypto libraries are available [15]
o multi: call detach_connection before Curl_disconnect [6]
o netrc: make the code try ".netrc" on Windows [52]
o nss: use TLSv1.3 as default if supported [39]
o openssl: build warning free with boringssl [50]
o openssl: use SSL_CTX_set_<min|max>_proto_version() when available [68]
o plan9: add support for running on Plan 9 [22]
o progress: reset download/uploaded counter between transfers [12]
o readwrite_data: repair setting the TIMER_STARTTRANSFER stamp [26]
o scp: fix directory name length used in memcpy [46]
o smb: init *msg to NULL in smb_send_and_recv() [60]
o smtp: check for and bail out on too short EHLO response [59]
o source: remove names from source comments [1]
o spnego_sspi: add typecast to fix build warning [49]
o src/makefile: fix uncompressed hugehelp.c generation [19]
o ssh-libssh: do not specify O_APPEND when not in append mode [7]
o ssh: move code into vssh for SSH backends [53]
o sspi: fix memory leaks [67]
o tests: Replace outdated test case numbering documentation [43]
o tftp: return error when packet is too small for options
o timediff: make it 64 bit (if possible) even with 32 bit time_t [20]
o travis: reduce number of torture tests in 'coverage' [42]
o url: make use of new HTTP version if alt-svc has one [16]
o urlapi: verify the IPv6 numerical address [69]
o urldata: avoid 'generic', use dedicated pointers [57]
o vauth: Use CURLE_AUTH_ERROR for auth function errors [41]
This release includes the following known bugs:
......@@ -17,11 +106,89 @@ This release includes the following known bugs:
This release would not have looked like this without help, code, reports and
advice from friends like these:
Chih-Hsuan Yen, Daniel Stenberg,
(2 contributors)
Alessandro Ghedini, Alex Mayorga, Amit Katyal, Balazs Kovacsics,
Brad Spencer, Brandon Dong, Carlo Marcelo Arenas Belón, Christopher Head,
Clément Notin, codesniffer13 on github, Daniel Gustafsson, Daniel Stenberg,
Dominik Hölzl, Eric Wong, Felix Hädicke, Gergely Nagy, Gisle Vanem,
Igor Makarov, Ironbars13 on github, Jason Lee, Jeremy Lainé,
Jonathan Cardoso Machado, Junho Choi, Kamil Dudka, Kyle Abramowitz,
Kyohei Kadota, Lance Ware, Marcel Raad, Max Dymond, Michael Lee,
Michal Čaplygin, migueljcrum on github, Mike Crowe, niallor on github,
osabc on github, patnyb on github, Patrick Monnerat, Peter Wu, Ray Satiro,
Rolf Eike Beer, Steve Holme, Tatsuhiro Tsujikawa, The Infinnovation team,
Thomas Vegas, Tom van der Woerdt, Yiming Jing,
(46 contributors)
Thanks! (and sorry if I forgot to mention someone)
References to bug reports and discussions on issues:
[1] = https://curl.haxx.se/bug/?i=4122
[1] = https://curl.haxx.se/bug/?i=4129
[2] = https://curl.haxx.se/bug/?i=4121
[3] = https://curl.haxx.se/bug/?i=4131
[4] = https://curl.haxx.se/bug/?i=3804
[5] = https://curl.haxx.se/bug/?i=3500
[6] = https://curl.haxx.se/bug/?i=4144
[7] = https://curl.haxx.se/bug/?i=4147
[8] = https://curl.haxx.se/bug/?i=4153
[9] = https://curl.haxx.se/bug/?i=4143
[10] = https://curl.haxx.se/bug/?i=4138
[11] = https://curl.haxx.se/bug/?i=4043
[12] = https://curl.haxx.se/bug/?i=4084
[13] = https://curl.haxx.se/bug/?i=4166
[14] = https://curl.haxx.se/bug/?i=4157
[15] = https://curl.haxx.se/bug/?i=3780
[16] = https://curl.haxx.se/bug/?i=4183
[17] = https://curl.haxx.se/bug/?i=4182
[18] = https://curl.haxx.se/bug/?i=3992
[19] = https://curl.haxx.se/bug/?i=4176
[20] = https://curl.haxx.se/bug/?i=4165
[21] = https://curl.haxx.se/bug/?i=4174
[22] = https://curl.haxx.se/bug/?i=3701
[23] = https://curl.haxx.se/bug/?i=4167
[24] = https://curl.haxx.se/bug/?i=4172
[25] = https://curl.haxx.se/bug/?i=4169
[26] = https://curl.haxx.se/bug/?i=4136
[27] = https://curl.haxx.se/bug/?i=3653
[28] = https://curl.haxx.se/bug/?i=4163
[29] = https://curl.haxx.se/bug/?i=4191
[30] = https://curl.haxx.se/bug/?i=4192
[31] = https://curl.haxx.se/bug/?i=4201
[32] = https://curl.haxx.se/bug/?i=4199
[33] = https://curl.haxx.se/bug/?i=4197
[34] = https://curl.haxx.se/bug/?i=4198
[35] = https://curl.haxx.se/bug/?i=3794
[36] = https://curl.haxx.se/bug/?i=3794
[37] = https://curl.haxx.se/bug/?i=4213
[38] = https://curl.haxx.se/bug/?i=4216
[39] = https://curl.haxx.se/bug/?i=4187
[40] = https://curl.haxx.se/bug/?i=4221
[41] = https://curl.haxx.se/bug/?i=3848
[42] = https://curl.haxx.se/bug/?i=4223
[43] = https://curl.haxx.se/bug/?i=4227
[44] = https://curl.haxx.se/bug/?i=4228
[45] = https://curl.haxx.se/bug/?i=4188
[46] = https://curl.haxx.se/bug/?i=4258
[47] = https://curl.haxx.se/bug/?i=4254
[48] = https://curl.haxx.se/bug/?i=4248
[49] = https://curl.haxx.se/bug/?i=4245
[50] = https://curl.haxx.se/bug/?i=4244
[51] = https://curl.haxx.se/bug/?i=4241
[52] = https://curl.haxx.se/bug/?i=4230
[53] = https://curl.haxx.se/bug/?i=4235
[54] = https://curl.haxx.se/bug/?i=4273
[55] = https://curl.haxx.se/bug/?i=4250
[56] = https://curl.haxx.se/bug/?i=4267
[57] = https://curl.haxx.se/bug/?i=4290
[58] = https://curl.haxx.se/bug/?i=4289
[59] = https://curl.haxx.se/bug/?i=4287
[60] = https://curl.haxx.se/bug/?i=4286
[61] = https://curl.haxx.se/bug/?i=4283
[62] = https://curl.haxx.se/bug/?i=4279
[63] = https://curl.haxx.se/bug/?i=4302
[64] = https://curl.haxx.se/docs/CVE-2019-5481.html
[65] = https://curl.haxx.se/docs/CVE-2019-5482.html
[66] = https://curl.haxx.se/bug/?i=4307
[67] = https://curl.haxx.se/bug/?i=4299
[68] = https://curl.haxx.se/bug/?i=4304
[69] = https://curl.haxx.se/bug/?i=4315
This diff is collapsed.
......@@ -2633,7 +2633,7 @@ dnl **********************************************************************
dnl Check for the CA bundle
dnl **********************************************************************
if test "$check_for_ca_bundle" -gt 0; then
if test -n "$check_for_ca_bundle"; then
CURL_CHECK_CA_BUNDLE
fi
......@@ -3337,6 +3337,331 @@ if test X"$want_h2" != Xno; then
fi
dnl **********************************************************************
dnl Check for ngtcp2 (QUIC)
dnl **********************************************************************
OPT_TCP2="yes"
curl_h3_msg="disabled (--with-ngtcp2, --with-quiche)"
if test "x$disable_http" = "xyes"; then
# without HTTP, ngtcp2 is no use
OPT_TCP2="no"
fi
AC_ARG_WITH(ngtcp2,
AC_HELP_STRING([--with-ngtcp2=PATH],[Enable ngtcp2 usage])
AC_HELP_STRING([--without-ngtcp2],[Disable ngtcp2 usage]),
[OPT_TCP2=$withval])
case "$OPT_TCP2" in
no)
dnl --without-ngtcp2 option used
want_tcp2="no"
;;
yes)
dnl --with-ngtcp2 option used without path
want_tcp2="default"
want_tcp2_path=""
;;
*)
dnl --with-ngtcp2 option used with path
want_tcp2="yes"
want_tcp2_path="$withval/lib/pkgconfig"
;;
esac
curl_tcp2_msg="disabled (--with-ngtcp2)"
if test X"$want_tcp2" != Xno; then
dnl backup the pre-ngtcp2 variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
CURL_CHECK_PKGCONFIG(libngtcp2, $want_tcp2_path)
if test "$PKGCONFIG" != "no" ; then
LIB_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path])
$PKGCONFIG --libs-only-l libngtcp2`
AC_MSG_NOTICE([-l is $LIB_TCP2])
CPP_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path]) dnl
$PKGCONFIG --cflags-only-I libngtcp2`
AC_MSG_NOTICE([-I is $CPP_TCP2])
LD_TCP2=`CURL_EXPORT_PCDIR([$want_tcp2_path])
$PKGCONFIG --libs-only-L libngtcp2`
AC_MSG_NOTICE([-L is $LD_TCP2])
LDFLAGS="$LDFLAGS $LD_TCP2"
CPPFLAGS="$CPPFLAGS $CPP_TCP2"
LIBS="$LIB_TCP2 $LIBS"
if test "x$cross_compiling" != "xyes"; then
DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/-L//'`
fi
AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new,
[
AC_CHECK_HEADERS(ngtcp2/ngtcp2.h,
NGTCP2_ENABLED=1
AC_DEFINE(USE_NGTCP2, 1, [if ngtcp2 is in use])
AC_SUBST(USE_NGTCP2, [1])
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_TCP2"
export CURL_LIBRARY_PATH
AC_MSG_NOTICE([Added $DIR_TCP2 to CURL_LIBRARY_PATH])
)
],
dnl not found, revert back to clean variables
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
)
else
dnl no ngtcp2 pkg-config found, deal with it
if test X"$want_tcp2" != Xdefault; then
dnl To avoid link errors, we do not allow --with-ngtcp2 without
dnl a pkgconfig file
AC_MSG_ERROR([--with-ngtcp2 was specified but could not find ngtcp2 pkg-config file.])
fi
fi
fi
if test "x$NGTCP2_ENABLED" = "x1"; then
dnl backup the pre-ngtcp2_crypto_openssl variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
CURL_CHECK_PKGCONFIG(libngtcp2_crypto_openssl, $want_tcp2_path)
if test "$PKGCONFIG" != "no" ; then
LIB_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path])
$PKGCONFIG --libs-only-l libngtcp2_crypto_openssl`
AC_MSG_NOTICE([-l is $LIB_NGTCP2_CRYPTO_OPENSSL])
CPP_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path]) dnl
$PKGCONFIG --cflags-only-I libngtcp2_crypto_openssl`
AC_MSG_NOTICE([-I is $CPP_NGTCP2_CRYPTO_OPENSSL])
LD_NGTCP2_CRYPTO_OPENSSL=`CURL_EXPORT_PCDIR([$want_tcp2_path])
$PKGCONFIG --libs-only-L libngtcp2_crypto_openssl`
AC_MSG_NOTICE([-L is $LD_NGTCP2_CRYPTO_OPENSSL])
LDFLAGS="$LDFLAGS $LD_NGTCP2_CRYPTO_OPENSSL"
CPPFLAGS="$CPPFLAGS $CPP_NGTCP2_CRYPTO_OPENSSL"
LIBS="$LIB_NGTCP2_CRYPTO_OPENSSL $LIBS"
if test "x$cross_compiling" != "xyes"; then
DIR_NGTCP2_CRYPTO_OPENSSL=`echo $LD_NGTCP2_CRYPTO_OPENSSL | $SED -e 's/-L//'`
fi
AC_CHECK_LIB(ngtcp2_crypto_openssl, ngtcp2_crypto_ctx_initial,
[
AC_CHECK_HEADERS(ngtcp2/ngtcp2_crypto.h,
NGTCP2_ENABLED=1
AC_DEFINE(USE_NGTCP2_CRYPTO_OPENSSL, 1, [if ngtcp2_crypto_openssl is in use])
AC_SUBST(USE_NGTCP2_CRYPTO_OPENSSL, [1])
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGTCP2_CRYPTO_OPENSSL"
export CURL_LIBRARY_PATH
AC_MSG_NOTICE([Added $DIR_NGTCP2_CRYPTO_OPENSSL to CURL_LIBRARY_PATH])
)
],
dnl not found, revert back to clean variables
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
)
else
dnl no ngtcp2_crypto_openssl pkg-config found, deal with it
if test X"$want_tcp2" != Xdefault; then
dnl To avoid link errors, we do not allow --with-ngtcp2 without
dnl a pkgconfig file
AC_MSG_ERROR([--with-ngtcp2 was specified but could not find ngtcp2_crypto_openssl pkg-config file.])
fi
fi
fi
dnl **********************************************************************
dnl Check for nghttp3 (HTTP/3 with ngtcp2)
dnl **********************************************************************
OPT_NGHTTP3="yes"
if test "x$NGTCP2_ENABLED" = "x"; then
# without ngtcp2, nghttp3 is of no use for us
OPT_NGHTTP3="no"
fi
AC_ARG_WITH(nghttp3,
AC_HELP_STRING([--with-nghttp3=PATH],[Enable nghttp3 usage])
AC_HELP_STRING([--without-nghttp3],[Disable nghttp3 usage]),
[OPT_NGHTTP3=$withval])
case "$OPT_NGHTTP3" in
no)
dnl --without-nghttp3 option used
want_nghttp3="no"
;;
yes)
dnl --with-nghttp3 option used without path
want_nghttp3="default"
want_nghttp3_path=""
;;
*)
dnl --with-nghttp3 option used with path
want_nghttp3="yes"
want_nghttp3_path="$withval/lib/pkgconfig"
;;
esac
curl_http3_msg="disabled (--with-nghttp3)"
if test X"$want_nghttp3" != Xno; then
dnl backup the pre-nghttp3 variables
CLEANLDFLAGS="$LDFLAGS"
CLEANCPPFLAGS="$CPPFLAGS"
CLEANLIBS="$LIBS"
CURL_CHECK_PKGCONFIG(libnghttp3, $want_nghttp3_path)
if test "$PKGCONFIG" != "no" ; then
LIB_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path])
$PKGCONFIG --libs-only-l libnghttp3`
AC_MSG_NOTICE([-l is $LIB_NGHTTP3])
CPP_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path]) dnl
$PKGCONFIG --cflags-only-I libnghttp3`
AC_MSG_NOTICE([-I is $CPP_NGHTTP3])
LD_NGHTTP3=`CURL_EXPORT_PCDIR([$want_nghttp3_path])
$PKGCONFIG --libs-only-L libnghttp3`
AC_MSG_NOTICE([-L is $LD_NGHTTP3])
LDFLAGS="$LDFLAGS $LD_NGHTTP3"
CPPFLAGS="$CPPFLAGS $CPP_NGHTTP3"
LIBS="$LIB_NGHTTP3 $LIBS"
if test "x$cross_compiling" != "xyes"; then
DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/-L//'`
fi
AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new,
[
AC_CHECK_HEADERS(nghttp3/nghttp3.h,
curl_h3_msg="enabled (ngtcp2 + nghttp3)"
NGHTTP3_ENABLED=1
AC_DEFINE(USE_NGHTTP3, 1, [if nghttp3 is in use])
AC_SUBST(USE_NGHTTP3, [1])
CURL_LIBRARY_PATH="$CURL_LIBRARY_PATH:$DIR_NGHTTP3"
export CURL_LIBRARY_PATH
AC_MSG_NOTICE([Added $DIR_NGHTTP3 to CURL_LIBRARY_PATH])
experimental="$experimental HTTP3"
)
],
dnl not found, revert back to clean variables
LDFLAGS=$CLEANLDFLAGS
CPPFLAGS=$CLEANCPPFLAGS
LIBS=$CLEANLIBS
)
else
dnl no nghttp3 pkg-config found, deal with it
if test X"$want_nghttp3" != Xdefault; then
dnl To avoid link errors, we do not allow --with-nghttp3 without
dnl a pkgconfig file
AC_MSG_ERROR([--with-nghttp3 was specified but could not find nghttp3 pkg-config file.])
fi
fi
fi
dnl **********************************************************************
dnl Check for quiche (QUIC)
dnl **********************************************************************
OPT_QUICHE="yes"
if test "x$disable_http" = "xyes" -o "x$USE_NGTCP" = "x1"; then
# without HTTP or with ngtcp2, quiche is no use
OPT_QUICHE="no"
fi
AC_ARG_WITH(quiche,
AC_HELP_STRING([--with-quiche=PATH],[Enable quiche usage])
AC_HELP_STRING([--without-quiche],[Disable quiche usage]),
[OPT_QUICHE=$withval])
case "$OPT_QUICHE" in
no)
dnl --without-quiche option used
want_quiche="no"
;;
yes)
dnl --with-quiche option used without path
want_quiche="default"
want_quiche_path=""
;;
*)
dnl --with-quiche option used with path
want_quiche="yes"
want_quiche_path="$withval"
;;
esac
if test X"$want_quiche" != Xno; then
dnl backup the pre-quiche variables