Commit Graph

260 Commits

Author SHA1 Message Date
Marten Seemann
6eeccfd123 retransmit lost packets, send StopWaiting frames 2016-04-27 18:56:21 +07:00
Lucas Clemente
bd67f537c9 add support for receiving BLOCKED frames 2016-04-27 13:02:00 +02:00
Lucas Clemente
0d6642464d remove some debug messages 2016-04-27 12:52:06 +02:00
Lucas Clemente
607ab843d6 close session when crypto stream errors 2016-04-27 12:49:55 +02:00
Marten Seemann
2056960e07 only delete a Packet from history in SentPacketHandler once it has been ACKed 2016-04-27 17:19:54 +07:00
Marten Seemann
2c95141ee1 add Len() and ContainsPacketNumber() to NackRange 2016-04-27 16:04:50 +07:00
Marten Seemann
a4debcac71 implement contiguous NACK frame writing 2016-04-27 15:39:07 +07:00
Marten Seemann
936d34f875 implement contiguous NACK frame parsing 2016-04-27 13:57:28 +07:00
Marten Seemann
67a36870ea check for maximum packet size when packing control frames 2016-04-27 11:40:20 +07:00
Marten Seemann
160db13bdb close the connection on an MapAccess error in SentPacketHandler 2016-04-27 11:34:35 +07:00
Marten Seemann
3f6b228d07 fix splitting of StreamFrames in PacketPacker 2016-04-27 10:09:54 +07:00
Marten Seemann
e4fc732d37 only increase packet number in PacketPacker when actually sending a packet 2016-04-27 09:46:13 +07:00
Marten Seemann
6db8ea285a handle SentPacketHandler errors when sending packets 2016-04-27 09:33:52 +07:00
Lucas Clemente
729505738b add session tests 2016-04-26 22:11:27 +02:00
Lucas Clemente
c5197bf42e fix server test 2016-04-26 19:13:26 +02:00
Lucas Clemente
5d8293716e add includeStreamFrames option to PacketPacker 2016-04-26 19:04:42 +02:00
Lucas Clemente
270b2f0f99 stop session go-routine on Close() 2016-04-26 18:30:51 +02:00
Lucas Clemente
a5a06a25c2 remove udp references from session to simplify testing 2016-04-26 18:30:51 +02:00
Marten Seemann
8339f210cb handle control frames and Stream frames separately in PacketPacker 2016-04-26 23:30:43 +07:00
Marten Seemann
a962c63642 don't queue ACK frames 2016-04-26 22:46:39 +07:00
Marten Seemann
e27d3ea3f8 ReceivedPacketHandler only generates ACKs if packets were received after the last ACK 2016-04-26 22:38:10 +07:00
Lucas Clemente
43a16a8fce add session test for closing with errors 2016-04-26 16:49:11 +02:00
Lucas Clemente
df08f109e7 add support for reading and writing QUIC's ufloat16 2016-04-26 16:47:26 +02:00
Lucas Clemente
83df3be65e close streams when Session.Close() is called 2016-04-26 15:37:52 +02:00
Lucas Clemente
9fc874be53 add newline to crypto error messages 2016-04-26 15:37:52 +02:00
Marten Seemann
4659bf7acb store the payload of sent packets as a slice of Frames 2016-04-26 20:35:30 +07:00
Marten Seemann
eada642cc1 make PacketPacker assemble frames to pack into a Packet 2016-04-26 20:19:09 +07:00
Lucas Clemente
6f38ae3da2 implement handling of RST_STREAM frames
fixes #15
2016-04-26 14:57:34 +02:00
Lucas Clemente
5db81d8874 make stream.Write() return remote errors 2016-04-26 14:41:02 +02:00
Lucas Clemente
b9f37f9618 accept truncated packet numbers 2016-04-26 12:13:23 +02:00
Marten Seemann
f204b088a6 rename frame.MaxLength() to frame.MinLength() 2016-04-26 17:02:00 +07:00
Lucas Clemente
8f221e6eab improve error handling in session 2016-04-26 10:27:11 +02:00
Marten Seemann
7e9f185f79 close connection if the entropy of a received ACK is incorrect 2016-04-26 11:17:16 +07:00
Marten Seemann
c8f48fe5bc ignore duplicate ACK and out-of-order ACK errors in Session 2016-04-26 10:48:14 +07:00
Marten Seemann
b4fae00880 rename IncomingPacketAckHandler to ReceivedPacketHandler 2016-04-26 10:17:18 +07:00
Marten Seemann
0088636798 rename OutgoingPacketAckHandler to SentPacketHandler 2016-04-26 10:07:00 +07:00
Lucas Clemente
ccc6d23a7d fix a number of races and bugs with stream closing 2016-04-25 22:19:02 +02:00
Lucas Clemente
23a1e08e90 make stream private 2016-04-25 17:54:00 +02:00
Marten Seemann
a79f7c4dc6 rewrite of OutgoingPacketAckHandler 2016-04-25 22:43:42 +07:00
Lucas Clemente
f9c90382a4 make some session fields private 2016-04-25 17:40:55 +02:00
Lucas Clemente
ecbec2dcc6 add stream tests and fix bug with stream.ReadByte 2016-04-25 17:33:41 +02:00
Lucas Clemente
e253cbe02f remove closed streams from session 2016-04-25 16:56:07 +02:00
Lucas Clemente
f8b804d2c1 add some session tests 2016-04-25 16:38:53 +02:00
Lucas Clemente
6ac3ab7504 simplify stream 2016-04-25 16:25:22 +02:00
Lucas Clemente
284ffc6665 add support for closing streams, either with FinBit or remote error 2016-04-25 16:18:53 +02:00
Lucas Clemente
9a13c7eec6 add utils tests 2016-04-25 16:17:48 +02:00
Lucas Clemente
a126e0e606 refactor session to support very basic packet pacing 2016-04-25 14:59:26 +02:00
Marten Seemann
c6b69e632e add Substract method for EntropyAccumulator 2016-04-25 19:04:15 +07:00
Marten Seemann
a3ecf2ee69 more tests for LargestObserved in OutgoingPacketAckHandler 2016-04-25 18:07:40 +07:00
Lucas Clemente
a1d0056867 implement handling of STOP_WAITING frames for incoming packets 2016-04-25 12:48:09 +02:00