Bachue Zhou
a8472bb8ea
quiche: use send() instead of sendto() to avoid macOS issue
...
sendto() always returns "Socket is already connected" error on macos
Closes #7260
2021-06-21 14:54:51 +02:00
Jun-ya Kato
a3a298da5e
ngtcp2: disable TLSv1.3 compatible mode when using GnuTLS
...
The latest GnuTLS-3.7.2 implements disable switch for TLSv1.3 compatible
mode for middle box but it is enabled by default, which is unnecessary
for QUIC.
Fixes #6896
Closes #7202
2021-06-08 16:10:39 +02:00
Alessandro Ghedini
424aa64d54
quiche: update for network path aware API
...
Latest version of quiche requires the application to pass the peer
address of received packets, and it provides the address for outgoing
packets back.
Closes #7120
2021-05-24 17:26:46 +02:00
Daniel Stenberg
b1dded68e3
h3: add 'attach' callback to protocol handlers
...
Follow-up to 0c55fbab45
Reviewed-by: Emil Engler
Closes #7090
2021-05-19 00:29:09 +02:00
Daniel Stenberg
5c53bd980b
ngtcp2: fix the cb_acked_stream_data_offset proto
...
The 'datalen' value should be 64 bit, not size_t!
Reported-by: Dmitry Karpov
Bug: https://curl.se/mail/lib-2021-05/0019.html
Closes #7027
2021-05-07 08:39:36 +02:00
Daniel Stenberg
063d3f3b96
tidy-up: make conditional checks more consistent
...
... remove '== NULL' and '!= 0'
Closes #6912
2021-04-22 09:10:17 +02:00
Tatsuhiro Tsujikawa
f141b0bbf7
ngtcp2: Use ALPN h3-29 for now
...
Fixes #6864
Cloes #6886
2021-04-13 14:22:32 +02:00
Daniel Stenberg
33ddef3617
ngtcp2+gnutls: clear credentials when freed
...
... to avoid double-free.
Reported-by: Kenneth Davidson
Fixes #6824
Closes #6856
2021-04-07 00:07:10 +02:00
Daniel Stenberg
c915662485
ngtcp2: sync with recent API updates
...
Closes #6770
2021-03-22 10:45:00 +01:00
Jun-ya Kato
6043dfa4f9
ngtcp2: Fix build error due to change in ngtcp2_addr_init
...
ngtcp2/ngtcp2@b8d90a9 changed the function prototype.
Closes https://github.com/curl/curl/pull/6716
2021-03-10 16:52:09 -05:00
Daniel Stenberg
ec549aa625
quiche: fix crash when failing to connect
...
Reported-by: ウさん
Fixes #6664
Closes #6701
2021-03-08 17:14:13 +01:00
Marcel Raad
89193ed518
ngtcp2: clarify calculation precedence
...
As suggested by Codacy/cppcheck.
Closes https://github.com/curl/curl/pull/6576
2021-02-10 16:47:49 +01:00
Marcel Raad
1cd823ed5a
lib: remove redundant code
...
Closes https://github.com/curl/curl/pull/6576
2021-02-10 16:47:27 +01:00
Marcel Raad
a774b3f304
lib: reduce variable scopes
...
Closes https://github.com/curl/curl/pull/6576
2021-02-10 16:47:03 +01:00
Daniel Stenberg
ec5d9b44a2
ngtcp2: adapt to the new recv_datagram callback
2021-02-09 23:25:20 +01:00
Daniel Stenberg
69a396f593
quiche: fix build error: use 'int' for port number
...
Follow-up to cb2dc1ba8
2021-02-09 23:21:39 +01:00
Jay Satiro
cb2dc1ba89
lib: use int type for more port variables
...
This is a follow-up to 764c6bd
. Prior to that change port variables
were usually type long.
Closes https://github.com/curl/curl/pull/6553
2021-02-09 02:53:31 -05:00
Daniel Stenberg
2605a6fabb
copyright: fix year ranges in need of updates
2021-02-03 08:02:36 +01:00
Jay Satiro
fc9d3444d1
ngtcp2: Fix build error due to change in ngtcp2_settings
...
- Separate ngtcp2_transport_params.
ngtcp2/ngtcp2@05d7adc made ngtcp2_transport_params separate from
ngtcp2_settings.
ngtcp2 master is required to build curl with http3 support.
Closes #6554
2021-02-02 08:19:12 +01:00
Alessandro Ghedini
a0c5781cb6
quiche: don't use primary_ip / primary_port
...
Closes #6555
2021-02-01 16:12:45 +01:00
Daniel Stenberg
d6a37c23a3
urldata: remove 'local_ip' from the connectdata struct
...
As the info is already stored in the transfer handle anyway, there's no
need to carry around a duplicate buffer for the life-time of the handle.
Closes #6534
2021-01-27 09:19:05 +01:00
Daniel Stenberg
642d78026f
urldata: remove the duplicate 'ip_addr_str' field
...
... as the numerical IP address is already stored and kept in 'primary_ip'.
Closes #6534
2021-01-27 09:18:51 +01:00
Tatsuhiro Tsujikawa
d3ca0771d2
ngtcp2: Fix http3 upload stall
...
Closes #6521
2021-01-26 17:13:04 +01:00
Tatsuhiro Tsujikawa
a1338d4297
ngtcp2: Fix stack buffer overflow
...
Closes #6521
2021-01-26 17:12:47 +01:00
Daniel Stenberg
fb4c5d55b5
quiche: fix unused parameter ‘conn’
...
Follow-up to 2bdec0b3
2021-01-20 09:17:19 +01:00
Daniel Stenberg
2bdec0b363
quic: remove conn->data use
...
Closes #6485
2021-01-19 16:56:35 +01:00
Daniel Stenberg
215db086e0
lib: pass in 'struct Curl_easy *' to most functions
...
... in most cases instead of 'struct connectdata *' but in some cases in
addition to.
- We mostly operate on transfers and not connections.
- We need the transfer handle to log, store data and more. Everything in
libcurl is driven by a transfer (the CURL * in the public API).
- This work clarifies and separates the transfers from the connections
better.
- We should avoid "conn->data". Since individual connections can be used
by many transfers when multiplexing, making sure that conn->data
points to the current and correct transfer at all times is difficult
and has been notoriously error-prone over the years. The goal is to
ultimately remove the conn->data pointer for this reason.
Closes #6425
2021-01-17 23:56:09 +01:00
Daniel Stenberg
aba01da639
failf: remove newline from formatting strings
...
... as failf adds one itself.
Also: add an assert() to failf() that triggers on a newline in the
format string!
Closes #6365
2020-12-25 23:42:16 +01:00
Daniel Stenberg
796c068895
quiche: remove fprintf() leftover
2020-12-14 11:19:48 +01:00
Daniel Stenberg
32793b2c4f
ngtcp2: make it build it current master again
...
Closes #6296
2020-12-10 08:57:07 +01:00
Daniel Stenberg
26f682bcc4
quiche: close the connection
...
Reported-by: Junho Choi
Fixes #6213
Closes #6217
2020-12-02 22:50:39 +01:00
Jay Satiro
2d1df660bc
ngtcp2: Fix build error due to symbol name change
...
- NGTCP2_CRYPTO_LEVEL_APP -> NGTCP2_CRYPTO_LEVEL_APPLICATION
ngtcp2/ngtcp2@76232e9 changed the name.
ngtcp2 master is required to build curl with http3 support.
Closes https://github.com/curl/curl/pull/6271
2020-12-02 16:06:57 -05:00
Daiki Ueno
c7b02c5d68
ngtcp2: use the minimal version of QUIC supported by ngtcp2
...
Closes #6250
2020-11-26 23:31:56 +01:00
Daiki Ueno
ddd3eb99f8
ngtcp2: advertise h3 ALPN unconditionally
...
Closes #6250
2020-11-26 23:31:53 +01:00
Daiki Ueno
0cbd5d5c4f
vquic/ngtcp2.h: define local_addr as sockaddr_storage
...
This field needs to be wide enough to hold sockaddr_in6 when
connecting via IPv6. Otherwise, ngtcp2_conn_read_pkt will drop the
packets because of the address mismatch:
I00000022 [...] con ignore packet from unknown path
We can safely assume that struct sockaddr_storage is available, as it
is used in the public interface of ngtcp2.
Closes #6250
2020-11-26 23:31:42 +01:00
Rikard Falkeborn
920f49a20b
infof/failf calls: fix format specifiers
...
Update a few format specifiers to match what is being printed.
Closes #6241
2020-11-24 13:18:41 +01:00
Daniel Stenberg
a95a6ce6b8
urldata: remove 'void *protop' and create the union 'p'
...
... to avoid the use of 'void *' for the protocol specific structs done
per transfer.
Closes #6238
2020-11-23 16:16:16 +01:00
Daniel Stenberg
73b63876b1
quiche: remove 'static' from local buffer
...
For thread-safety
Closes #6223
2020-11-19 13:34:44 +01:00
Daniel Stenberg
5d57a79929
ngtcp2: adapt to recent nghttp3 updates
...
'reset_stream' was added to the nghttp3_conn_callbacks struct
Closes #6185
2020-11-09 08:17:38 +01:00
Daniel Stenberg
ac0a88fd25
copyright: fix year ranges
...
Follow-up from 4d2f800677
2020-11-05 08:22:10 +01:00
Daniel Stenberg
4d2f800677
curl.se: new home
...
Closes #6172
2020-11-04 23:59:47 +01:00
Viktor Szakats
e34959c0b9
http3: fix two build errors, silence warnings
...
* fix two build errors due to mismatch between function
declarations and their definitions
* silence two mismatched signs warnings via casts
Approved-by: Daniel Stenberg
Closes #6093
2020-10-16 07:15:48 +00:00
Daniel Stenberg
3d60a22390
ngtcp2: adapt to new NGTCP2_PROTO_VER_MAX define
...
Closes #6012
2020-09-25 08:59:43 +02:00
Daniel Stenberg
6434a73984
Curl_handler: add 'family' to each protocol
...
Makes get_protocol_family() faster and it moves the knowledge about the
"families" to each protocol handler, where it belongs.
Closes #5986
2020-09-21 23:30:16 +02:00
Daniel Stenberg
7691f68ba3
ngtcp2: adapt to the new pkt_info arguments
...
Guidance-by: Tatsuhiro Tsujikawa
Closes #5864
2020-08-26 22:40:30 +02:00
Daniel Stenberg
2754a89362
ngtcp2: adapt to error code rename
...
Closes #5786
2020-08-05 23:35:31 +02:00
Daniel Stenberg
d259cf1a9b
ngtcp2: store address in sockaddr_storage
...
Reported-by: Tatsuhiro Tsujikawa
Closes #5733
2020-07-27 19:46:58 +02:00
Daniel Stenberg
425fa864ce
quiche: handle calling disconnect twice
...
Reported-by: lilongyan-huawei on github
Fixes #5726
Closes #5727
2020-07-27 12:53:46 +02:00
Daniel Stenberg
da3e0f406a
ngtcp2: adjust to recent sockaddr updates
...
Closes #5690
2020-07-16 23:56:42 +02:00
Daniel Stenberg
0d4c3618e9
ngtcp2: update to modified qlog callback prototype
...
Closes #5675
2020-07-12 17:53:08 +02:00