Marten Seemann
5b7b9c84d4
qlog dropped version negotiation packets
2020-04-16 09:50:34 +07:00
Marten Seemann
80418be227
use a mock qlogger in the client tests
2020-04-16 09:50:34 +07:00
Marten Seemann
6ba147119d
set the qlogger as a member variable on the client
2020-04-16 09:50:34 +07:00
Marten Seemann
ef901e3435
use the current timestamp of every event in qlog
2020-03-23 16:25:42 +07:00
Marten Seemann
4109df32ff
copy the GetLogWriter callback when populating a quic.Config
2020-02-27 18:06:25 +07:00
Marten Seemann
14a5cc8ab4
add support for the connection_started event
2020-02-17 15:52:06 +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
f91dfda8c3
make the TLS cipher suites configurable
2020-02-01 15:58:40 +07:00
Marten Seemann
a93e544c94
remove Session.Close()
...
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
db396d8a78
rename packetHandlerMap.Close() to Destroy()
2020-01-22 17:59:22 +07:00
Marten Seemann
eeba3951ae
only enable 0-RTT when using ListenEarly and DialEarly
2020-01-17 11:22:12 +07:00
Marten Seemann
ce7583f813
add DialEarly and DialAddrEarly to dial 0-RTT connections
2020-01-01 18:04:02 +04:00
Marten Seemann
e9bced8d73
simplify populating the quic.Config
2019-12-11 12:41:26 +04: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
90643f5756
move initialization of the client'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
416fe8364e
remove unused return value from session constructor
2019-10-27 15:35:34 +07:00
Marten Seemann
6b22f36d82
add the stylecheck linter
2019-09-17 13:50:19 +07:00
Marten Seemann
ab2b26a5cb
add the unparam linter
2019-09-17 13:44:05 +07:00
Marten Seemann
9c97a5e95f
add the TokenStore to the quic.Config, store received tokens
2019-08-13 10:52:59 +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
spacewander
755a46d6e2
allow host without port passed as 'host' argument in Dial function.
...
Previously, if the given host doesn't contain port, dial with it will
result in error "missing port in address".
2019-07-06 15:52:26 +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
09111b45f9
reject a tls.Config without NextProtos for dialing
2019-06-02 14:58:41 +08: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
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
df34e4496e
identify version negotiation packets without parsing the header
2019-02-23 10:24:42 +08:00
Marten Seemann
17f4ebad64
handle Retry packets in the session
2019-02-04 15:38:47 +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
178ac0dacb
keep increasing the packet number after version negotiation and retry
2018-12-22 22:15:35 +06:30
Marten Seemann
f9218444a9
use a separate function to close the session after VN and retry
2018-12-21 23:47:10 +06:30
Marten Seemann
3f9831a93d
Merge pull request #1638 from lucas-clemente/improve-packet-handling
...
make packet handling as non-blocking as possible
2018-11-27 18:43:52 +07:00
Marten Seemann
8ea110d99b
Merge pull request #1642 from lucas-clemente/improve-packet-conn-documentation
...
improve the description of how we handle net.PacketConns
2018-11-27 17:24:38 +07:00
Marten Seemann
574126d0eb
handle Retry packets in a separate Go routine
2018-11-27 17:19:21 +07:00
Marten Seemann
7fecf8e478
handle Version Negotiation packets in a separate Go routine
2018-11-27 17:19:21 +07:00
Marten Seemann
a8db148dbf
don't lock the client mutex when handling regular packets
2018-11-27 17:19:21 +07:00
Marten Seemann
38548c137c
remove unneeded check for destination connection ID in the client
...
The packetHandlerMap routes packets to the client based on the
destination connection ID, so we can be sure that packets that are
handled in the client have the right connection ID.
2018-11-27 17:19:21 +07:00
Marten Seemann
708aa165bc
improve the description of how we handle net.PacketConns
2018-11-27 16:33:03 +07:00
Marten Seemann
37495d967a
keep the connection IDs when receiving a version negotiation packet
2018-11-27 13:13:50 +07:00
Marten Seemann
c5ca6fd7e5
parse the extended header in the session
2018-11-26 15:57:54 +07:00
Marten Seemann
9bcedd988d
move parsing of version negotiation packets to the wire.Header
2018-11-26 15:57:54 +07:00
Marten Seemann
bf96707f48
rename the wire.Header to ExtendedHeader
...
It's not encrypted yet.
2018-11-26 15:57:54 +07:00
Marten Seemann
65cca7b726
immediately remove sessions that were closed remotely
...
We only need to keep sessions that were closed locally, in order to
retransmit the CONNECTION_CLOSE packet. For sessions that were closed by
the peer, we don't need to wait for any more packets, and there's also
no CONNECTION_CLOSE to retransmit. The same applies for sessions that
were destroyed when receiving a Version Negotiation or a Retry packet.
2018-11-16 21:22:32 +07:00