aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
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
2019-08-06quiche: first working HTTP/3 requestDaniel Stenberg
- enable debug log - fix use of quiche API - use download buffer - separate header/body Closes #4193
2019-08-06http09: disable HTTP/0.9 by default in both tool and libraryDaniel Stenberg
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
2019-08-05quiche: initial h3 request send/receiveDaniel Stenberg
2019-08-05lib/Makefile.am: make checksrc run in vquic tooDaniel Stenberg
2019-08-05altsvc: fix removal of expired cache entryDaniel Stenberg
Closes #4192
2019-08-04md4: Use our own MD4 implementation when no crypto libraries are availableSteve Holme
Closes #3780
2019-08-04md4: No need to include Curl_md4.h for each TLS librarySteve Holme
2019-08-04md4: No need for the NTLM code to call Curl_md4it() for each TLS librarySteve Holme
As the NTLM code no longer calls any of TLS libraries' specific MD4 functions, there is no need to call this function for each #ifdef.
2019-08-04md4: Move the mbed TLS MD4 implementation out of the NTLM codeSteve Holme
2019-08-04md4: Move the WinCrypt implementation out of the NTLM codeSteve Holme
2019-08-04md4: Move the SecureTransport implementation out of the NTLM codeSteve Holme
2019-08-04md4: Use the Curl_md4it() function for OpenSSL based NTLMSteve Holme
2019-08-04md4: Move the GNU TLS gcrypt MD4 implementation out of the NTLM codeSteve Holme
2019-08-04md4: Move the GNU TLS Nettle MD4 implementation out of the NTLM codeSteve Holme
2019-08-04OS400: Add CURLOPT_H3 symbolsJay Satiro
Follow-up to 3af0e76 which added experimental H3 support. Closes https://github.com/curl/curl/pull/4185
2019-08-03url: make use of new HTTP version if alt-svc has oneDaniel Stenberg
2019-08-03url: set conn->transport to default TCP at init timeDaniel Stenberg
2019-08-03altsvc: with quiche, use the quiche h3 alpn stringDaniel Stenberg
Closes #4183
2019-08-03alt-svc: more liberal ALPN name parsingDaniel Stenberg
Allow pretty much anything to be part of the ALPN identifier. In particular minus, which is used for "h3-20" (in-progress HTTP/3 versions) etc. Updated test 356. Closes #4182
2019-08-02quiche: use the proper HTTP/3 ALPNDaniel Stenberg
2019-08-02quiche: add failf() calls for two error casesDaniel Stenberg
To aid debugging Closes #4181
2019-08-01http_negotiate: improve handling of gss_init_sec_context() failuresKamil Dudka
If HTTPAUTH_GSSNEGOTIATE was used for a POST request and gss_init_sec_context() failed, the POST request was sent with empty body. This commit also restores the original behavior of `curl --fail --negotiate`, which was changed by commit 6c6035532383e300c712e4c1cd9fdd749ed5cf59. Add regression tests 2077 and 2078 to cover this. Fixes #3992 Closes #4171
2019-08-01timediff: make it 64 bit (if possible) even with 32 bit time_tDaniel Stenberg
... to make it hold microseconds too. Fixes #4165 Closes #4168
2019-07-31getenv: support up to 4K environment variable contents on windowsDaniel Stenberg
Reported-by: Michal Čaplygin Fixes #4174 Closes #4175