Commit Graph

251 Commits

Author SHA1 Message Date
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
d1d53beaa8 only update last packet number after decryption in session 2016-08-23 12:11:10 +02:00
Lucas Clemente
6d5a9b84e5 reject streams with even IDs opened by the client
fixes #267
2016-08-18 11:40:27 +02:00
Lucas Clemente
781fce5bd7 remove outdated comments 2016-08-18 10:31:41 +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
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
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
a1e2977f50 handle stream creation in streamsMap, remove streams mutex from session 2016-08-08 20:51:57 +02:00
Lucas Clemente
65663c3314 implement GetOrOpenStream in streamsMap 2016-08-08 20:51:57 +02:00
Marten Seemann
50d6ae205d change order of parameters in Stream constructor 2016-08-07 13:12:10 +07:00
Marten Seemann
143c3ea16b remove unused connectionParametersManager from Stream 2016-08-07 13:09:44 +07:00
Marten Seemann
60e38aef43 Revert "remove unneeded streamsMutex from Session"
This reverts commit 100f04f242.
2016-08-07 12:07:05 +07:00
Marten Seemann
100f04f242 remove unneeded streamsMutex from Session 2016-08-06 17:45:21 +07:00
Marten Seemann
1a30313ace only iterate over open Streams in StreamsMap
ref #256
2016-08-06 14:41:47 +07:00
Lucas Clemente
bf04a430ba improve debug messages 2016-08-05 15:07:13 +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
Lucas Clemente
328b02d0a4 remove unused error from session 2016-08-03 09:19:06 +02:00
Marten Seemann
7604f7927d send a StopWaiting with every ACK in QUIC 34
fixes #185
2016-07-29 18:02:43 +07:00
Marten Seemann
73a64fde5f remove StopWaitingManager from new AckHandler 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
5a82b35ca8 put buffers back into the pool after reading packets 2016-07-26 18:44:01 +02:00
Lucas Clemente
daa328460f use in-place decryption when unpacking 2016-07-26 18:33:48 +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
44acb8ca82 remove session.maybeSendPacket, restrict small frame detection to ACKs
ref #217
2016-07-26 13:44:07 +02:00
Lucas Clemente
d9a3980efc remove streamFramer.HasData()
ref #217
2016-07-26 13:43:18 +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
1bc8c882c9 remove session pointer from stream and use a lambda to signal new data 2016-07-11 14:57:54 +02:00
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
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
5cc88f60dc fix handling of connection level window updates 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
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
5651a7cfc1 pass QUIC version number to Frame.MinLength
ref #181
2016-06-19 13:43:58 +07:00