Commit graph

280 commits

Author SHA1 Message Date
Marten Seemann
0615d92ede only send Version Negotiation packets for packets larger than 1200 bytes 2020-10-08 16:22:39 +07:00
Marten Seemann
48d25fe95b drop version negotiation packets in the server 2020-10-07 17:35:57 +07:00
Marten Seemann
a65274942c use a mock net.PacketConn in tests 2020-09-27 15:13:07 +07:00
Marten Seemann
e0824e3163 move the logging mock implementations to a separate package 2020-09-09 15:15:49 +07:00
Marten Seemann
97b0b6d5c7 use GitHub Actions to run unit tests, disable AppVeyor 2020-08-28 20:14:44 +07:00
Marten Seemann
89417ab5ca simplify the connection, rename it to sendConn 2020-08-09 19:24:04 +07:00
Marten Seemann
0c551c893c trace packets that are sent outside of a connection 2020-07-16 08:20:36 +07:00
Marten Seemann
dc245ca6a3 trace dropped packets in the server 2020-07-15 20:33:58 +07:00
Marten Seemann
a1bb39d6ab introduce a protocol.StatelessResetToken 2020-07-10 19:55:20 +07:00
Marten Seemann
993d71fd56 move the SupportedVersions slice out of the wire.Header 2020-07-09 12:05:33 +07:00
Marten Seemann
084e4feb9b fix flaky server test on Travis 2020-07-06 11:21:08 +07:00
Marten Seemann
4121ea84f4 rename the logging.Tracer to ConnectionTracer 2020-07-01 16:57:01 +07:00
Marten Seemann
78ba619a0b split the qlog package into a logging and a qlog package 2020-07-01 16:49:24 +07:00
Marten Seemann
7bcb25f18d introduce an assertion in the server 2020-07-01 14:02:14 +07:00
Marten Seemann
4f19b15670 set and verify the retry_source_connection_id TP 2020-05-29 19:57:39 +07:00
Marten Seemann
cdb22513f3 save the source conn ID used on the Retry packet in the Retry token 2020-05-29 19:50:14 +07:00
Marten Seemann
b391cce35c always send the original_destination_connection_id TP as a server 2020-05-29 19:50:14 +07:00
Marten Seemann
dad30e7c33 only create a single session for duplicate Initials 2020-05-29 16:04:45 +07:00
Marten Seemann
aebf2386d0 fix buffer use after it was released when sending an INVALID_TOKEN error 2020-05-05 12:19:20 +07:00
Marten Seemann
0ef4f06189 move the transport parameters from the handshake to the wire package 2020-03-13 16:20:11 +07:00
Marten Seemann
715654ace9
Merge pull request #2384 from lucas-clemente/fix-flaky-server-test
fix flaky server unit test
2020-02-28 15:06:22 +07:00
Marten Seemann
e57caf0bae send an INVALID_TOKEN error when receiving an invalid token 2020-02-25 19:43:57 +07:00
Marten Seemann
6c02bd3a30 fix flaky server unit test 2020-02-25 16:10:25 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
2b7133a6e2 implement a queue for 0-RTT packets 2020-02-15 15:44:08 +07:00
Marten Seemann
b031615db5 export a qlog when the session's run loop stops 2020-02-12 10:42:37 +07:00
Marten Seemann
93693349f3 collapse packetHandlerManager.Add and AddIfNotTaken into one function 2020-02-03 17:34:07 +01:00
Marten Seemann
7f0dc56d70 introduce a server run loop for handling packets 2020-02-03 17:31:47 +01:00
Marten Seemann
cf71bdd05a use a MockPacketHandlerManager in all server tests 2020-02-03 17:31:47 +01:00
Marten Seemann
5a566f2176
Merge pull request #2226 from lucas-clemente/retry-integrity
implement the retry integrity tag
2020-01-17 17:19:15 +07:00
Marten Seemann
7b10453af8 implement the Retry integrity tag 2020-01-17 13:42:57 +07:00
Marten Seemann
eeba3951ae only enable 0-RTT when using ListenEarly and DialEarly 2020-01-17 11:22:12 +07:00
Marten Seemann
27549c5665 use the minimum of the two peers' max_idle_timeouts 2019-12-11 14:04:33 +04:00
Marten Seemann
e65df402dd only create a single session when two Initials arrive at the same time 2019-11-30 20:01:51 +07:00
Marten Seemann
35ea8213c5 move initialization of the client's transport parameters to the session 2019-11-05 11:00:06 +07:00
Marten Seemann
b64535e656 move initialization of the server's transport parameters to the session 2019-11-05 10:59:21 +07:00
Marten Seemann
416fe8364e remove unused return value from session constructor 2019-10-27 15:35:34 +07:00
Marten Seemann
5cbb8d6597 implement a listener that returns early sessions 2019-08-13 09:07:13 +07:00
Marten Seemann
b06d7b0cba use the HandshakeComplete() context for accepting sessions in the server 2019-08-13 08:52:26 +07:00
Marten Seemann
8c4e4a3208 remove complex checks performed on the tls.Config 2019-07-28 23:57:33 +07:00
Marten Seemann
12bce1caaa add a context to Listener.Accept 2019-06-22 19:36:52 +08:00
Marten Seemann
267d11ee66 add tracing for sent and received packets 2019-06-20 22:58:01 +08:00
Marten Seemann
8eeddeb9c0 reject a tls.Config without NextProtos for listening 2019-06-02 14:58:41 +08:00
Marten Seemann
34543848f0 send a NEW_TOKEN from after completing the handshake (as a server) 2019-06-02 14:18:27 +08:00
Marten Seemann
7c7bcede6c rename handshake.TokenGenerator.NewToken to NewRetryToken 2019-06-02 14:14:05 +08:00
Marten Seemann
1873503937 reduce the Retry token expiry time to 10 seconds
The expiry time used to be 24 hours before. The reason for this long
duration was that this included tokens that were issued to be used
between separate connections in gQUIC. At the moment, we are only
generating tokens for Retry packets, i.e. within a single connection.
They are therefore expected to be used within a single round trip.
2019-06-01 16:32:54 +08:00
Marten Seemann
1d6707325f name the quic.Cookie to quic.Token 2019-05-30 22:13:06 +08:00
Marten Seemann
dc75123836 fix race condition when closing the server after a Read failed 2019-05-10 09:47:52 +09:00
Marten Seemann
7b569ba071 fix flaky server unit test 2019-04-03 01:27:31 +09:00
Marten Seemann
94046cdb4b implement sending of stateless resets 2019-03-08 18:10:15 +09:00