Commit graph

226 commits

Author SHA1 Message Date
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
Marten Seemann
8b845fada9 make PublicHeader public 2016-08-04 15:45:11 +07:00
Marten Seemann
9b172fe303 fix session tests with version 33
fixes #242
2016-08-02 18:27:14 +07:00
Lucas Clemente
0e05534909 improve main package test coverage
ref #241
2016-08-02 11:49:25 +02:00
Lucas Clemente
8856304b65 improve flaky session test 2016-07-29 15:14:46 +02:00
Marten Seemann
7604f7927d send a StopWaiting with every ACK in QUIC 34
fixes #185
2016-07-29 18:02:43 +07:00
Lucas Clemente
7ab2eb1b93 improve error message when closing a connection
fixes #228
2016-07-29 12:20:01 +02:00
Marten Seemann
2d48210fa0 run Session tests with new AckHandler, minor fixes
ref #55
2016-07-29 16:47:14 +07:00
Lucas Clemente
3a88a8cffa delete flow controllers for closed streams
fixes #177
2016-07-28 16:45:55 +02:00
Lucas Clemente
daa328460f use in-place decryption when unpacking 2016-07-26 18:33:48 +02:00
Lucas Clemente
5f774c8e03 change fcm.SendWindowSize to include conn window to simplify framer 2016-07-26 17:06:54 +02:00
Lucas Clemente
950e59fa3d add a sync.Pool of byte buffers with maximum packet size as cap
ref #217
2016-07-26 15:36:28 +02:00
Lucas Clemente
eb9c23096d remove outdated test 2016-07-26 13:44:09 +02:00
Lucas Clemente
44acb8ca82 remove session.maybeSendPacket, restrict small frame detection to ACKs
ref #217
2016-07-26 13:44:07 +02:00
Lucas Clemente
6f657c02e4 fix some linter warnings 2016-07-26 13:42:30 +02:00
Marten Seemann
03bad0e86b use the same interface for new and legacy AckHandlers
ref #55
2016-07-26 18:31:54 +07:00
Marten Seemann
ef194015de use wrapped legacy ACK frame
ref #55
2016-07-26 12:30:48 +07:00
Marten Seemann
99d22b0908 open new stream when receiving a WindowUpdate for an unknown stream
fixes #203
2016-07-25 16:37:27 +07:00
Lucas Clemente
f04d14ac3e use flow controller for window update handling, remove windowUpdateMgr 2016-07-11 14:54:32 +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
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
f8130288a3 fix early garbage collection of streams
ref #83
2016-07-08 18:21:45 +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
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
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
1786c952c5 fix duplicate and out-of-order ACK detection in SentPacketHandler
fixes #192
2016-06-26 16:15:34 +07:00
Marten Seemann
eb03ed5334 rename AckHandler package to AckHandlerLegacy 2016-06-21 19:51:26 +07:00
Marten Seemann
288cb9e143 rename AckFrame to AckFrameLegacy 2016-06-21 19:51:26 +07:00
Marten Seemann
5d02033f0f use FlowControlManager in Stream for Reading data 2016-06-15 19:39:50 +07:00
Marten Seemann
37e57c6f05 temporarily disable sending of Blocked frames
ref #172
2016-06-15 12:29:09 +07:00
Marten Seemann
459080a6dc fix flaky tests on Travis 2016-06-11 13:24:28 +07:00