]> granicus.if.org Git - curl/log
curl
5 years agocleanup: remove DOT_CHAR completely
Daniel Stenberg [Tue, 20 Aug 2019 11:22:15 +0000 (13:22 +0200)]
cleanup: remove DOT_CHAR completely

Follow-up to f9c7ba9096ec

The use of DOT_CHAR for ".ssh" was probably a mistake and is removed
now.

Pointed-out-by: Gisle Vanem
Bug: https://github.com/curl/curl/pull/4230#issuecomment-522960638

Closes #4247

5 years agospnego_sspi: add typecast to fix build warning
Daniel Stenberg [Tue, 20 Aug 2019 09:44:18 +0000 (11:44 +0200)]
spnego_sspi: add typecast to fix build warning

Reported in build "Win32 target on Debian Stretch (64-bit) -
i686-w64-mingw32 - gcc-20170516"

Closes #4245

5 years agoopenssl: build warning free with boringssl
Daniel Stenberg [Tue, 20 Aug 2019 09:30:25 +0000 (11:30 +0200)]
openssl: build warning free with boringssl

Closes #4244

5 years agocurl: make --libcurl use CURL_HTTP_VERSION_3
Daniel Stenberg [Tue, 20 Aug 2019 09:10:28 +0000 (11:10 +0200)]
curl: make --libcurl use CURL_HTTP_VERSION_3

Closes #4243

5 years agongtcp2: make postfields-set posts work
Daniel Stenberg [Tue, 20 Aug 2019 09:01:36 +0000 (11:01 +0200)]
ngtcp2: make postfields-set posts work

Closes #4242

5 years agohttp: remove chunked-encoding and expect header use for HTTP/3
Daniel Stenberg [Tue, 20 Aug 2019 07:59:28 +0000 (09:59 +0200)]
http: remove chunked-encoding and expect header use for HTTP/3

5 years agoconfigure: use pkg-config to detect quiche
Alessandro Ghedini [Sun, 18 Aug 2019 14:03:51 +0000 (15:03 +0100)]
configure: use pkg-config to detect quiche

This removes the need to hard-code the quiche target path in
configure.ac.

This depends on https://github.com/cloudflare/quiche/pull/128

Closes #4237

5 years agoCURLOPT_SSL_VERIFYHOST: treat the value 1 as 2
Daniel Stenberg [Tue, 20 Aug 2019 07:13:55 +0000 (09:13 +0200)]
CURLOPT_SSL_VERIFYHOST: treat the value 1 as 2

For a long time (since 7.28.1) we've returned error when setting the
value to 1 to make applications notice that we stopped supported the old
behavior for 1. Starting now, we treat 1 and 2 exactly the same.

Closes #4241

5 years agocurl: use .curlrc (with a dot) on Windows as well
Daniel Stenberg [Fri, 16 Aug 2019 09:31:29 +0000 (11:31 +0200)]
curl: use .curlrc (with a dot) on Windows as well

Fall-back to _curlrc if the dot-version is missing.

Co-Authored-By: Steve Holme
Closes #4230

5 years agonetrc: make the code try ".netrc" on Windows as well
Daniel Stenberg [Fri, 16 Aug 2019 09:30:29 +0000 (11:30 +0200)]
netrc: make the code try ".netrc" on Windows as well

... but fall back and try "_netrc" too if the dot version didn't work.

Co-Authored-By: Steve Holme
5 years agongtcp2: use ngtcp2_version() to get the run-time version
Daniel Stenberg [Mon, 19 Aug 2019 21:04:45 +0000 (23:04 +0200)]
ngtcp2: use ngtcp2_version() to get the run-time version

... which of course doesn't have to be the same used at build-time.

Function just recently merged in ngtcp2.

5 years agongtcp2: move the h3 initing to immediately after the rx key
Daniel Stenberg [Tue, 20 Aug 2019 06:49:56 +0000 (08:49 +0200)]
ngtcp2: move the h3 initing to immediately after the rx key

