Commit graph

335 commits

Author SHA1 Message Date
Marten Seemann
fe026a3ac1
Merge pull request #2307 from lucas-clemente/packet-handler-destroy
rename packetHandlerMap.Close() to Destroy()
2020-01-24 20:14:08 +07:00
Marten Seemann
f274753663 remove unneeded closeRemote() method on the quicSession interface 2020-01-23 12:02:25 +07:00
Marten Seemann
db396d8a78 rename packetHandlerMap.Close() to Destroy() 2020-01-22 17:59:22 +07: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
fc37cdc5c5 implement unpacking of 0-RTT packets 2019-12-30 18:39:21 +04:00
Marten Seemann
27549c5665 use the minimum of the two peers' max_idle_timeouts 2019-12-11 14:04:33 +04:00
Marten Seemann
e9bced8d73 simplify populating the quic.Config 2019-12-11 12:41:26 +04:00
Marten Seemann
9d6ae474d7 remove stray GinkgoRecover from the server 2019-12-06 12:25:29 +07: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
37600e049d implement the active_connection_id_limit transport parameter 2019-11-05 10:59:21 +07:00
Marten Seemann
36c77a56c9 simplify the packetHandlerManager interface 2019-11-05 10:59:21 +07:00
Marten Seemann
c7334e3e66 replace closed sessions in the packet handler map 2019-11-02 20:32:59 +07:00
Marten Seemann
416fe8364e remove unused return value from session constructor 2019-10-27 15:35:34 +07:00
Marten Seemann
03483d5e71 refactor how sessions are deleted
Replacing sessions with different structs representing a closed session
doesn't work if a session is using multiple connection IDs.
2019-09-25 15:34:38 +07:00
Marten Seemann
22b12f199e replace locally closed sessions with a dedicated closed session 2019-09-01 13:59:44 +07:00
Marten Seemann
7df59b855f remove stray TODO in the server 2019-08-13 10:58:01 +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
3724f91f33 simplify setup of the server 2019-08-13 08:52:26 +07:00
Marten Seemann
300884f2bf fix race condition when determining the length of the accept queue 2019-08-05 07:33:59 +07:00
Marten Seemann
8c4e4a3208 remove complex checks performed on the tls.Config 2019-07-28 23:57:33 +07:00
Marten Seemann
8da857fdb4 fix logging of Retries 2019-06-29 17:55:59 +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
a8633a952c introduce a type for the stream number 2019-06-05 17:45:17 +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
369b9bc6d5
Merge pull request #1892 from lucas-clemente/max-ack-delay
send and receive the max_ack_delay, use it for RTT estimation and PTO calculation
2019-05-12 23:16:19 +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
6c27967c8a include the timer granularity in the advertised max_ack_delay 2019-05-08 13:26:08 +09:00
Marten Seemann
af8c03ebaf advertize the max_ack_delay in the transport parameters 2019-05-08 13:22:37 +09:00
Marten Seemann
94046cdb4b implement sending of stateless resets 2019-03-08 18:10:15 +09:00
Marten Seemann
6cf20310fe use an array for the stateless reset token in the transport parameters 2019-03-08 18:09:37 +09:00
Marten Seemann
733dcb75eb rename the methods of the sessionRunner interface 2019-03-08 18:09:36 +09:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
02e851bd11 cut coalesed packets in the session 2019-02-27 10:03:34 +09:00
Marten Seemann
28ed85b9c6 move cutting of coalesced packets to the wire package 2019-02-23 10:24:42 +08:00
Marten Seemann
155ebd18a2 parse and send the ack_delay_exponent in the transport parameters 2019-01-28 16:09:47 +09:00
Marten Seemann
bb185a3ad2 add a function to close the packet handler map
Close will close the underlying connection and wait until listen has
returned. While not strictly necessary in production use, this will fix
a few race conditions in our tests.
2019-01-24 18:09:46 +07:00
Marten Seemann
181aa493e0 make sure not to return closed session from Listener.Accept() 2019-01-06 15:27:42 +07:00
Marten Seemann
90514d53d1 reject new connection attempts if the server's accept queue is full 2019-01-06 15:26:43 +07:00
Marten Seemann
1301610a54 never block when calling the onHandshakeComplete callback 2019-01-06 11:43:49 +07:00
Marten Seemann
b32fb438af make putting back packet buffers a member function of packetBuffer 2019-01-01 09:50:35 +07:00