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