Commit Graph

21 Commits

Author SHA1 Message Date
Marten Seemann
656f3d2d7d remove the wire.ShortHeader in favor of more return values (#3535) 2022-08-30 04:37:36 -07:00
Marten Seemann
4f3d3b36ac introduce a separate code path for unpacking short header packets 2022-08-29 15:55:37 +03:00
Marten Seemann
ed15a94703 split the tracing function for received short and long header packets 2022-08-29 15:32:27 +03:00
Marten Seemann
e3723a0ef1 move the check for empty payload to the unpacker 2022-08-29 13:11:58 +03:00
Marten Seemann
fd1b3a23c4 remove unneeded packet number field from the unpackedPacket 2022-08-29 13:11:57 +03:00
Marten Seemann
7d827d515e don't pass the header to connection.tryQueueingUndecryptablePacket 2022-08-29 13:11:16 +03:00
Marten Seemann
4cbb4f8114 remove ConnectionID.Equal function
Connection IDs can now be compared with ==.
2022-08-29 11:30:32 +03: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
9e0f9e62ff parse arbitrary length Connection IDs in Version Negotiation packets 2022-08-29 10:58:33 +03:00
Marten Seemann
53412e9ba3 trace arbitrary length Connection IDs for Version Negotiation packets 2022-08-29 10:58:33 +03:00
João Oliveirinha
66f6fe0b71 add support for providing a custom Connection ID generator via Config (#3452)
* Add support for providing a custom ConnectionID generator via Config

This work makes it possible for servers or clients to control how
ConnectionIDs are generated, which in turn will force peers in the
connection to use those ConnectionIDs as destination connection IDs  when sending packets.

This is useful for scenarios where we want to perform some kind
selection on the QUIC packets at the L4 level.

* add more doc

* refactor populate config to not use provided config

* add an integration test for custom connection ID generators

* fix linter warnings

Co-authored-by: Marten Seemann <martenseemann@gmail.com>
2022-08-24 04:06:16 -07:00
KevinZønda
a90135751b fix datagram support detection (#3511)
* fix: datagram support detection

- treat zero MaxDatagramFrameSize as unsupported.
- avoid send corresponding transport parameters when support is disabled
- report error when calling Send/ReceiveMessage and support is disabled

see https://github.com/lucas-clemente/quic-go/issues/3505

* patch: always initiate datagram

* fix: remove useless nil check
2022-08-22 03:02:40 -07: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
Benedikt Spies
7da024da5a Disable anti-amplification limit by address validation token (#3326) 2022-08-20 08:02:17 -07:00
Marten Seemann
7fde609eef make sure RunHandshake has returned before closing, improve MITM tests 2022-08-13 17:42:45 +03:00
Marten Seemann
43bde14cf7 implement generic Min and Max functions 2022-08-10 14:59:05 +02:00
Nuno Diegues
4c96cf75bf make the keep alive interval configurable (#3444)
* Make keep alive configurable

* Fix unit tests
2022-06-09 08:31:37 -07:00
Marten Seemann
53be3ee500 don't send CONNECTION_CLOSE if error occurred before sending anything 2022-05-20 12:27:00 +02:00
Marten Seemann
2e98150cd4 don't send path MTU probe packets on a timer (#3423) 2022-05-20 03:10:39 -07:00
Marten Seemann
4b17343631 rename the session to connection 2022-03-27 12:50:14 +01:00