summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* ngtcp2: provide the callbacks as a static structDaniel Stenberg2019-08-152-32/+33
| | | | ... instead of having them in quicsocket
* ngtcp2: add missing nghttp3_conn_add_write_offset callTatsuhiro Tsujikawa2019-08-151-0/+9
| | | | Closes #4225
* ngtcp2: deal with stream closeTatsuhiro Tsujikawa2019-08-151-1/+10
|
* ngtcp2: Consume QUIC STREAM data properlyTatsuhiro Tsujikawa2019-08-151-8/+13
|
* ngtcp2: don't reinitialize SSL on RetryTatsuhiro Tsujikawa2019-08-151-1/+0
|
* multi: getsock improvements for QUIC connectingDaniel Stenberg2019-08-141-1/+7
|
* connect: connections are persistent by default for HTTP/3Daniel Stenberg2019-08-141-0/+3
|
* quiche: happy eyeballsDaniel Stenberg2019-08-141-31/+42
| | | | Closes #4220
* ngtcp2: do QUIC connections happy-eyeballs friendlyDaniel Stenberg2019-08-146-230/+262
|
* curl_version: bump string buffer size to 250Daniel Stenberg2019-08-141-1/+1
| | | | | With HTTP/3 libs and plenty TLS libs, I manged to hit the limit (which causes a truncated output).
* vauth: Use CURLE_AUTH_ERROR for auth function errorsJay Satiro2019-08-147-17/+55
| | | | | | | | | | | | | | - 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
* nss: use TLSv1.3 as default if supportedPeter Wu2019-08-131-10/+6
| | | | | | | | | | | | 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
* quic.h: remove unused protoDaniel Stenberg2019-08-131-6/+0
|
* lib/quic.c: unused - removedDaniel Stenberg2019-08-132-39/+1
|
* altsvc: make it use h3-22 with ngtcp2 as wellDaniel Stenberg2019-08-121-2/+2
|
* ngtcp2: initial h3 request workDaniel Stenberg2019-08-122-24/+116
| | | | Closes #4217
* curl_version_info: offer quic (and h3) library infoDaniel Stenberg2019-08-121-1/+10
| | | | Closes #4216
* ngtcp2: send HTTP/3 request with nghttp3Tatsuhiro Tsujikawa2019-08-121-44/+221
| | | | | | | | 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
* nghttp3: initial h3 template code addedDaniel Stenberg2019-08-122-1/+501
|
* nghttp3: required when ngtcp2 is used for QUICDaniel Stenberg2019-08-121-1/+1
| | | | | | | | - checked for by configure - updated docs/HTTP3.md - shown in the version string Closes #4210
* asyn-thread: issue CURL_POLL_REMOVE before closing socketEric Wong2019-08-111-5/+20
| | | | | | | | | | | | 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
* ngtcp2: Send ALPN h3-22Tatsuhiro Tsujikawa2019-08-111-4/+5
| | | | Closes #4212
* ngtcp2: use ngtcp2_settings_default and specify initial_tsTatsuhiro Tsujikawa2019-08-111-4/+2
|
* ngtcp2: make the QUIC handshake workTatsuhiro Tsujikawa2019-08-103-76/+267
| | | | Closes #4209
* CURLOPT_H3: removedDaniel Stenberg2019-08-091-7/+0
| | | | | | There's no use for this anymore and it was never in a release. Closes #4206
* http3: make connection reuse workDaniel Stenberg2019-08-094-34/+82
| | | | Closes #4204
* quiche: add SSLKEYLOGFILE supportDaniel Stenberg2019-08-091-0/+3
|
* alt-svc: add protocol version selection maskingDaniel Stenberg2019-08-083-60/+65
| | | | | | | | | | | 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
* http3: fix the HTTP/3 in the request, make alt-svc set right versionsDaniel Stenberg2019-08-082-39/+46
| | | | Closes #4200
* alt-svc: send Alt-Used: in redirected requestsDaniel Stenberg2019-08-083-2/+16
| | | | | | | | | | | | | | | 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
* CURLOPT_HTTP_VERSION: seting this to 3 forces HTTP/3 use directlyDaniel Stenberg2019-08-083-6/+9
| | | | | | | | | | | | 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
* CURLINFO_RETRY_AFTER: parse the Retry-After header valueDaniel Stenberg2019-08-073-3/+17
| | | | | | | | 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
* curl.h: add CURL_HTTP_VERSION_3 to the version enumDaniel Stenberg2019-08-072-1/+4
| | | | | It can't be set for CURLOPT_HTTP_VERSION, but it can be extracted with CURLINFO_HTTP_VERSION.
* quiche: make use of the connection timeout API properlyDaniel Stenberg2019-08-072-0/+11
|
* quiche: make POSTFIELDS posts workDaniel Stenberg2019-08-071-14/+27
|
* quiche: improved error handling and memory cleanupsDaniel Stenberg2019-08-072-21/+49
|
* quiche: flush egress in h3_stream_recv() tooDaniel Stenberg2019-08-071-0/+4
|
* sasl: Implement SASL authorisation identity via CURLOPT_SASL_AUTHZIDSteve Holme2019-08-064-5/+24
| | | | | | | | | | | | | | | | | 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
* mesalink: implement client authenticationYiming Jing2019-08-061-13/+49
| | | | Closes #4184
* curl_multi_poll: a sister to curl_multi_wait() that waits moreDaniel Stenberg2019-08-064-39/+32
| | | | | | | | | | | | | | | | | | | | | | | | 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
* quiche:h3_stream_recv return 0 at end of streamDaniel Stenberg2019-08-061-4/+1
| | | | | ... and remove some verbose messages we don't need. Made transfers from facebook.com work better.
* altsvc: make quiche use h3-22 nowDaniel Stenberg2019-08-061-2/+2
|
* quiche: show the actual version numberDaniel Stenberg2019-08-061-1/+1
|
* quiche: first working HTTP/3 requestDaniel Stenberg2019-08-064-31/+89
| | | | | | | | | - enable debug log - fix use of quiche API - use download buffer - separate header/body Closes #4193
* http09: disable HTTP/0.9 by default in both tool and libraryDaniel Stenberg2019-08-061-1/+1
| | | | | | | | 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
* quiche: initial h3 request send/receiveDaniel Stenberg2019-08-053-24/+373
|
* lib/Makefile.am: make checksrc run in vquic tooDaniel Stenberg2019-08-051-1/+1
|
* altsvc: fix removal of expired cache entryDaniel Stenberg2019-08-051-0/+1
| | | | Closes #4192
* md4: Use our own MD4 implementation when no crypto libraries are availableSteve Holme2019-08-043-43/+11
| | | | Closes #3780
* md4: No need to include Curl_md4.h for each TLS librarySteve Holme2019-08-041-7/+1
|