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
Marten Seemann
30449870e4
implement packet history to efficiently calculate ACK ranges
...
ref #190
2016-06-27 15:10:41 +07:00
Marten Seemann
5e8c6e59f6
remove NackRanges from new AckFrame
2016-06-27 11:22:35 +07:00
Marten Seemann
f958aa9e21
simplify packetHistory in new ReceivedPacketHandler
2016-06-26 17:44:38 +07:00
Marten Seemann
1786c952c5
fix duplicate and out-of-order ACK detection in SentPacketHandler
...
fixes #192
2016-06-26 16:15:34 +07:00
Marten Seemann
dbf76815f4
rename highestInOrderAckedPacketNumber in new SentPacketHandler
2016-06-25 20:04:42 +07:00
Marten Seemann
fe1fb7a5f4
delete retransmitted packets from QUIC 34 SentPacketHandler packetHistory
...
fixes #188
2016-06-24 16:42:47 +07:00
Marten Seemann
38c0c3d0aa
rename LargestObserved to LargestAcked in QUIC 34 SentPacketHandler
2016-06-24 14:36:32 +07:00
Marten Seemann
d86d981319
rename LargestObserved to LargestAcked in QUIC 34 ACK frame
2016-06-24 14:30:39 +07:00
Marten Seemann
ab1db83134
pack QUIC 34 packets with the correct maximum size
...
fixes #187
2016-06-23 18:23:34 +07:00
Marten Seemann
5e890a8f61
remove EntropyAccumulator from QUIC 34 AckHandler
...
ref #55
2016-06-23 11:11:52 +07:00
Marten Seemann
4952333ae7
remove entropy from QUIC 34 AckHandler Packet
...
ref #55
2016-06-23 11:05:12 +07:00
Marten Seemann
9bb8a56b94
remove Entropy from QUIC 34 StopWaitingManager
...
ref #55
2016-06-23 11:03:31 +07:00
Marten Seemann
b9091ad26c
use new AckFrame in ReceivedPacketHandler
...
ref #55
2016-06-23 10:57:08 +07:00
Marten Seemann
ec75fa2edb
use new AckFrame in SentPacketHandler
...
ref #55
2016-06-23 10:15:39 +07:00