To fix a segfault and to better deal with 0-RTT

Assisted-by: Tatsuhiro Tsujikawa
5 years agoquiche: register debug callback once and earlier
Alessandro Ghedini [Sat, 17 Aug 2019 14:04:33 +0000 (15:04 +0100)]
quiche: register debug callback once and earlier

The quiche debug callback is global and can only be initialized once, so
make sure we don't do it multiple times (e.g. if multiple requests are
executed).

In addition this initializes the callback before the connection is
created, so we get logs for the handshake as well.

Closes #4236

5 years agossh: add a generic Curl_ssh_version function for SSH backends
Daniel Stenberg [Fri, 16 Aug 2019 13:32:05 +0000 (15:32 +0200)]
ssh: add a generic Curl_ssh_version function for SSH backends

Closes #4235

5 years agobase64: check for SSH, not specific SSH backends
Daniel Stenberg [Fri, 16 Aug 2019 14:19:43 +0000 (16:19 +0200)]
base64: check for SSH, not specific SSH backends

5 years agovssh: move ssh init/cleanup functions into backend code
Daniel Stenberg [Fri, 16 Aug 2019 14:16:33 +0000 (16:16 +0200)]
vssh: move ssh init/cleanup functions into backend code

5 years agovssh: create directory for SSH backend code
Daniel Stenberg [Fri, 16 Aug 2019 14:01:42 +0000 (16:01 +0200)]
vssh: create directory for SSH backend code

5 years agoTODO/ROADMAP: remove "refuse downgrade redirects" and HTTP/3
Daniel Stenberg [Fri, 16 Aug 2019 21:18:45 +0000 (23:18 +0200)]
TODO/ROADMAP: remove "refuse downgrade redirects" and HTTP/3

HTTP3 is now already in full progress

Downgrade redirects can be achived almost exactly like that by setting
CURLOPT_REDIR_PROTOCOLS.

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 15 Aug 2019 21:00:42 +0000 (23:00 +0200)]
RELEASE-NOTES: synced

5 years agotravis: add a quiche build
Daniel Stenberg [Sat, 10 Aug 2019 21:28:57 +0000 (23:28 +0200)]
travis: add a quiche build

Closes #4207

5 years agohttp: fix use of credentials from URL when using HTTP proxy
Daniel Stenberg [Thu, 15 Aug 2019 15:50:02 +0000 (17:50 +0200)]
http: fix use of credentials from URL when using HTTP proxy

When a username and password are provided in the URL, they were wrongly
removed from the stored URL so that subsequent uses of the same URL
wouldn't find the crendentials. This made doing HTTP auth with multiple
connections (like Digest) mishave.

Regression from 46e164069d1a5230 (7.62.0)

Test case 335 added to verify.

Reported-by: Mike Crowe
Fixes #4228
Closes #4229

5 years agotests: Replace outdated test case numbering documentation
Mike Crowe [Thu, 15 Aug 2019 15:06:38 +0000 (16:06 +0100)]
tests: Replace outdated test case numbering documentation

Tests are no longer grouped by numeric range[1]. Let's stop saying that
and provide some alternative advice for numbering tests.

[1] https://curl.haxx.se/mail/lib-2019-08/0043.html

Closes #4227

5 years agotravis: reduce number of torture tests in 'coverage'
Daniel Stenberg [Tue, 13 Aug 2019 16:06:16 +0000 (18:06 +0200)]
travis: reduce number of torture tests in 'coverage'

... to make it complete in time. This cut seems not almost not affect
the coverage percentage and yet completes within 35 minutes on travis
where the previous runs recently always timed out after 50.

Closes #4223

5 years agoconfigure: use -lquiche to link to quiche
Igor Makarov [Thu, 15 Aug 2019 12:29:34 +0000 (15:29 +0300)]
configure: use -lquiche to link to quiche

Closes #4226

5 years agongtcp2: provide the callbacks as a static struct
Daniel Stenberg [Thu, 15 Aug 2019 08:20:35 +0000 (10:20 +0200)]
ngtcp2: provide the callbacks as a static struct

