Commit Graph

858 Commits

Author SHA1 Message Date
Lucas Clemente
f04d14ac3e use flow controller for window update handling, remove windowUpdateMgr 2016-07-11 14:54:32 +02:00
Lucas Clemente
e303a7f578 send CONNECTION_CLOSE from the normal run loop
fixes #199
2016-07-10 15:24:26 +02:00
Lucas Clemente
2d828fe6e2 use an RWMutex in flowControlManager 2016-07-09 18:11:41 +02:00
Lucas Clemente
80f4a68602 remove mutex from flowController; locking is ensured by the manager 2016-07-09 18:10:09 +02:00
Lucas Clemente
8dc330f818 remove MaybeTriggerBlocked from flowController 2016-07-09 18:09:37 +02:00
Lucas Clemente
a09de18f56 fix alignment of 64bit atomic for x86, see atomic package BUGs section 2016-07-09 15:10:35 +02:00
Lucas Clemente
91f1eb1561 re-enable BLOCKED frame sending
fixes #113, fixes #172, fixes #211
2016-07-09 14:37:16 +02:00
Lucas Clemente
bdbf8d3ebe add BLOCKED frame management to streamFramer
ref #211
2016-07-09 14:29:56 +02:00
Lucas Clemente
d547034ed3 Merge pull request #212 from lucas-clemente/stream-write
Refactor stream.Write
2016-07-09 14:03:46 +02:00
Lucas Clemente
4750924b27 improve tiles demo and remove an empty file 2016-07-08 18:21:46 +02:00
Lucas Clemente
37f2066933 remove caching of streamID lengths in StreamFrame
fixes the final failing test of #83
2016-07-08 18:21:46 +02:00
Lucas Clemente
87c1a2f004 remove sentPacketHandler from packetPacker 2016-07-08 18:21:46 +02:00
Lucas Clemente
66594f7a8a fix flaky session tests
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
50aa7ec52c re-enable most integration tests 2016-07-08 18:21:45 +02:00
Lucas Clemente
c672f461de improve integration test error handling 2016-07-08 18:21:45 +02:00
Lucas Clemente
f43c4c7f1a respect flow control in streamFramer estimated length and HasData()
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
bb8464efe0 copy the slice passed to stream.Write 2016-07-08 18:21:45 +02:00
Lucas Clemente
f8130288a3 fix early garbage collection of streams
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
5cc88f60dc fix handling of connection level window updates 2016-07-08 18:21:45 +02:00
Lucas Clemente
3cbf16b66f add flow control to streamFramer
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
81ae6d44ec introduce protocol.VersionWhatever for when the version doesn't matter
ref #83
2016-07-08 18:21:45 +02:00
Lucas Clemente
5ada9108ae remove FlowController interface
fixes #178, ref #83
2016-07-08 18:21:44 +02:00
Lucas Clemente
d1e3b541d3 replace streamFrameQueue with just-in-time framing of written data
This commits replaces the stream frame queue with a framer which
requests data from the streams just when a frame is needed by the
packet packer. This simplifies a lot of things and allows some other
refactorings, see issue #83.

There are a few pending tests which will be fixed soon.
2016-07-08 18:21:44 +02:00
Marten Seemann
ee77e85af3 increase LargestInOrderAcked when queueing a retransmission
fixes #205
2016-07-08 00:40:19 +08:00
Marten Seemann
8d1827d8d8 allow non-consecutive packet numbers in new SentPacketHandler
ref #186
2016-07-07 23:24:24 +08:00
Marten Seemann
d25976c083 NACK packets below the LowestAcked in new SentPacketHandler
fixes #204
2016-07-07 23:20:22 +08:00
Lucas Clemente
3794ea2b83 Merge branch 'wip-streamwrite' 2016-07-06 10:21:25 +02:00
Marten Seemann
b38d4b37fe don't count retransmission as sent bytes for connection flow control 2016-07-06 10:17:43 +02:00
Marten Seemann
8a9d70488a respect connection flow control window in StreamFrameQueue 2016-07-06 10:17:42 +02:00
Marten Seemann
1b732a4afa add method to FlowControlManager to tell if Stream contribues to connection-level flow control 2016-07-06 10:17:42 +02:00
Marten Seemann
ef9baf67fc use FlowControlManager in StreamFrameQueue 2016-07-06 10:17:42 +02:00
Marten Seemann
e8e6c8922d handle stream level flow control in StreamFrameQueue 2016-07-06 10:17:40 +02:00
Marten Seemann
ac54ac66c7 add methods for sending data to FlowControlManager 2016-07-06 10:14:17 +02:00
Lucas Clemente
9336245ddd add a readme to example/ explaining the certificate 2016-07-05 12:30:08 +02:00
Lucas Clemente
d0efb894ef update certificate for tests 2016-07-05 12:24:54 +02:00
Lucas Clemente
3d4ca214f7 remove DER certificates and use PEMs instead 2016-07-05 12:23:51 +02:00
Lucas Clemente
705da8fd00 switch to AES-GCM as symmetric cipher
fixes #200
2016-07-05 12:13:41 +02:00
Marten Seemann
1fc83757a0 fix panic in QUIC 34 ACK frame parser for incorrect typeBytes
fixes #198
2016-07-05 15:10:22 +08:00
Marten Seemann
da2b2f3a2d parse QUIC 34 ACK Frames with an incomplete range
fixes #194
2016-07-03 23:59:11 +08:00
Marten Seemann
1d358a031f ignore packets smaller than LeastUnacked of a StopWaiting
ref #196
2016-07-03 23:32:08 +08:00
Marten Seemann
8071fda5ee ignore duplicate packets
fixes #197
2016-07-03 23:22:12 +08:00
Marten Seemann
3e604a274d add tests for receiving packets in Session
ref #197
2016-07-03 23:19:07 +08:00
Marten Seemann
d2c89cbf22 detect packets smaller than LeastUnacked in ReceivedPacketHandler
ref #196
2016-07-03 22:46:21 +08:00
Marten Seemann
0ebab92ae1 rename highestInOrderObserved to largestInOrderObserved in new ReceivedPacketHanlder 2016-07-03 21:55:57 +08:00
Marten Seemann
1186af3f99 reject QUIC 34 ACK frames that have an empty first ACK range 2016-06-28 22:14:43 +07:00
Marten Seemann
d14f85d4ec fix race condition in ReceivedPacketHistory 2016-06-27 17:47:27 +07:00
Marten Seemann
497c57d54a use ReceivedPacketHistory to get ACK ranges in new ReceivedPacketHandler
fixes #190
2016-06-27 17:18:44 +07:00
Marten Seemann
ffcdeebeb6 add method to delete old ACK ranges from packet history
ref #190
2016-06-27 16:58:45 +07:00
Marten Seemann
be51851ef6 rename packetHistory to receivedTimes in new ReceivedPacketHandler 2016-06-27 15:31:44 +07:00
Marten Seemann
7da4e3e5fb add method to get ACK ranges from packet history
ref #190
2016-06-27 15:20:03 +07:00