Commit graph

127 commits

Author SHA1 Message Date
Gaukas Wang
4973374ea5
sync: quic-go 0.42.0
Signed-off-by: Gaukas Wang <i@gaukas.wang>
2024-04-23 22:34:55 -06:00
Gaukas Wang
7c77243b04
upstream: sync to 0.39.1 2023-10-26 22:47:22 -06:00
Marten Seemann
9010cfd2bb
remove unused unknownPacketHandler interface (#4093) 2023-09-17 05:20:13 -07:00
Marten Seemann
b73a4de7ea only add an ECN control message if ECN is supported 2023-09-11 20:31:50 +07:00
Marten Seemann
5dd6d91c11 send and track packets with ECN markings 2023-09-11 20:31:50 +07:00
Marten Seemann
090e505aa9
move GSO control message handling to the oobConn (#4056)
* move GSO control message handling to the oobConn

* disable OOB test on Windows

* improve GSO tests

* update ooConn.WritePacket comment
2023-08-31 00:49:27 -07:00
Gaukas Wang
856bc02b8f
Merge branch 'upstream' into sync-upstream 2023-08-28 14:12:03 -06:00
Marten Seemann
4122eb7a7d disable GSO if sending fails for a particular remote address 2023-08-16 22:09:29 +07:00
Gaukas Wang
95575f5fe7
break: update repo url [ci skip]
uTLS is not yet bumped to the new version, so this commit breaks the dependencies relationship by getting rid of the local replace.
2023-08-03 18:58:52 -06:00
Marten Seemann
edaeed0107 embed the packetInfo in the receivedPacket struct
This avoid allocating the packetInfo struct when receiving a packet.
2023-06-03 10:44:16 +03:00
Marten Seemann
072a602cc1
pass around receivedPacket as struct instead of as pointer (#3823) 2023-06-03 00:08:58 -07:00
Marten Seemann
5b5ffa942b pack packets into large buffers when GSO is available 2023-06-03 09:21:55 +03:00
Marten Seemann
39ae200972 enable GSO on Linux, if available 2023-06-02 18:35:02 +03:00
Marten Seemann
614fdb3271
only run DPLPMTUD if the connection can send packets with the DF bit set (#3879) 2023-06-02 06:54:34 -07:00
Marten Seemann
bc7cb706c5 add a GetConfigForClient callback to the Config 2023-05-02 15:56:49 +02:00
Marten Seemann
8189e75be6 implement the Transport 2023-05-02 15:56:48 +02:00
Marten Seemann
58487803d3 move 0-RTT queue handling from the packet handler map to the server 2023-05-01 14:24:28 +02:00
Marten Seemann
2359407e11
avoid copying when detecting stateless resets (#3767) 2023-04-19 06:22:02 -07:00
Marten Seemann
a8a24a2bc2
add missing tracing for dropped 0-RTT packets (#3762) 2023-04-19 05:50:29 -07:00
Marten Seemann
58cedf7a4f
rename module, adjust import paths to quic-go/quic-go (#3680) 2023-01-21 19:53:57 -08:00
Marten Seemann
8d496ebb5e
introduce a type for the stateless reset key (#3621) 2022-11-16 14:11:25 -08:00
Marten Seemann
1aced95d41 use an array instead of a byte slice for Connection IDs 2022-08-29 11:30:31 +03:00
Marten Seemann
b659414495 use a single Go routine to send copies of CONNECTION_CLOSE packets 2022-08-21 15:41:47 +03:00
Marten Seemann
c3ab9c4ea9 replace all connection IDs at the same time when connection is closed 2022-08-21 14:09:49 +03:00
Marten Seemann
feb94286a5 move the 0-RTT queue to a separate file 2022-08-21 12:46:40 +03:00
Marten Seemann
19c6a1b252 use type assertions to identify 0-RTT queues in packet handler map 2022-08-21 12:44:40 +03:00
Marten Seemann
80fd1b57c8
add a function to distinguish between long and short header packets (#3498) 2022-08-11 07:35:01 -07:00
Chao Fei
b9a77af8f9
don't set receive buffer if it is already large enough (#3407) 2022-05-12 04:24:37 -07:00
Marten Seemann
42bfe5aa70 add a nolint directive for the use of net.Error.Temporary when reading from conn 2022-04-02 20:35:43 +01:00
Marten Seemann
4b17343631 rename the session to connection 2022-03-27 12:50:14 +01:00
Marten Seemann
d7ad1b6b9b rename the connection to rawConn 2022-03-27 12:28:43 +01:00
Marten Seemann
1ae835d1d8 rename occurrences of session in client, server and packetHandlerMap 2022-03-27 11:27:25 +01:00
Marten Seemann
580cc754f3
don't print a receive buffer warning for closed connections (#3346) 2022-03-16 01:32:43 -07:00
Arash Payan
fa070e585e
add env to disable the receive buffer warning (#3339)
If the env QUIC_GO_DISABLE_RECEIVE_BUFFER_WARNING is set to true
(as defined by strconv.ParseBool()), the receive buffer warning
will not be printed out.
2022-03-07 15:16:52 +01:00
Toby
17952f3e06
fix typo (#3333) 2022-02-20 05:24:26 -08:00
Marten Seemann
93cfef57ca expose a StatelessResetError 2021-05-01 09:39:51 +07:00
Marten Seemann
592fb9cad9 introduce a dedicated qerr.TransportError and qerr.ApplicationError 2021-05-01 09:38:48 +07:00
Marten Seemann
162cb16b31 cache the serialized OOB in the conn, not in the packet info
We're allocating a lot of packetInfo structs during the lifetime of a
connection. It's better to keep that struct as small as possible.
2021-03-16 14:04:15 +08:00
Olivier Poitrey
eb6bdfdfc1 Use the correct source IP when binding multiple IPs
When the server is listening on multiple interfaces or interfaces with
multiple IPs, the outgoing datagrams are sometime delivered with the
wrong source IP address.

In order to fix that, each quic connection needs to extract the
destination IP (and optionally interface id) of the received datagrams,
and set it as source IP (and interface) on the sent datagrams.

On most platforms, this can be done using ancillary data with recvmsg()
and sendmsg(). Some of the machinery for this is already there for ECN,
this change extends it to read the destination IP info and write it to
the outgoing packets.

Fix #1736
2021-03-16 00:50:05 +01:00
Marten Seemann
2bd316b89e store 0-RTT queues in the packet handler map
This prevents a race condition between receiving of 0-RTT packets and
the creation of new session.
2021-03-11 21:16:50 +08:00
Marten Seemann
369442a170 fix error message when the UDP receive buffer size can't be increased 2021-02-15 10:13:40 +08:00
Marten Seemann
75ed1401d8 improve error message when the read buffer size can't be set 2021-02-05 11:32:18 +08:00
Marten Seemann
aea8f7345b make sure the server is stopped before closing all server sessions 2021-01-25 15:28:42 +08:00
Marten Seemann
31b05bc249
Merge pull request #2892 from lucas-clemente/optimize-packet-handler-map-map-keys
use the string optimization for map keys in the packet handler map
2020-12-05 21:05:09 +07:00
Marten Seemann
d1bc0c20b9
Merge pull request #2923 from lucas-clemente/receive-buffer-warning
improve the warning about the UDP receive buffer size
2020-12-04 10:37:51 +07:00
Marten Seemann
b0974c14ad link to the wiki explaining the UDP receive buffer size 2020-12-04 09:16:22 +07:00
Marten Seemann
0eb3f14a60 only print the warning about the UDP receive buffer size once 2020-12-02 15:45:14 +07:00
Marten Seemann
05066ae877 immediately remove reset tokens when retiring a connection ID 2020-11-22 10:21:20 +07:00
Marten Seemann
45963c11dc use the string optimization for map keys 2020-11-21 10:53:14 +07:00
Marten Seemann
ba37b0e02b replace the RWMutex with a Mutex in the packet handler map 2020-11-06 17:09:21 +07:00