Ayesh Karunaratne
4484270afc
misc: typo and grammar fixes
...
- Replace `Github` with `GitHub`.
- Replace `windows` with `Windows`
- Replace `advice` with `advise` where a verb is used.
- A few fixes on removing repeated words.
- Replace `a HTTP` with `an HTTP`
Closes #9802
2022-10-27 10:01:30 +02:00
Jay Satiro
6b066de488
ngtcp2: Fix build errors due to changes in ngtcp2 library
...
ngtcp2/ngtcp2@b0d86f60 changed:
- ngtcp2_conn_get_max_udp_payload_size =>
ngtcp2_conn_get_max_tx_udp_payload_size
- ngtcp2_conn_get_path_max_udp_payload_size =>
ngtcp2_conn_get_path_max_tx_udp_payload_size
ngtcp2/ngtcp2@ec59b873 changed:
- 'early_data_rejected' member added to ng_callbacks.
Assisted-by: Daniel Stenberg
Reported-by: jurisuk@users.noreply.github.com
Fixes https://github.com/curl/curl/issues/9747
Closes https://github.com/curl/curl/pull/9748
2022-10-17 03:27:03 -04:00
Daniel Stenberg
4adee03cd4
ngtcp2: fix C89 compliance nit
2022-09-27 14:02:27 +02:00
Daniel Stenberg
58acc69e10
openssl: make certinfo available for QUIC
...
Curl_ossl_certchain() is now an exported function in lib/vtls/openssl.c that
can also be used from quiche.c and ngtcp2.c to get the cert chain for QUIC
connections as well.
The *certchain function was moved to the top of the file for this reason.
Reported-by: Eloy Degen
Fixes #9584
Closes #9597
2022-09-27 14:02:27 +02:00
Daniel Stenberg
d4b1ad59a3
msh3: change the static_assert to make the code C89
2022-09-23 08:27:50 +02:00
Viktor Szakats
c9061f242b
misc: spelling fixes
...
Found using codespell 2.2.1.
Also delete the redundant protocol designator from an archive.org URL.
Reviewed-by: Daniel Stenberg
Closes #9403
2022-08-31 14:31:01 +00:00
Daniel Stenberg
e65187e188
ngtcp2: fix picky compiler warnings with wolfSSL for QUIC
...
Follow-up to 8a13be227e
Closes #9315
2022-08-15 09:39:09 +02:00
Daniel Stenberg
c031ec53f8
ngtcp2: remove leftover variable
...
Mistake leftover from my edit before push.
Follow-up from 8a13be227e
Reported-by: Viktor Szakats
Bug: https://github.com/curl/curl/pull/9290#issuecomment-1214569167
2022-08-15 08:22:20 +02:00
Stefan Eissing
8a13be227e
quic: add support via wolfSSL
...
- based on ngtcp2 PR https://github.com/ngtcp2/ngtcp2/pull/505
- configure adapted to build against ngtcp2 wolfssl crypto lib
- quic code added for creation of WOLFSSL* instances
Closes #9290
2022-08-15 00:48:55 +02:00
Daniel Stenberg
011788f0b6
msh3: fix the QUIC disconnect function
...
And free request related memory better in 'done'. Fixes a memory-leak.
Reported-by: Gisle Vanem
Fixes #8915
Closes #9304
2022-08-13 00:19:29 +02:00
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