Commit Graph

544 Commits

Author SHA1 Message Date
Marten Seemann
e2254f1bbd limit number of packets stored in SentPacketHandler
fixes #140
2016-05-24 16:06:48 +07:00
Marten Seemann
931687e9a4 better function name in SentPacketHandler 2016-05-24 15:39:48 +07:00
Lucas Clemente
9539169fa4 implement source address token generation and validation
ref #121
2016-05-23 18:13:39 +02:00
Marten Seemann
c3f8837dfe improve StreamFrame tests 2016-05-23 12:39:02 +07:00
Marten Seemann
5dc7f8b0ca add missing test for StopWaitingManager call in SentPacketHandler 2016-05-22 23:59:23 +07:00
Marten Seemann
f33058c504 move the RetransmissionThreshold to the server parameters 2016-05-22 23:45:09 +07:00
Marten Seemann
33de224ce0 return error empty StreamFrames that don't have the FinBit set 2016-05-22 12:55:21 +07:00
Marten Seemann
68f450d549 log ConnectionClose packets in debug log 2016-05-22 12:01:32 +07:00
Marten Seemann
bf4aa2dce9 remove closed streams from BlockedManager
fixes #120
2016-05-21 19:19:41 +07:00
Marten Seemann
398e2f3530 implement a basic ring buffer
ref #84, #116
2016-05-21 17:19:01 +07:00
Lucas Clemente
6f3d7f5987 enable version 33
fixes #51
2016-05-21 00:05:08 +02:00
Lucas Clemente
241c9f3a3c add support for diversification to key derivation
ref #51
2016-05-21 00:04:28 +02: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
Lucas Clemente
2feb376e67 fix a race condition where the session timer could have fired early 2016-05-20 16:49:39 +02:00
Marten Seemann
57066faef9 add seperate PacketPacker method to pack a ConnectionClose packet
fixes #134
2016-05-20 20:49:29 +07:00
Lucas Clemente
d77120a921 add some useful options to example server (commented out) 2016-05-20 13:09:44 +02:00
Lucas Clemente
52d734f644 fix 0-RTT handshakes by not requiring SNOs for initial encryption
fixes #118, fixes #119
2016-05-20 13:05:51 +02:00
Marten Seemann
a1ba23aebd add garbage collector for ReceivedPacketHandler
fixes #7
2016-05-20 17:09:47 +07:00
Marten Seemann
283f75aa98 remove unused byte masks from WriteUint functions 2016-05-20 14:02:54 +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
Lucas Clemente
7f907a17c2 reduce slice allocations in TruncateConnectionID 2016-05-20 01:09:04 +02:00
Lucas Clemente
224524c8d3 move to a faster chacha20poly1305 implementation
refs #125
2016-05-20 00:43:08 +02:00
Lucas Clemente
f86875f746 reject small CHLOs to prevent amplification attacks
fixes #1
2016-05-19 16:20:22 +02:00
Marten Seemann
c748a8dfc0 create FlowController interface 2016-05-19 19:49:33 +07:00
Lucas Clemente
d148943bc8 add pprof support to example server 2016-05-19 14:28:37 +02:00
Lucas Clemente
f96282b4d4 don't set RTO and small packet timeout when we can't actually send
fixes #126
2016-05-19 14:24:35 +02:00
Lucas Clemente
bd6d893cc4 replace time.After in session with a single timer
fixes #128, fixes #127
2016-05-19 14:24:35 +02:00
Marten Seemann
55727ecd96 implement writing of RstStreamFrames 2016-05-19 16:39:32 +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
d14a27f193 update roadmap 2016-05-18 23:22:34 +02:00
Lucas Clemente
838291cd14 don't set the small packets timer when no packet is ready for sending 2016-05-18 23:22:23 +02:00
Lucas Clemente
4822def788 implement timeout-based retransmission (RTO)
fixes #56
2016-05-18 23:21:33 +02:00
Lucas Clemente
0a233a39b9 add utils.InfDuration constant 2016-05-18 22:43:32 +02:00
Lucas Clemente
753f219638 implement RTO computation in sentPacketHandler
ref #56
2016-05-18 20:50:22 +02:00
Lucas Clemente
a0228a9049 move congestion control from session to ackhandler
this simplifies things a bit, especially in prep for #56
2016-05-18 19:35:31 +02:00
Lucas Clemente
7a97f34fac don't panic 🤓
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
3dc50821d6 close the rcv-end of a h2 stream when the HEADERS has END_STREAM set
fixes #109
2016-05-18 13:33:36 +02:00
Lucas Clemente
b185ea04e1 add CloseRemote method to stream
ref #109
2016-05-18 13:33:36 +02:00
Marten Seemann
ceb5ef48c4 improve WindowUpdate thresholds
fixes #111
2016-05-18 18:19:18 +07:00
Marten Seemann
f147ebc9bb implement basic connection level flow control
fixes #39
2016-05-18 17:30:08 +07:00
Marten Seemann
7105b37f91 don't allow renegotiation of flow control parameters 2016-05-18 14:03:04 +07:00
Marten Seemann
9ecbfa65ac add methods needed for connection-level FlowController
ref #39
2016-05-18 12:30:25 +07:00
Marten Seemann
e0801262bc actually send Blocked frames
fixes #100
2016-05-18 12:06:14 +07:00
Marten Seemann
daeb601cdc keep track of highest byte received in FlowController
ref #39
2016-05-18 09:32:36 +07:00
Lucas Clemente
d6ef71a54c simplify and reorganize session tests 2016-05-17 19:37:16 +02:00
Lucas Clemente
2864c97a70 remove outdated TODOs 2016-05-17 19:24:49 +02:00