aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2019-08-20ngtcp2: move the h3 initing to immediately after the rx keyDaniel Stenberg
To fix a segfault and to better deal with 0-RTT Assisted-by: Tatsuhiro Tsujikawa
2019-08-17quiche: register debug callback once and earlierAlessandro Ghedini
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
2019-08-17ssh: add a generic Curl_ssh_version function for SSH backendsDaniel Stenberg
Closes #4235
2019-08-17base64: check for SSH, not specific SSH backendsDaniel Stenberg
2019-08-17vssh: move ssh init/cleanup functions into backend codeDaniel Stenberg
2019-08-17vssh: create directory for SSH backend codeDaniel Stenberg
2019-08-16http: fix use of credentials from URL when using HTTP proxyDaniel Stenberg
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
2019-08-15ngtcp2: provide the callbacks as a static structDaniel Stenberg
... instead of having them in quicsocket
2019-08-15ngtcp2: add missing nghttp3_conn_add_write_offset callTatsuhiro Tsujikawa
Closes #4225
2019-08-15ngtcp2: deal with stream closeTatsuhiro Tsujikawa
2019-08-15ngtcp2: Consume QUIC STREAM data properlyTatsuhiro Tsujikawa
2019-08-15ngtcp2: don't reinitialize SSL on RetryTatsuhiro Tsujikawa
2019-08-14multi: getsock improvements for QUIC connectingDaniel Stenberg
2019-08-14connect: connections are persistent by default for HTTP/3Daniel Stenberg
2019-08-14quiche: happy eyeballsDaniel Stenberg
Closes #4220
2019-08-14ngtcp2: do QUIC connections happy-eyeballs friendlyDaniel Stenberg
2019-08-14curl_version: bump string buffer size to 250Daniel Stenberg
With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which causes a truncated output).
2019-08-14vauth: Use CURLE_AUTH_ERROR for auth function errorsJay Satiro
- 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
2019-08-13nss: use TLSv1.3 as default if supportedPeter Wu
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
2019-08-13quic.h: remove unused protoDaniel Stenberg
2019-08-13lib/quic.c: unused - removedDaniel Stenberg
2019-08-12altsvc: make it use h3-22 with ngtcp2 as wellDaniel Stenberg
2019-08-12ngtcp2: initial h3 request workDaniel Stenberg
Closes #4217
2019-08-12curl_version_info: offer quic (and h3) library infoDaniel Stenberg
Closes #4216
2019-08-12ngtcp2: send HTTP/3 request with nghttp3Tatsuhiro Tsujikawa
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
2019-08-12nghttp3: initial h3 template code addedDaniel Stenberg
2019-08-12nghttp3: required when ngtcp2 is used for QUICDaniel Stenberg
- checked for by configure - updated docs/HTTP3.md - shown in the version string Closes #4210
2019-08-11asyn-thread: issue CURL_POLL_REMOVE before closing socketEric Wong
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
2019-08-11ngtcp2: Send ALPN h3-22Tatsuhiro Tsujikawa
Closes #4212
2019-08-11ngtcp2: use ngtcp2_settings_default and specify initial_tsTatsuhiro Tsujikawa
2019-08-10ngtcp2: make the QUIC handshake workTatsuhiro Tsujikawa
Closes #4209
2019-08-09CURLOPT_H3: removedDaniel Stenberg
There's no use for this anymore and it was never in a release. Closes #4206
2019-08-09http3: make connection reuse workDaniel Stenberg
Closes #4204
2019-08-09quiche: add SSLKEYLOGFILE supportDaniel Stenberg
2019-08-08alt-svc: add protocol version selection maskingDaniel Stenberg
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
2019-08-08http3: fix the HTTP/3 in the request, make alt-svc set right versionsDaniel Stenberg
Closes #4200
2019-08-08alt-svc: send Alt-Used: in redirected requestsDaniel Stenberg
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
2019-08-08CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directlyDaniel Stenberg
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
2019-08-07CURLINFO_RETRY_AFTER: parse the Retry-After header valueDaniel Stenberg
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
2019-08-07curl.h: add CURL_HTTP_VERSION_3 to the version enumDaniel Stenberg
It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with CURLINFO_HTTP_VERSION.
2019-08-07quiche: make use of the connection timeout API properlyDaniel Stenberg
2019-08-07quiche: make POSTFIELDS posts workDaniel Stenberg
2019-08-07quiche: improved error handling and memory cleanupsDaniel Stenberg
2019-08-07quiche: flush egress in h3_stream_recv() tooDaniel Stenberg
2019-08-06sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZIDSteve Holme
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
2019-08-06mesalink: implement client authenticationYiming Jing
Closes #4184
2019-08-06curl_multi_poll: a sister to curl_multi_wait() that waits moreDaniel Stenberg
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
2019-08-06quiche:h3_stream_recv return 0 at end of streamDaniel Stenberg
... and remove some verbose messages we don't need. Made transfers from facebook.com work better.
2019-08-06altsvc: make quiche use h3-22 nowDaniel Stenberg
2019-08-06quiche: show the actual version numberDaniel Stenberg