Commit Graph

274 Commits

Author SHA1 Message Date
Lucas Clemente
340fb52848 cleanup some v33 leftovers 2016-09-01 20:26:32 +02:00
Lucas Clemente
6bb89d4902 remove entropy from packet packer 2016-09-01 20:26:32 +02:00
Lucas Clemente
d76d86a7e1 fix detection of only-ack packets
ref #315
2016-09-01 20:24:19 +02: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
78fab5c264 use PacketNumberGenerator in PacketPacker 2016-08-11 11:03:45 +02:00
Lucas Clemente
805c21cb77 use LeastUnacked in packet number derivation
fixes #271
2016-08-10 13:32:36 +02:00
Marten Seemann
8b845fada9 make PublicHeader public 2016-08-04 15:45:11 +07: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
90aa8cfa95 make packetPacker use in-place encryption
ref #217
2016-07-26 15:16:23 +02:00
Lucas Clemente
d5255a4075 update AEADs to allow in-place encryption and decryption
ref #217
2016-07-26 15:13:15 +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
136a1c574c remove call to streamFramer.HasData in packet packer
ref #217
2016-07-26 13:42:31 +02:00
Lucas Clemente
7adf760fa4 change streamFramer to pop as many stream frames as possible at once
ref #217
2016-07-26 13:42:30 +02:00
Lucas Clemente
58ec83c4ba remove unneeded function call to framer.HasData 2016-07-12 14:42:53 +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
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
87c1a2f004 remove sentPacketHandler from packetPacker 2016-07-08 18:21:46 +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
ab1db83134 pack QUIC 34 packets with the correct maximum size
fixes #187
2016-06-23 18:23:34 +07:00
Marten Seemann
eb03ed5334 rename AckHandler package to AckHandlerLegacy 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
Marten Seemann
37e57c6f05 temporarily disable sending of Blocked frames
ref #172
2016-06-15 12:29:09 +07:00
Marten Seemann
fe45644335 don't write private header for QUIC Version >= 34
ref #55
2016-06-11 11:15:03 +07:00
Marten Seemann
b1c27b5eca initialize StreamFrameQueue in Session, not in PacketPacker 2016-06-10 19:06:40 +07:00
Lucas Clemente
5ed0182b67 fix a race condition in CryptoSetup
CryptoSetup's AEADs were changed between calls to
DiversificationNonce() and Seal()
2016-06-02 16:13:06 +02:00
Marten Seemann
2f49a9525a add DataLen function to StreamFrame 2016-06-01 09:23:26 +07:00
Marten Seemann
26d18976ff implement round-robin scheduling in StreamFrameQueue
fixes #148
2016-05-27 13:38:39 +07:00
Marten Seemann
758334f6aa move splitting of StreamFrames to StreamFrameQueue
work towards #146
2016-05-26 11:14:38 +07:00
Lucas Clemente
2606b891e2 add diversification to AEADs and conditionally include in public header
ref #51
2016-05-20 23:41:04 +02:00
Lucas Clemente
c6a9e7e575 implement diversification nonce writing in public header
ref #51
2016-05-20 23:13:55 +02:00
Marten Seemann
57066faef9 add seperate PacketPacker method to pack a ConnectionClose packet
fixes #134
2016-05-20 20:49:29 +07:00
Marten Seemann
d571c0bfd5 remove stream from BlockManager when a WindowUpdate increases its offset
fixes #130
2016-05-20 12:26:10 +07:00
Marten Seemann
ce26ec2789 place BlockedFrames before the corresponding StreamFrame in a packet
fixes #114
2016-05-19 14:32:29 +07:00
Marten Seemann
52de95f21f don't ignore queued control frames when packing a packet 2016-05-19 13:15:47 +07:00
Marten Seemann
9930de68c8 send stream-level Blocked frames at the right time
fixes #110
2016-05-19 11:53:51 +07:00
Marten Seemann
f751566f00 don't panic on failed type assertion in PacketPacker
related to #93
2016-05-19 10:55:34 +07:00
Lucas Clemente
7a97f34fac don't panic 🤓
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
9cc4bb3ccf privatize publicHeader
ref #60
2016-05-15 15:44:14 +02:00
Lucas Clemente
864105271e privatize streamFrameQueue
ref #60
2016-05-15 15:27:39 +02:00
Marten Seemann
089582dd9f improve sending of WindowUpdate frames
fixes #96
2016-05-15 18:05:15 +07:00
Marten Seemann
a3ff4dd891 send WindowUpdate frames
fixes #19
2016-05-15 16:48:42 +07:00
Marten Seemann
0d29bdc499 pack WindowUpdate frames into two packets if they don't fit into one
work towards #96
2016-05-15 11:41:07 +07:00
Marten Seemann
13f15c8c23 add method to PacketPacker to send WindowUpdate frames
work towards #19
2016-05-15 09:52:31 +07:00
Marten Seemann
561acc08e4 pack control frames into separate packets if they don't fit into one 2016-05-14 18:07:24 +07:00
Marten Seemann
ba799cef01 delay transmission of small packets to wait for new data
fixes #9, fixes #61
2016-05-13 17:06:30 +07:00
Marten Seemann
076349554f move packet number calculations to protocol package 2016-05-12 18:18:15 +07:00
Marten Seemann
2f6e2c1201 remove PacketNumber from Frame interface Write method 2016-05-12 16:22:08 +07:00