Commit Graph

311 Commits

Author SHA1 Message Date
Marten Seemann
9e147714ac pack smaller packets as long as the encryption is not forward secure 2017-03-01 14:01:52 +07:00
Marten Seemann
6cb19e42a5 explicitly pass encryption level in the aeadChanges channel 2017-02-25 21:38:08 +07:00
Marten Seemann
b84e945868 log the encryption level of sent and received packets 2017-02-25 08:27:15 +07:00
Marten Seemann
820eb2e6ee call the ConnStateCallback in the server for encryption level changes
ref #439
2017-02-24 08:42:49 +07:00
Marten Seemann
8bfeb2ea8d return from Dial after conn is forward-secure, unless ConnState is given 2017-02-22 23:03:10 +07:00
Marten Seemann
cd465ae0b5 move utils.Stream to quic.Stream 2017-02-22 23:03:09 +07:00
Marten Seemann
592ef45fdf add OpenStreamSync() method to Session interface 2017-02-22 23:03:09 +07:00
Marten Seemann
af4b36b002 use a connection in the Client 2017-02-22 23:03:08 +07:00
Marten Seemann
d61c0eb85d add a Write and a Close method to the connection interface 2017-02-22 23:03:08 +07:00
Marten Seemann
824f122a79 remove unused StreamCallback 2017-02-22 23:03:08 +07:00
Marten Seemann
6dd163020a never return stream 1 from Session.AcceptStream() 2017-02-22 23:03:07 +07:00
Marten Seemann
a96211f724 create Session interface 2017-02-22 23:03:07 +07:00
Marten Seemann
5b42675da2 use a net.PacketConn instead of a net.UDPConn in Server and Session 2017-02-22 23:03:07 +07:00
Marten Seemann
c533a9adb8 implement an AcceptStream method in the Session 2017-02-22 23:03:06 +07:00
Marten Seemann
f47142eaac remove stream ID from OpenStream() method 2017-02-22 23:03:05 +07:00
Marten Seemann
c7b4ad6e80 return plain nil value for Session.GetOrOpenStream for closed streams
fixes #418
2017-02-15 22:29:08 +07:00
Marten Seemann
268841f0cc add a TLSClientConfig to the QUIC RoundTripper
fixes #407
2017-02-04 10:28:00 +07:00
Marten Seemann
db09de621c detect version downgrade attacks in the client crypto setup 2017-01-14 18:58:47 +07:00
Marten Seemann
a7afd72795 add a callback that is called when the crypto level changes 2017-01-14 18:54:18 +07:00
Marten Seemann
16da08a440 add client functionality to the streamsMap 2017-01-14 18:54:15 +07:00
Marten Seemann
a0bdf79b5b create an aeadChanged channel in the client crypto setup 2017-01-14 18:52:25 +07:00
Marten Seemann
f72fbc57a9 send connection parameters in CHLO 2017-01-14 18:52:24 +07:00
Marten Seemann
1a830dbdb7 implement basic version negotiation 2017-01-14 18:52:24 +07:00
Marten Seemann
014315d3c7 parse hostname from address and pass it to the client cryptoSetup 2017-01-14 18:52:19 +07:00
Marten Seemann
f44612cc2f pass received diversification nonces to the CryptoSetup 2017-01-14 18:51:16 +07:00
Marten Seemann
5e0ded9850 don’t reset remoteAddr for every packet as a client 2017-01-14 18:47:42 +07:00
Marten Seemann
6c0a885a0e pass perspective to packetPacker 2017-01-14 18:45:16 +07:00
Marten Seemann
23435253db create CryptoSetup for the client, use it in the Session 2017-01-14 18:45:15 +07:00
Marten Seemann
2b7c67d297 create handshake.CryptoSetup interface 2017-01-14 18:45:14 +07:00
Marten Seemann
67657a37bf only change remote address after authenticating a packet
fixes #395
2017-01-14 18:15:50 +07:00
Marten Seemann
1e78104f83 trigger window updates before queueing frames for retransmission
ref #394
2017-01-14 15:22:53 +07:00
Marten Seemann
71227437ee only retransmit WindowUpdates if no higher WindowUpdate has been sent
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
db22dae089 simplify the selection of frames for retransmission
ref #394
2017-01-14 13:59:57 +07:00
Marten Seemann
edf6ee3dfc implement a sophisticated ack algorithm
fixes #354
2017-01-09 15:01:44 +07:00
Marten Seemann
7a91794292 send RST_STREAM frames
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
4e0ef58bab allow stream.Read for streams that a RST was received for
and a lot of code improvements

fixes #385
2017-01-09 09:49:43 +07:00
Marten Seemann
563c56fa74 remove unused newStreamImpl from Session 2017-01-06 13:15:07 +07:00
Marten Seemann
8ce763682a send a RstStreamFrame when receiving a RstStreamFrame on an open stream
fixes #378
2017-01-03 17:51:56 +07:00
Marten Seemann
544a58a038 return total bytes sent when resetting a stream in the flow controller 2017-01-03 16:09:18 +07:00
Marten Seemann
bf0caf3c03 pass the byte offset of a RstStreamFrame to the flow controller
fixes #377
2017-01-03 12:37:45 +07:00
Marten Seemann
0de6368bbb fix detection if the Session was already closed before 2016-12-20 10:23:44 +07:00
Marten Seemann
156c23f2b7 wait until the run loop has stopped before returning Session.Close()
fixes #371
2016-12-19 20:35:21 +07:00
Marten Seemann
ebc053dbe0 create interface for the ConnectionParametersManager 2016-12-08 18:39:14 +07:00
Marten Seemann
5af50c8fd0 correctly read MIDS and MSPC parameter
fixes #367
2016-12-08 16:15:31 +07:00
Marten Seemann
11d786fe28 log timestamp when packets are sent and received 2016-12-06 22:52:20 +07:00
Marten Seemann
32d89eee02 pass RTTStats to the FlowControllers
ref #106
2016-10-30 17:36:36 +07:00
Marten Seemann
c8b7246159 create congestion RTTstats in Session
ref #106
2016-10-30 17:27:21 +07:00
Lucas Clemente
2592b9a97c optimize window update generation, reducing profiler footprint by 8% 2016-09-15 09:12:44 +02:00
Lucas Clemente
d6e40cc3da use a different network timeout before the crypto handshake completes
ref #320
2016-09-08 13:48:26 +02:00
Lucas Clemente
3b66d2f35d add a timeout before crypto handshake completes 2016-09-08 13:37:44 +02:00