... instead of having them in quicsocket

5 years agongtcp2: add missing nghttp3_conn_add_write_offset call
Tatsuhiro Tsujikawa [Thu, 15 Aug 2019 05:53:24 +0000 (14:53 +0900)]
ngtcp2: add missing nghttp3_conn_add_write_offset call

Closes #4225

5 years agongtcp2: deal with stream close
Tatsuhiro Tsujikawa [Thu, 15 Aug 2019 05:52:56 +0000 (14:52 +0900)]
ngtcp2: deal with stream close

5 years agongtcp2: Consume QUIC STREAM data properly
Tatsuhiro Tsujikawa [Thu, 15 Aug 2019 05:52:09 +0000 (14:52 +0900)]
ngtcp2: Consume QUIC STREAM data properly

5 years agongtcp2: don't reinitialize SSL on Retry
Tatsuhiro Tsujikawa [Thu, 15 Aug 2019 05:50:48 +0000 (14:50 +0900)]
ngtcp2: don't reinitialize SSL on Retry

5 years agomulti: getsock improvements for QUIC connecting
Daniel Stenberg [Tue, 13 Aug 2019 06:41:53 +0000 (08:41 +0200)]
multi: getsock improvements for QUIC connecting

5 years agoconnect: connections are persistent by default for HTTP/3
Daniel Stenberg [Mon, 12 Aug 2019 21:56:07 +0000 (23:56 +0200)]
connect: connections are persistent by default for HTTP/3

5 years agoquiche: happy eyeballs
Daniel Stenberg [Mon, 12 Aug 2019 20:29:42 +0000 (22:29 +0200)]
quiche: happy eyeballs

Closes #4220

5 years agongtcp2: do QUIC connections happy-eyeballs friendly
Daniel Stenberg [Mon, 12 Aug 2019 14:28:28 +0000 (16:28 +0200)]
ngtcp2: do QUIC connections happy-eyeballs friendly

5 years agocurl_version: bump string buffer size to 250
Daniel Stenberg [Wed, 14 Aug 2019 13:16:07 +0000 (15:16 +0200)]
curl_version: bump string buffer size to 250

With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which
causes a truncated output).

5 years agoCURLOPT_ALTSVC.3: use a "" file name to not load from a file
Daniel Stenberg [Wed, 14 Aug 2019 12:42:11 +0000 (14:42 +0200)]
CURLOPT_ALTSVC.3: use a "" file name to not load from a file

5 years agovauth: Use CURLE_AUTH_ERROR for auth function errors
Jay Satiro [Sat, 11 May 2019 06:23:09 +0000 (02:23 -0400)]
vauth: Use CURLE_AUTH_ERROR for auth function errors

- Add new error code CURLE_AUTH_ERROR.

Prior to this change auth function errors were signaled by
CURLE_OUT_OF_MEMORY and CURLE_RECV_ERROR, and neither one was
technically correct.

Ref: https://github.com/curl/curl/pull/3848

Co-authored-by: Dominik Hölzl
Closes https://github.com/curl/curl/pull/3864

5 years agocurl_version_info: make the quic_version a const
Daniel Stenberg [Tue, 13 Aug 2019 14:58:18 +0000 (16:58 +0200)]
curl_version_info: make the quic_version a const

Follow-up from 1a2df1518ad8653f

Closes #4222

5 years agoexamples: add http3.c, altsvc.c and http3-present.c
Daniel Stenberg [Tue, 13 Aug 2019 09:24:50 +0000 (11:24 +0200)]
examples: add http3.c, altsvc.c and http3-present.c

Closes #4221

5 years agonss: use TLSv1.3 as default if supported
Peter Wu [Sat, 3 Aug 2019 15:53:42 +0000 (16:53 +0100)]
nss: use TLSv1.3 as default if supported

