aboutsummaryrefslogtreecommitdiff
path: root/lib/vquic/ngtcp2.c
AgeCommit message (Collapse)Author
2020-03-07version: make curl_version* thread-safe without using global contextDaniel Stenberg
Closes #5010
2020-02-04ngtcp2: fixed to only use AF_INET6 when ENABLE_IPV6Harry Sintonen
2020-01-29ngtcp2: update to git master and its draft-25 supportDaniel Stenberg
Closes #4865
2020-01-12misc: Copyright year out of date, should be 2020Daniel Stenberg
Follow-up to recent commits [skip ci]
2020-01-11ngtcp2: Add an error code for QUIC connection errorsEmil Engler
- Add new error code CURLE_QUIC_CONNECT_ERROR for QUIC connection errors. Prior to this change CURLE_FAILED_INIT was used, but that was not correct. Closes https://github.com/curl/curl/pull/4754
2019-12-20ngtcp2: Support the latest update key callback typeJay Satiro
- Remove our cb_update_key in favor of ngtcp2's new ngtcp2_crypto_update_key_cb which does the same thing. Several days ago the ngtcp2_update_key callback function prototype was changed in ngtcp2/ngtcp2@42ce09c. Though it would be possible to fix up our cb_update_key for that change they also added ngtcp2_crypto_update_key_cb which does the same thing so we'll use that instead. Ref: https://github.com/ngtcp2/ngtcp2/commit/42ce09c Closes https://github.com/curl/curl/pull/4735
2019-12-01build: Disable Visual Studio warning "conditional expression is constant"Jay Satiro
- Disable warning C4127 "conditional expression is constant" globally in curl_setup.h for when building with Microsoft's compiler. This mainly affects building with the Visual Studio project files found in the projects dir. Prior to this change the cmake and winbuild build systems already disabled 4127 globally for when building with Microsoft's compiler. Also, 4127 was already disabled for all build systems in the limited circumstance of the WHILE_FALSE macro which disabled the warning specifically for while(0). This commit removes the WHILE_FALSE macro and all other cruft in favor of disabling globally in curl_setup. Background: We have various macros that cause 0 or 1 to be evaluated, which would cause warning C4127 in Visual Studio. For example this causes it: #define Curl_resolver_asynch() 1 Full behavior is not clearly defined and inconsistent across versions. However it is documented that since VS 2015 Update 3 Microsoft has addressed this somewhat but not entirely, not warning on while(true) for example. Prior to this change some C4127 warnings occurred when I built with Visual Studio using the generated projects in the projects dir. Closes https://github.com/curl/curl/pull/4658
2019-11-28ngtcp2: fix thread-safety bug in error-handlingDavid Benjamin
ERR_error_string(NULL) should never be called. It places the error in a global buffer, which is not thread-safe. Use ERR_error_string_n with a local buffer instead. Closes #4645
2019-11-18ngtcp2: use overflow buffer for extra HTTP/3 dataJavier Blazquez
Fixes #4525 Closes #4603
2019-11-18ngtcp2: free used resources on disconnectDaniel Stenberg
Fixes #4614 Closes #4615
2019-11-18ngtcp2: handle key updates as ngtcp2 master branch tells usDaniel Stenberg
Reviewed-by: Tatsuhiro Tsujikawa Fixes #4612 Closes #4613
2019-11-16ngtcp2: increase QUIC window size when data is consumedDaniel Stenberg
Assisted-by: Javier Blazquez Ref #4525 (partial fix) Closes #4600
2019-10-28HTTP3: fix invalid use of sendto for connected UDP socketJavier Blazquez
On macOS/BSD, trying to call sendto on a connected UDP socket fails with a EISCONN error. Because the singleipconnect has already called connect on the socket when we're trying to use it for QUIC transfers we need to use plain send instead. Fixes #4529 Closes https://github.com/curl/curl/pull/4533
2019-10-28HTTP3: fix Windows buildJavier Blazquez
The ngtcp2 QUIC backend was using the MSG_DONTWAIT flag for send/recv in order to perform nonblocking operations. On Windows this flag does not exist. Instead, the socket must be set to nonblocking mode via ioctlsocket. This change sets the nonblocking flag on UDP sockets used for QUIC on all platforms so the use of MSG_DONTWAIT is not needed. Fixes #4531 Closes #4532
2019-10-04ngtcp2: adapt to API changeDaniel Stenberg
Closes #4457
2019-09-25ngtcp2: remove fprintf() callsDaniel Stenberg
- convert some of them to H3BUF() calls to infof() - remove some of them completely - made DEBUG_HTTP3 defined only if CURLDEBUG is set for now Closes #4421
2019-09-23http: lowercase headernames for HTTP/2 and HTTP/3Barry Pollard
Closes #4401 Fixes #4400
2019-09-21ngtcp2: compile with latest ngtcp2 + nghttp3 draft-23Tatsuhiro Tsujikawa
Closes #4392
2019-08-31Curl_addr2string: take an addrlen argument tooDaniel Stenberg
This allows the function to figure out if a unix domain socket has a file name or not associated with it! When a socket is created with socketpair(), as done in the fuzzer testing, the path struct member is uninitialized and must not be accessed. Bug: https://crbug.com/oss-fuzz/16699 Closes #4283
2019-08-29ngtcp2: on h3 stream close, call expireDaniel Stenberg
... to trigger a new read to detect the stream close! Closes #4275
2019-08-29ngtcp2: build latest ngtcp2 and ngtcp2_crypto_opensslTatsuhiro Tsujikawa
Closes #4278
2019-08-28ngtcp2: set flow control window to stream buffer sizeDaniel Stenberg
Closes #4274
2019-08-27ngtcp2: Build with latest ngtcp2 and ngtcp2_crypto_opensslTatsuhiro Tsujikawa
Closes #4270
2019-08-25ngtcp2: add support for SSLKEYLOGFILEDaniel Stenberg
Closes #4260
2019-08-25ngtcp2: improve h3 response receivingDaniel Stenberg
Closes #4259
2019-08-25ngtcp2: use nghttp3_version()Daniel Stenberg
2019-08-25ngtcp2: sync with upstream API changesDaniel Stenberg
Assisted-by: Tatsuhiro Tsujikawa
2019-08-24http: the 'closed' struct field is used by both ngh2 and ngh3Daniel Stenberg
and remove 'header_recvbuf', not used for anything Reported-by: Jeremy Lainé Closes #4257
2019-08-23ngtcp2: accept upload via callbackDaniel Stenberg
Closes #4256
2019-08-20ngtcp2: make postfields-set posts workDaniel Stenberg
Closes #4242
2019-08-20ngtcp2: use ngtcp2_version() to get the run-time versionDaniel Stenberg
... which of course doesn't have to be the same used at build-time. Function just recently merged in ngtcp2.
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-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-14ngtcp2: do QUIC connections happy-eyeballs friendlyDaniel Stenberg
2019-08-12ngtcp2: initial h3 request workDaniel Stenberg
Closes #4217
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-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-07-21HTTP3: initial (experimental) supportDaniel Stenberg
USe configure --with-ngtcp2 or --with-quiche Using either option will enable a HTTP3 build. Co-authored-by: Alessandro Ghedini <alessandro@ghedini.me> Closes #3500