Nao Yonashiro
2086b69b57
quiche: fix build failure
...
Reviewed-by: Alessandro Ghedini
Closes #9223
2022-08-02 16:49:36 +02:00
Jay Satiro
9bd40e2b69
ngtcp2: Fix build error due to change in nghttp3 prototypes
...
ngtcp2/nghttp3@4a066b2 changed nghttp3_conn_block_stream and
nghttp3_conn_shutdown_stream_write return from int to void.
Reported-by: jurisuk@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/9204
Closes https://github.com/curl/curl/pull/9200
2022-07-26 13:23:56 -04:00
Tatsuhiro Tsujikawa
e9a2eced69
ngtcp2: implement cb_h3_stop_sending and cb_h3_reset_stream callbacks
...
Closes #9135
2022-07-12 17:15:52 +02:00
Tatsuhiro Tsujikawa
4989cd099e
ngtcp2: fix stall or busy loop on STOP_SENDING with upload data
...
Fixes #9122
Closes #9123
2022-07-10 23:18:00 +02:00
Tatsuhiro Tsujikawa
7f5a29e689
ngtcp2: Fix missing initialization of nghttp3_nv.flags
...
Closes https://github.com/curl/curl/pull/9118
2022-07-08 00:12:08 -04:00
vvb2060
e631f6e10e
ngtcp2: fix incompatible function pointer types
...
Closes #9056
2022-06-28 00:02:36 +02:00
Stefan Eissing
8135d420ee
ngtcp2: avoid supplying 0 length msg_control
to sendmsg()
...
Testing on macOS 12.4, sendmsg() fails with EINVAL when a msg_control
buffer is provided in sengmsg(), even though msg_controllen was set to
0.
Initialize msg.msg_controllen just as needed and also perform the size
assertion only when needed.
Closes #9039
2022-06-23 16:11:32 +02:00
max.mehl
ad9bc5976d
copyright: make repository REUSE compliant
...
Add licensing and copyright information for all files in this repository. This
either happens in the file itself as a comment header or in the file
`.reuse/dep5`.
This commit also adds a Github workflow to check pull requests and adapts
copyright.pl to the changes.
Closes #8869
2022-06-13 09:13:00 +02:00
Viktor Szakats
dd94076947
ngtcp2: fix typo in preprocessor condition
...
Ref: 927ede7edc
Bug: https://github.com/curl/curl/pull/8981#discussion_r894312185
Reported-by: Emil Engler
Closes #8987
2022-06-10 23:07:15 +00:00
Tatsuhiro Tsujikawa
927ede7edc
ngtcp2: build without sendmsg
...
Closes #8981
2022-06-10 09:10:54 +02:00
Tatsuhiro Tsujikawa
d2c6d8be18
ngtcp2: use handshake helper funcs to simplify TLS handshake integration
...
Closes #8968
2022-06-10 09:07:33 +02:00
Tatsuhiro Tsujikawa
298c1dfc7b
ngtcp2: fix assertion failure on EMSGSIZE
...
Closes #8958
2022-06-05 12:12:26 +02:00
Tatsuhiro Tsujikawa
3288e9c6d3
ngtcp2: enable Linux GSO
...
Enable Linux GSO in ngtcp2 QUIC. In order to recover from the
EAGAIN/EWOULDBLOCK by sendmsg with multiple packets in one GSO write,
packet buffer is now held by struct quicsocket. GSO write might fail in
runtime depending on NIC. Disable GSO if sendmsg returns EIO.
Closes #8909
2022-05-31 16:04:12 +02:00
Tatsuhiro Tsujikawa
8ea851b29d
ngtcp2: Allow curl to send larger UDP datagrams
...
Allow curl to send larger UDP datagram if Path MTU Discovery finds the
availability of larger path MTU. To make it work and not to send
fragmented packet, we need to set DF bit. That makes send(2) fail with
EMSGSIZE if UDP datagram is too large. In that case, just let it be
lost. This patch enables DF bit for Linux only.
Closes #8883
2022-05-20 17:50:38 +02:00
Tatsuhiro Tsujikawa
9accb9a5be
ngtcp2: extend QUIC transport parameters buffer
...
Extend QUIC transport parameters buffer because 64 bytes are too
short for the ever increasing parameters.
Closes #8872
2022-05-19 14:56:50 +02:00
Tatsuhiro Tsujikawa
136ab928c8
ngtcp2: handle error from ngtcp2_conn_submit_crypto_data
...
Closes #8871
2022-05-19 14:55:37 +02:00
Tatsuhiro Tsujikawa
fe1d00e71b
ngtcp2: send appropriate connection close error code
...
Closes #8870
2022-05-19 14:54:46 +02:00
vvb2060 on github
adde9f0e8c
ngtcp2: support boringssl crypto backend
...
Closes #8789
2022-05-16 18:21:54 +02:00
Tatsuhiro Tsujikawa
6fcd3e6f51
quic: add Curl_quic_idle
...
Add Curl_quic_idle which is called when no HTTP level read or write is
performed. It is a good place to handle timer expiry for QUIC transport
(.e.g, retransmission).
Closes #8698
2022-05-16 18:19:08 +02:00
Tatsuhiro Tsujikawa
5980068c87
ngtcp2: Correct use of ngtcp2 and nghttp3 signed integer types
...
Closes #8851
2022-05-16 10:02:50 +02:00
Tatsuhiro Tsujikawa
33e819d799
ngtcp2: Fix alert_read_func return value
...
Closes #8852
2022-05-16 09:57:37 +02:00
Daniel Stenberg
fdb5e21b4d
quiche: support ca-fallback
...
Follow-up to b01f3e679f
which added this for ngtcp2/openssl
Removed from KNOWN_BUGS
Fixes #8696
Closes #8830
2022-05-11 10:49:31 +02:00
Tatsuhiro Tsujikawa
b01f3e679f
ngtcp2: add ca-fallback support for OpenSSL backend
...
Closes #8828
2022-05-10 09:43:08 +02:00
Yusuke Nakamura
2e2767a378
msh3: get msh3 version from MsH3Version
...
Closes #8762
2022-04-30 10:51:22 +02:00
Yusuke Nakamura
279dfb620b
msh3: psss remote_port to MsH3ConnectionOpen
...
MsH3 supported additional "Port" parameter to connect not hosted on
443 port QUIC website.
* https://github.com/nibanks/msh3/releases/tag/v0.3.0
* https://github.com/nibanks/msh3/pull/37
Closes #8762
2022-04-30 10:51:09 +02:00
Daniel Gustafsson
59d89286d4
msh3: print boolean value as text representation
...
Print the boolean value as its string representation instead of with
%hhu which isn't a format we typically use.
Closes : #8763
Reviewed-by: Nick Banks <nibanks@microsoft.com>
2022-04-29 11:40:25 +02:00
Tatsuhiro Tsujikawa
ca94497a82
ngtcp2: deal with sub-millisecond timeout
...
Closes #8738
2022-04-25 11:37:18 +02:00
Tatsuhiro Tsujikawa
458c4b1df7
ngtcp2: avoid busy loop in low CWND situation
...
Closes #8739
2022-04-24 23:21:27 +02:00
Daniel Stenberg
6968fb9d54
lib: remove exclamation marks
...
... from infof() and failf() calls. Make them less attention seeking.
Closes #8713
2022-04-16 11:55:05 +02:00
Tatsuhiro Tsujikawa
cd29c1651e
ngtcp2: fix memory leak
...
Closes #8691
2022-04-10 23:10:21 +02:00
Tatsuhiro Tsujikawa
fa25dab7fd
ngtcp2: remove remote_addr which is not used in a meaningful way
...
Closes #8689
2022-04-10 23:09:41 +02:00
Tatsuhiro Tsujikawa
f15beb6f30
ngtcp2: enlarge H3_SEND_SIZE
...
Make h3_SEND_SIZE larger because current value (20KiB) is too small
for the high latency environment.
Closes #8690
2022-04-10 23:08:33 +02:00
Tatsuhiro Tsujikawa
990bfdd7bc
ngtcp2: fix HTTP/3 upload stall and avoid busy loop
...
This commit fixes HTTP/3 upload stall if upload data is larger than
H3_SEND_SIZE. Only check writability of socket if a stream is
writable to avoid busy loop when QUIC flow control window is filled
up, or upload buffer is full.
Closes #8688
2022-04-10 23:07:42 +02:00
Nick Banks
37492ebbfa
msh3: add support for QUIC and HTTP/3 using msh3
...
Considered experimental, as the other HTTP/3 backends.
Closes #8517
2022-04-10 18:23:04 +02:00
Tatsuhiro Tsujikawa
92c0123585
ngtcp2: use token when detecting :status header field
...
Closes #8679
2022-04-05 16:48:44 +02:00
Tatsuhiro Tsujikawa
913b80d5fd
ngtcp2: make curl 1ms faster
...
Pass 0 for an already expired timer.
Closes #8678
2022-04-05 16:47:18 +02:00
Tatsuhiro Tsujikawa
1b1443a8ed
ngtcp2: fix QUIC_IDLE_TIMEOUT
...
QUIC_IDLE_TIMEOUT should be of type ngtcp2_duration which is
nanoseconds resolution.
Closes #8678
2022-04-05 16:47:07 +02:00
Daniel Stenberg
235535cf23
ngtcp2: update to work after recent ngtcp2 updates
...
Assisted-by: Tatsuhiro Tsujikawa
Reported-by: jurisuk on github
Fixes #8638
Closes #8639
2022-03-26 18:35:23 +01:00
Tatsuhiro Tsujikawa
c82b281e17
ngtcp2: add client certificate authentication for OpenSSL
...
Closes #8522
2022-03-10 08:41:37 +01:00
Daniel Stenberg
96edc7954f
ngtcp2: disconnect the QUIC connection proper
...
Reported-by: mehatzri on github
Reviewed-by: Tatsuhiro Tsujikawa
Fixes #8534
closes #8569
2022-03-10 08:26:18 +01:00
Daniel Stenberg
1fa09990ab
misc: update copyright year ranges
2022-03-05 09:41:24 +01:00
Daniel Stenberg
cdf37a53b3
quiche: remove two leftover debug infof() outputs
2022-02-25 11:13:49 +01:00
Tatsuhiro Tsujikawa
6e9373b5f4
ngtcp2: Reset dynbuf when it is fully drained
...
Reported-by: vl409 on github
Fixes #7351
Closes #8504
2022-02-24 16:56:33 +01:00
Jean-Philippe Menil
145d0803bb
quiche: fix upload for bigger content-length
...
Signed-off-by: Jean-Philippe Menil <jpmenil@gmail.com>
Closes #8421
2022-02-24 09:34:37 +01:00
Daniel Stenberg
f670665419
quiche: handle stream reset
...
A stream reset now causes a CURLE_PARTIAL_FILE error. I'm not convinced
this is the right action nor the right error code.
Reported-by: Lucas Pardue
Fixes #8437
Closes #8440
2022-02-13 11:48:32 +01:00
Daniel Stenberg
96f85a0fef
quiche: after leaving h3_recving state, poll again
...
This could otherwise easily leave libcurl "hanging" after the entire
transfer is done but without noticing the end-of-transfer signal.
Assisted-by: Lucas Pardue
Closes #8436
2022-02-11 10:07:24 +01:00
Daniel Stenberg
6883180fa5
quiche: when *recv_body() returns data, drain it before polling again
...
Assisted-by: Lucas Pardue
Closes #8429
2022-02-11 08:48:30 +01:00
Daniel Stenberg
a42677f0d8
vquic/vquic.h: removed the unused H3 psuedo defines
2022-02-07 13:56:06 +01:00
Daniel Stenberg
4ab3ed0729
ngtcp2: use Curl_pseudo_headers
2022-02-07 13:56:06 +01:00
Daniel Stenberg
3fa405bb58
quiche: use Curl_pseudo_headers
2022-02-07 13:56:06 +01:00