SSL_VersionRangeGetDefault returns (TLSv1.0, TLSv1.2) as supported
range in NSS 3.45. It looks like the intention is to raise the minimum
version rather than lowering the maximum, so adjust accordingly. Note
that the caller (nss_setup_connect) initializes the version range to
(TLSv1.0, TLSv1.3), so there is no need to check for >= TLSv1.0 again.

Closes #4187
Reviewed-by: Daniel Stenberg
Reviewed-by: Kamil Dudka
5 years agoquic.h: remove unused proto
Daniel Stenberg [Tue, 13 Aug 2019 13:09:07 +0000 (15:09 +0200)]
quic.h: remove unused proto

5 years agocurl_version_info.3: mentioned ALTSVC and HTTP3
Daniel Stenberg [Tue, 13 Aug 2019 12:10:20 +0000 (14:10 +0200)]
curl_version_info.3: mentioned ALTSVC and HTTP3

... and sorted the list alphabetically

5 years agolib/quic.c: unused - removed
Daniel Stenberg [Tue, 13 Aug 2019 10:41:04 +0000 (12:41 +0200)]
lib/quic.c: unused - removed

5 years agoCURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED
Daniel Stenberg [Tue, 13 Aug 2019 09:19:14 +0000 (11:19 +0200)]
CURLOPT_ALTSVC_CTRL.3: remove CURLALTSVC_ALTUSED

Follow-up to 98c3f148 that removed it from the header file

5 years agodocs/HTTP3: simplify quiche build instruction
Junho Choi [Mon, 12 Aug 2019 18:40:32 +0000 (11:40 -0700)]
docs/HTTP3: simplify quiche build instruction

Use --recursive to get boringssl in one line

Closes #4219

5 years agoaltsvc: make it use h3-22 with ngtcp2 as well
Daniel Stenberg [Mon, 12 Aug 2019 10:19:59 +0000 (12:19 +0200)]
altsvc: make it use h3-22 with ngtcp2 as well

5 years agongtcp2: initial h3 request work
Daniel Stenberg [Mon, 12 Aug 2019 09:10:56 +0000 (11:10 +0200)]
ngtcp2: initial h3 request work

Closes #4217

5 years agocurl_version_info: offer quic (and h3) library info
Daniel Stenberg [Mon, 12 Aug 2019 08:04:50 +0000 (10:04 +0200)]
curl_version_info: offer quic (and h3) library info

Closes #4216

5 years agoHTTP3: use ngtcp2's draft-22 branch
Daniel Stenberg [Mon, 12 Aug 2019 10:45:16 +0000 (12:45 +0200)]
HTTP3: use ngtcp2's draft-22 branch

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Mon, 12 Aug 2019 08:06:05 +0000 (10:06 +0200)]
RELEASE-NOTES: synced

5 years agoCURLOPT_READFUNCTION.3: provide inline example
Daniel Stenberg [Mon, 12 Aug 2019 07:20:04 +0000 (09:20 +0200)]
CURLOPT_READFUNCTION.3: provide inline example

... instead of mentioning one in another place

5 years agongtcp2: send HTTP/3 request with nghttp3
Tatsuhiro Tsujikawa [Mon, 12 Aug 2019 04:09:44 +0000 (13:09 +0900)]
ngtcp2: send HTTP/3 request with nghttp3

This commit makes sending HTTP/3 request with nghttp3 work.  It
minimally receives HTTP response and calls nghttp3 callbacks, but no
processing is made at the moment.

Closes #4215

5 years agonghttp3: initial h3 template code added
Daniel Stenberg [Sun, 11 Aug 2019 21:50:11 +0000 (23:50 +0200)]
nghttp3: initial h3 template code added

5 years agonghttp3: required when ngtcp2 is used for QUIC
Daniel Stenberg [Sat, 10 Aug 2019 21:19:55 +0000 (23:19 +0200)]
nghttp3: required when ngtcp2 is used for QUIC

- checked for by configure
- updated docs/HTTP3.md
- shown in the version string

Closes #4210

