aboutsummaryrefslogtreecommitdiff
path: root/lib/vquic/quiche.c
AgeCommit message (Collapse)Author
2020-06-08quiche: update SSLKEYLOGFILE supportAlessandro Ghedini
quiche now requires the application to explicitly set the keylog path for each connection, rather than reading the environment variable itself. Closes #5541
2020-06-04quiche: advertise draft 28 supportPeter Wu
Fix the verbose message while at it, quiche currently supports draft 27 and draft 28 simultaneously. Closes #5518
2020-06-02urldata: let the HTTP method be in the set.* structDaniel Stenberg
When the method is updated inside libcurl we must still not change the method as set by the user as then repeated transfers with that same handle might not execute the same operation anymore! This fixes the libcurl part of #5462 Test 1633 added to verify. Closes #5499
2020-05-26quiche: clean up memory properly when failing to connectDaniel Stenberg
Addresses the quiche side of #5447 Reported-by: Peter Wu Closes #5450
2020-05-07ngtcp2: introduce qlog supportDaniel Stenberg
If the QLOGDIR environment variable is set, enable qlogging. ... and create Curl_qlogdir() in the new generic vquic/vquic.c file for QUIC functions that are backend independent. Closes #5353
2020-05-05quiche: enable qlog outputDaniel Stenberg
quiche has the potential to log qlog files. To enable this, you must build quiche with the qlog feature enabled `cargo build --features qlog`. curl then passes a file descriptor to quiche, which takes ownership of the file. The FD transfer only works on UNIX. The convention is to enable logging when the QLOGDIR environment is set. This should be a path to a folder where files are written with the naming template <SCID>.qlog. Co-authored-by: Lucas Pardue Replaces #5337 Closes #5341
2020-03-07version: make curl_version* thread-safe without using global contextDaniel Stenberg
Closes #5010
2020-01-30quiche: Copyright year out of dateDaniel Stenberg
Follow-up to 7fc63d72333a
2020-01-30quiche: update to draft-25Alessandro Ghedini
Closes #4867
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-18ngtcp2: use overflow buffer for extra HTTP/3 dataJavier Blazquez
Fixes #4525 Closes #4603
2019-11-12quiche: reject headers in the wrong orderDaniel Stenberg
Pseudo header MUST come before regular headers or cause an error. Reported-by: Cynthia Coan Fixes #4571 Closes #4584
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-09-29quiche: update HTTP/3 config creation to new APIlucas
2019-09-26quiche: don't close connection at end of stream!Daniel Stenberg
2019-09-26quiche: set 'drain' when returning without having drained the queuesDaniel Stenberg
2019-09-23quiche: The expression must be surrounded by parenthesesDaniel Stenberg
PVS-Studio warning Fixes #4402
2019-09-23http: lowercase headernames for HTTP/2 and HTTP/3Barry Pollard
Closes #4401 Fixes #4400
2019-09-16quiche: persist connection detailsDaniel Stenberg
... like we do for other protocols at connect time. This makes "curl -I" and other things work. Reported-by: George Liu Fixes #4358 Closes #4360
2019-08-30quiche: expire when poll returned dataDaniel Stenberg
... to make sure we continue draining the queue until empty Closes #4281
2019-08-30quiche: decrease available buffer size, don't assign it!Daniel Stenberg
Found-by: Jeremy Lainé
2019-08-26quiche: send the HTTP body correctly on callback uploadsDaniel Stenberg
Closes #4265
2019-08-23ngtcp2: accept upload via callbackDaniel Stenberg
Closes #4256
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-14quiche: happy eyeballsDaniel Stenberg
Closes #4220
2019-08-09http3: make connection reuse workDaniel Stenberg
Closes #4204
2019-08-09quiche: add SSLKEYLOGFILE supportDaniel Stenberg
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-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-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-05quiche: initial h3 request send/receiveDaniel Stenberg
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-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