Commit graph

160 commits

Author SHA1 Message Date
Marten Seemann
16da08a440
add client functionality to the streamsMap 2017-01-14 18:54:15 +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
6913f5ae75
add tests for certChain, simplify constructor 2017-01-14 18:52:18 +07:00
Marten Seemann
0535491f30
rename crypto.Signer to crypto.CertChain 2017-01-14 18:52:18 +07:00
Marten Seemann
f44612cc2f
pass received diversification nonces to the CryptoSetup 2017-01-14 18:51:16 +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
71227437ee
only retransmit WindowUpdates if no higher WindowUpdate has been sent
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
edf6ee3dfc
implement a sophisticated ack algorithm
fixes #354
2017-01-09 15:01:44 +07:00
Marten Seemann
d6a0a145a4
correclty detected the closed state of a stream
fixes #380
2017-01-09 09:49:45 +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
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
10f8156951
remove unused function from streamsMap 2016-12-09 17:56:04 +07:00
Marten Seemann
c12508c3c9
use a mock ConnectionParametersManager in quic tests 2016-12-08 21:50:10 +07:00
Marten Seemann
ebc053dbe0
create interface for the ConnectionParametersManager 2016-12-08 18:39:14 +07: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
Lucas Clemente
a0fb14381e don't send more packets when there are too many unacked
fixes #249, fixes #322
2016-09-08 11:21:03 +02:00
Lucas Clemente
6f4955d2d0 use new packet receive timestamp in sentPacketHandler
fixes #150
2016-09-07 15:51:04 +02:00
Lucas Clemente
099545521f use *receivedPacket thoughout the session 2016-09-07 15:51:04 +02:00
Lucas Clemente
8c6eb61850 set max tracked packets to max cwnd * 2 2016-09-05 13:35:10 +02:00
Lucas Clemente
a4d4506f31 remove entropy from packet unpacker and session 2016-09-01 20:26:31 +02:00
Lucas Clemente
10d0190be1 remove some v33 mentions 2016-09-01 20:26:31 +02:00
Lucas Clemente
3c2148981f remove entropy from StopWaitingFrame 2016-09-01 20:26:31 +02:00
Lucas Clemente
b032a07f70 remove ackhandlerlegacy and frames.AckFrameLegacy 2016-09-01 20:26:31 +02:00
Lucas Clemente
a8b3e1ef8e move ackhandler.Packet and PacketList shared types to new ackhandler 2016-09-01 20:26:31 +02:00
Lucas Clemente
05127e5c20 remove support for v33 from session 2016-09-01 20:26:31 +02:00
Lucas Clemente
5cf829f1df use largest received packet number in packet number inflation
fixes #309
2016-08-30 20:47:36 +02:00
Lucas Clemente
906114450e ignore undecryptable packets after the handshake is complete
fixes #304
2016-08-25 20:02:39 +02:00
Lucas Clemente
6d5a9b84e5 reject streams with even IDs opened by the client
fixes #267
2016-08-18 11:40:27 +02:00
Marten Seemann
1d7cf74e48
always send a StopWaiting with a packet containing a retransmission
fixes #259
2016-08-18 15:02:18 +07:00
Marten Seemann
7d05640b24
change AckHandler interfaces to allow forcing a StopWaitingFrame
ref #259
2016-08-18 12:45:53 +07:00
Marten Seemann
bca012cbde
handle Frame.Write errors in packet packer 2016-08-17 18:10:23 +07:00
Marten Seemann
88e1e50efe
only increase packet number when sending a packet in PacketPacker
fixes #288
2016-08-16 17:07:03 +07:00
Marten Seemann
d23cacaddf always dequeue a StopWaiting if a packet contains a retransmission 2016-08-16 12:21:31 +07:00
Lucas Clemente
5cb3c0a771 replace ProbablyHasPacketForRetransmission with a call to MaybeQueueRTOs
fixes #261
2016-08-15 10:33:50 +02:00
Lucas Clemente
61e06de838 fix session RTO test for version 34 2016-08-15 10:33:50 +02:00
Lucas Clemente
10b847be8e fix flaky session test
fixes #277
2016-08-12 20:22:05 +02:00
Lucas Clemente
805c21cb77 use LeastUnacked in packet number derivation
fixes #271
2016-08-10 13:32:36 +02:00
Lucas Clemente
8c5a3dabd6 set RemoteAddr in http request objects
fixes #266
2016-08-09 11:50:27 +02:00
Lucas Clemente
aac155a49e remove test for even stream IDs
While the spec demands that clients don't open streams with even IDs, it
doesn't require validation and there are no security implications.
2016-08-08 20:51:57 +02:00
Lucas Clemente
3432a632f0 remove incorrect RST test 2016-08-08 20:51:57 +02:00
Lucas Clemente
02c28c3a59 remove unneeded streamsMap.{Put,Get}Stream 2016-08-08 20:51:57 +02:00
Lucas Clemente
a1e2977f50 handle stream creation in streamsMap, remove streams mutex from session 2016-08-08 20:51:57 +02:00
Marten Seemann
a796877b94 use StreamsMap in Session and StreamFramer
fixes #208
2016-08-05 19:30:28 +07:00