5 years agoasyn-thread: issue CURL_POLL_REMOVE before closing socket
Eric Wong [Sat, 10 Aug 2019 21:20:23 +0000 (21:20 +0000)]
asyn-thread: issue CURL_POLL_REMOVE before closing socket

This avoids EBADF errors from EPOLL_CTL_DEL operations in the
ephiperfifo.c example.  EBADF is dangerous in multi-threaded
applications where I rely on epoll_ctl to operate on the same
epoll description from different threads.

Follow-up to eb9a604f8d7db8

Bug: https://curl.haxx.se/mail/lib-2019-08/0026.html
Closes #4211

5 years agoconfigure: avoid undefined check_for_ca_bundle
Carlo Marcelo Arenas Belón [Sun, 11 Aug 2019 02:14:01 +0000 (19:14 -0700)]
configure: avoid undefined check_for_ca_bundle

instead of using a "greater than 0" test, check for variable being
set, as it is always set to 1, and could be left unset if non of
OPENSSL MBEDTLS GNUTLS WOLFSSL is being configured for.

Closes #4213

5 years agongtcp2: Send ALPN h3-22
Tatsuhiro Tsujikawa [Sun, 11 Aug 2019 01:49:03 +0000 (10:49 +0900)]
ngtcp2: Send ALPN h3-22

Closes #4212

5 years agongtcp2: use ngtcp2_settings_default and specify initial_ts
Tatsuhiro Tsujikawa [Sun, 11 Aug 2019 01:48:34 +0000 (10:48 +0900)]
ngtcp2: use ngtcp2_settings_default and specify initial_ts

5 years agocurl_global_init_mem.3: mention it was added in 7.12.0
Daniel Stenberg [Sat, 10 Aug 2019 22:19:45 +0000 (00:19 +0200)]
curl_global_init_mem.3: mention it was added in 7.12.0

5 years agongtcp2: make the QUIC handshake work
Tatsuhiro Tsujikawa [Sat, 10 Aug 2019 08:06:50 +0000 (17:06 +0900)]
ngtcp2: make the QUIC handshake work

Closes #4209

5 years agoHTTP3.md: Update quiche build instructions
Alex Mayorga [Sat, 10 Aug 2019 05:57:04 +0000 (00:57 -0500)]
HTTP3.md: Update quiche build instructions

Added cloning for quiche and BoringSSL and modified the build
instructions so they work on a clean folder.

Closes #4208

5 years agoCURLOPT_H3: removed
Daniel Stenberg [Fri, 9 Aug 2019 09:17:02 +0000 (11:17 +0200)]
CURLOPT_H3: removed

There's no use for this anymore and it was never in a release.

Closes #4206

5 years agohttp3: make connection reuse work
Daniel Stenberg [Thu, 8 Aug 2019 21:13:57 +0000 (23:13 +0200)]
http3: make connection reuse work

Closes #4204

5 years agoquiche: add SSLKEYLOGFILE support
Daniel Stenberg [Fri, 9 Aug 2019 10:23:18 +0000 (12:23 +0200)]
quiche: add SSLKEYLOGFILE support

5 years agocleanup: s/curl_debug/curl_dbg_debug in comments and docs
Daniel Stenberg [Thu, 8 Aug 2019 12:51:01 +0000 (14:51 +0200)]
cleanup: s/curl_debug/curl_dbg_debug in comments and docs

Leftovers from the function rename back in 76b63489495

Reported-by: Gisle Vanem
Bug: https://github.com/curl/curl/commit/f3e0f071b14fcb46a453f69bdf4e062bcaacf362#com
mitcomment-34601751

Closes #4203

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Thu, 8 Aug 2019 07:58:52 +0000 (09:58 +0200)]
RELEASE-NOTES: synced

5 years agoalt-svc: add protocol version selection masking
Daniel Stenberg [Wed, 7 Aug 2019 18:10:27 +0000 (20:10 +0200)]
alt-svc: add protocol version selection masking

So that users can mask in/out specific HTTP versions when Alt-Svc is
used.

 - Removed "h2c" and updated test case accordingly
 - Changed how the altsvc struct is laid out
 - Added ifdefs to make the unittest run even in a quiche-tree

