Marten Seemann
1bd1a9e0e5
store the encryption level that a packet was sent with
2017-02-25 08:27:15 +07:00
Marten Seemann
d1c9d8e93d
only send the client version number until the handshake is complete
...
fixes #426
2017-02-20 11:52:00 +07:00
Marten Seemann
6cb48aad71
send correct version number in PublicHeader
2017-01-14 18:52:25 +07:00
Marten Seemann
fece562b22
compose PublicHeader depending on perspective set in packetPacker
2017-01-14 18:52:12 +07:00
Marten Seemann
756a421065
calculate PublicHeader length for packets with VersionFlag and ResetFlag
2017-01-14 18:45:16 +07:00
Marten Seemann
6c0a885a0e
pass perspective to packetPacker
2017-01-14 18:45:16 +07:00
Marten Seemann
2b7c67d297
create handshake.CryptoSetup interface
2017-01-14 18:45:14 +07:00
Marten Seemann
cc2d966d84
write PublicHeaders for packets sent as a client
...
fixes #346
2017-01-14 18:45:13 +07:00
Marten Seemann
c6c1233e98
simplify the packPacket method in the packetPacker
2017-01-11 00:13:52 +07:00
Marten Seemann
edf6ee3dfc
implement a sophisticated ack algorithm
...
fixes #354
2017-01-09 15:01:44 +07:00
Marten Seemann
ebc053dbe0
create interface for the ConnectionParametersManager
2016-12-08 18:39:14 +07:00
Marten Seemann
0d6356d9d8
rename PublicHeader.WritePublicHeader to PublicHeader.Write
2016-11-06 22:34:16 +07:00
Lucas Clemente
2970ee3ac5
fix public header write error handling
2016-09-16 21:01:00 +02:00
Lucas Clemente
809ea02511
use packetPacker.controlFrames as stack, decreasing allocs
2016-09-07 15:20:26 +02:00
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