Closes #4201

5 years agohttp3: fix the HTTP/3 in the request, make alt-svc set right versions
Daniel Stenberg [Wed, 7 Aug 2019 17:30:53 +0000 (19:30 +0200)]
http3: fix the HTTP/3 in the request, make alt-svc set right versions

Closes #4200

5 years agoalt-svc: send Alt-Used: in redirected requests
Daniel Stenberg [Wed, 7 Aug 2019 18:43:18 +0000 (20:43 +0200)]
alt-svc: send Alt-Used: in redirected requests

RFC 7838 section 5:

   When using an alternative service, clients SHOULD include an Alt-Used
   header field in all requests.

Removed CURLALTSVC_ALTUSED again (feature is still EXPERIMENTAL thus
this is deemed ok).

You can disable sending this header just like you disable any other HTTP
header in libcurl.

Closes #4199

5 years agoCURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly
Daniel Stenberg [Wed, 7 Aug 2019 12:17:48 +0000 (14:17 +0200)]
CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directly

Even though it cannot fall-back to a lower HTTP version automatically. The
safer way to upgrade remains via CURLOPT_ALTSVC.

CURLOPT_H3 no longer has any bits that do anything and might be removed
before we remove the experimental label.

Updated the curl tool accordingly to use "--http3".

Closes #4197

5 years agodocs/ALTSVC: remove what works and the experimental explanation
Daniel Stenberg [Wed, 7 Aug 2019 12:52:28 +0000 (14:52 +0200)]
docs/ALTSVC: remove what works and the experimental explanation

Also, put the TODO items at the bottom.

Closes #4198

5 years agodocs/EXPERIMENTAL: explain what it means and what's experimental now
Daniel Stenberg [Wed, 7 Aug 2019 12:52:02 +0000 (14:52 +0200)]
docs/EXPERIMENTAL: explain what it means and what's experimental now

5 years agocurl: make use of CURLINFO_RETRY_AFTER when retrying
Daniel Stenberg [Tue, 6 Aug 2019 09:57:02 +0000 (11:57 +0200)]
curl: make use of CURLINFO_RETRY_AFTER when retrying

If a Retry-After: header was used in the response, that value overrides
other retry timing options.

Fixes #3794
Closes #4195

5 years agocurl: use CURLINFO_PROTOCOL to check for HTTP(s)
Daniel Stenberg [Tue, 6 Aug 2019 09:49:03 +0000 (11:49 +0200)]
curl: use CURLINFO_PROTOCOL to check for HTTP(s)

... instead of CURLINFO_EFFECTIVE_URL to avoid string operations.

5 years agoCURLINFO_RETRY_AFTER: parse the Retry-After header value
Daniel Stenberg [Tue, 6 Aug 2019 09:30:08 +0000 (11:30 +0200)]
CURLINFO_RETRY_AFTER: parse the Retry-After header value

This is only the libcurl part that provides the information. There's no
user of the parsed value. This change includes three new tests for the
parser.

Ref: #3794

5 years agodocs/ALTSVC.md: first basic file format description
Daniel Stenberg [Wed, 7 Aug 2019 12:18:42 +0000 (14:18 +0200)]
docs/ALTSVC.md: first basic file format description

5 years agocurl: have -w's 'http_version' show '3' for HTTP/3
Daniel Stenberg [Wed, 7 Aug 2019 07:52:14 +0000 (09:52 +0200)]
curl: have -w's 'http_version' show '3' for HTTP/3

Closes #4196

5 years agocurl.h: add CURL_HTTP_VERSION_3 to the version enum
Daniel Stenberg [Wed, 7 Aug 2019 07:49:18 +0000 (09:49 +0200)]
curl.h: add CURL_HTTP_VERSION_3 to the version enum

It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with
CURLINFO_HTTP_VERSION.

5 years agoquiche: make use of the connection timeout API properly
Daniel Stenberg [Wed, 7 Aug 2019 10:49:27 +0000 (12:49 +0200)]
quiche: make use of the connection timeout API properly

5 years agoquiche: make POSTFIELDS posts work
Daniel Stenberg [Wed, 7 Aug 2019 09:04:47 +0000 (11:04 +0200)]
quiche: make POSTFIELDS posts work

5 years agoquiche: improved error handling and memory cleanups
Daniel Stenberg [Wed, 7 Aug 2019 06:39:39 +0000 (08:39 +0200)]
quiche: improved error handling and memory cleanups

5 years agoquiche: flush egress in h3_stream_recv() too
Daniel Stenberg [Wed, 7 Aug 2019 05:48:37 +0000 (07:48 +0200)]
quiche: flush egress in h3_stream_recv() too

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Tue, 6 Aug 2019 21:11:03 +0000 (23:11 +0200)]
RELEASE-NOTES: synced

5 years agoos400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid().
Patrick Monnerat [Thu, 23 May 2019 11:24:53 +0000 (13:24 +0200)]
os400: take care of CURLOPT_SASL_AUTHZID in curl_easy_setopt_ccsid().

Ref: https://github.com/curl/curl/issues/3653
Ref: https://github.com/curl/curl/pull/3790

NOTE: This commit was cherry-picked and is part of a series of commits
that added the authzid feature for upcoming 7.66.0. The series was
temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
patch release.

Closes https://github.com/curl/curl/pull/4186

5 years agotests: Fix the line endings for the SASL alt-auth tests
Jay Satiro [Thu, 23 May 2019 08:01:09 +0000 (04:01 -0400)]
tests: Fix the line endings for the SASL alt-auth tests

- Change data and protocol sections to CRLF line endings.

Prior to this change the tests would fail or hang, which is because
certain sections such as protocol require CRLF line endings.

Follow-up to grandparent commit which added the tests.

Ref: https://github.com/curl/curl/issues/3653
Ref: https://github.com/curl/curl/pull/3790

NOTE: This commit was cherry-picked and is part of a series of commits
that added the authzid feature for upcoming 7.66.0. The series was
temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
patch release.

Closes https://github.com/curl/curl/pull/4186

5 years agoexamples: Added SASL PLAIN authorisation identity (authzid) examples
Steve Holme [Sun, 21 Apr 2019 22:29:57 +0000 (23:29 +0100)]
examples: Added SASL PLAIN authorisation identity (authzid) examples

Ref: https://github.com/curl/curl/issues/3653
Ref: https://github.com/curl/curl/pull/3790

NOTE: This commit was cherry-picked and is part of a series of commits
that added the authzid feature for upcoming 7.66.0. The series was
temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
patch release.

Closes https://github.com/curl/curl/pull/4186

5 years agocurl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool
Steve Holme [Fri, 19 Apr 2019 13:26:47 +0000 (14:26 +0100)]
curl: --sasl-authzid added to support CURLOPT_SASL_AUTHZID from the tool

Ref: https://github.com/curl/curl/issues/3653
Ref: https://github.com/curl/curl/pull/3790

NOTE: This commit was cherry-picked and is part of a series of commits
that added the authzid feature for upcoming 7.66.0. The series was
temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
patch release.

Closes https://github.com/curl/curl/pull/4186

5 years agosasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID
Steve Holme [Wed, 17 Apr 2019 22:47:51 +0000 (23:47 +0100)]
sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZID

Added the ability for the calling program to specify the authorisation
identity (authzid), the identity to act as, in addition to the
authentication identity (authcid) and password when using SASL PLAIN
authentication.

Fixes #3653
Closes #3790

NOTE: This commit was cherry-picked and is part of a series of commits
that added the authzid feature for upcoming 7.66.0. The series was
temporarily reverted in db8ec1f so that it would not ship in a 7.65.x
patch release.

Closes https://github.com/curl/curl/pull/4186

5 years agodocs/HTTP3: refreshed as it is now in master and HTTP/3 can be tested
Daniel Stenberg [Tue, 6 Aug 2019 12:44:30 +0000 (14:44 +0200)]
docs/HTTP3: refreshed as it is now in master and HTTP/3 can be tested

5 years agomesalink: implement client authentication
Yiming Jing [Thu, 1 Aug 2019 22:20:30 +0000 (15:20 -0700)]
mesalink: implement client authentication

Closes #4184

5 years agocurl_multi_poll: a sister to curl_multi_wait() that waits more
Daniel Stenberg [Mon, 29 Jul 2019 11:41:00 +0000 (13:41 +0200)]
curl_multi_poll: a sister to curl_multi_wait() that waits more

Repeatedly we see problems where using curl_multi_wait() is difficult or
just awkward because if it has no file descriptor to wait for
internally, it returns immediately and leaves it to the caller to wait
for a small amount of time in order to avoid occasional busy-looping.

This is often missed or misunderstood, leading to underperforming
applications.

This change introduces curl_multi_poll() as a replacement drop-in
function that accepts the exact same set of arguments. This function
works identically to curl_multi_wait() - EXCEPT - for the case when
there's nothing to wait for internally, as then this function will by
itself wait for a "suitable" short time before it returns. This
effectiely avoids all risks of busy-looping and should also make it less
likely that apps "over-wait".

This also changes the curl tool to use this funtion internally when
doing parallel transfers and changes curl_easy_perform() to use it
internally.

Closes #4163

5 years agoquiche:h3_stream_recv return 0 at end of stream
Daniel Stenberg [Tue, 6 Aug 2019 06:06:58 +0000 (08:06 +0200)]
quiche:h3_stream_recv return 0 at end of stream

... and remove some verbose messages we don't need. Made transfers from
facebook.com work better.

5 years agoaltsvc: make quiche use h3-22 now
Daniel Stenberg [Mon, 5 Aug 2019 21:13:17 +0000 (23:13 +0200)]
altsvc: make quiche use h3-22 now

5 years agoquiche: show the actual version number
Daniel Stenberg [Mon, 5 Aug 2019 21:12:59 +0000 (23:12 +0200)]
quiche: show the actual version number

5 years agoquiche: first working HTTP/3 request
Daniel Stenberg [Mon, 5 Aug 2019 13:17:31 +0000 (15:17 +0200)]
quiche: first working HTTP/3 request

 - enable debug log
 - fix use of quiche API
 - use download buffer
 - separate header/body

Closes #4193

5 years agohttp09: disable HTTP/0.9 by default in both tool and library
Daniel Stenberg [Mon, 5 Aug 2019 07:45:23 +0000 (09:45 +0200)]
http09: disable HTTP/0.9 by default in both tool and library

As the plan has been laid out in DEPRECATED. Update docs accordingly and
verify in test 1174. Now requires the option to be set to allow HTTP/0.9
responses.

Closes #4191

5 years agoquiche: initial h3 request send/receive
Daniel Stenberg [Mon, 5 Aug 2019 08:19:48 +0000 (10:19 +0200)]
quiche: initial h3 request send/receive

5 years agolib/Makefile.am: make checksrc run in vquic too
Daniel Stenberg [Mon, 5 Aug 2019 08:36:29 +0000 (10:36 +0200)]
lib/Makefile.am: make checksrc run in vquic too

5 years agoaltsvc: fix removal of expired cache entry
Daniel Stenberg [Mon, 5 Aug 2019 08:17:10 +0000 (10:17 +0200)]
altsvc: fix removal of expired cache entry

Closes #4192

5 years agoRELEASE-NOTES: synced
Daniel Stenberg [Sun, 4 Aug 2019 21:03:57 +0000 (23:03 +0200)]
RELEASE-NOTES: synced

5 years agomd4: Use our own MD4 implementation when no crypto libraries are available
Steve Holme [Sun, 14 Apr 2019 18:24:28 +0000 (19:24 +0100)]
md4: Use our own MD4 implementation when no crypto libraries are available

Closes #3780