Commit Graph

67 Commits

Author SHA1 Message Date
Marten Seemann
ffbd68770e remove closed streams from WindowUpdateManager
fixes #99
2016-05-27 19:08:05 +07:00
Lucas Clemente
fa2e34d360 require and generate source address tokens in crypto setup
fixes #121
2016-05-24 11:20:16 +02:00
Marten Seemann
e2254f1bbd limit number of packets stored in SentPacketHandler
fixes #140
2016-05-24 16:06:48 +07:00
Marten Seemann
bf4aa2dce9 remove closed streams from BlockedManager
fixes #120
2016-05-21 19:19:41 +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
c748a8dfc0 create FlowController interface 2016-05-19 19:49:33 +07: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
9930de68c8 send stream-level Blocked frames at the right time
fixes #110
2016-05-19 11:53:51 +07:00
Lucas Clemente
4822def788 implement timeout-based retransmission (RTO)
fixes #56
2016-05-18 23:21:33 +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
Marten Seemann
f147ebc9bb implement basic connection level flow control
fixes #39
2016-05-18 17:30:08 +07:00
Lucas Clemente
d6ef71a54c simplify and reorganize session tests 2016-05-17 19:37:16 +02:00
Lucas Clemente
15e7fe6c73 don't block the server when too many packets are queued in a session
fixes #35
2016-05-17 16:52:55 +02:00
Lucas Clemente
68b529a54c refactor session to remove second Close parameter
fixes #102
2016-05-17 14:56:33 +02:00
Marten Seemann
42f3091e1b send Blocked frames for flow control blocked streams
fixes #100
2016-05-17 19:00:11 +07:00
Lucas Clemente
90abb40ffc ignore data for closed streams 2016-05-17 12:56:29 +02:00
Lucas Clemente
d0e6b993bb use new error codes throughout the server
fixes #86
2016-05-17 12:49:59 +02:00
Marten Seemann
fb6d90b813 cosmetic changes in tests 2016-05-16 18:32:08 +07:00
Marten Seemann
de871f0a4f ignore WindowUpdate frames for already closed streams
fixes #104
2016-05-16 13:36:35 +07:00
Lucas Clemente
d469a19b62 rename {New,GetOrCreate}Stream stream to {,GetOr}OpenStream 2016-05-15 18:51:23 +02:00
Lucas Clemente
af522c1538 privatize session.updateReceiveFlowControlWindow
ref #60
2016-05-15 18:50:04 +02:00
Lucas Clemente
a10d58c8ca privatize session.run
ref #60
2016-05-15 18:49:09 +02:00
Lucas Clemente
2fb42afc8a privatize session.queueStreamFrame
ref #60
2016-05-15 18:49:01 +02:00
Lucas Clemente
028615b8f0 privatize session.handlePacket
ref #60
2016-05-15 18:48:11 +02:00
Lucas Clemente
9cc4bb3ccf privatize publicHeader
ref #60
2016-05-15 15:44:14 +02:00
Lucas Clemente
f79f7f7724 privatize newSession
ref #60
2016-05-15 15:33:36 +02:00
Lucas Clemente
d4de18c472 only delete streams once we are done reading AND writing
fixes #98
2016-05-15 15:03:02 +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
540941117e cosmetic changes in tests 2016-05-15 13:08:56 +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
Lucas Clemente
c7126137d1 queue undecryptable packets for later decryption & possibly send PRST
fixes #38, fixes #69, fixes #73
2016-05-12 16:46:18 +02:00
Marten Seemann
0df44e46e5 shorten LargestObserved in ACK frames
fixes #82
2016-05-12 20:01:23 +07:00
Marten Seemann
3683763dc0 send DelayTime in ACK frames
fixes #81
2016-05-12 17:43:48 +07:00
Marten Seemann
552efb57de fix StreamID validation
closes #78
2016-05-11 19:15:10 +07:00
Marten Seemann
e957ad6184 check that all new Streams initiated by the client have an odd StreamID
work towards #78
2016-05-11 18:47:06 +07:00
Marten Seemann
b1731773cf only send Data length field in StreamFrames when necessary
fixes #77
2016-05-11 13:25:51 +07:00
Marten Seemann
41fa096480 add option to write StreamFrames without Data length field
work towards #77
2016-05-11 10:32:18 +07:00
Marten Seemann
9a99df48a6 send shorter StreamIDs
fixes #74
2016-05-11 01:00:28 +07:00
Marten Seemann
7169584ff9 implement sending of shortened packet numbers 2016-05-10 17:25:52 +07:00
Lucas Clemente
a219b72968 improve flaky goroutine tests
hopefully fixes #65
2016-05-09 19:21:39 +02:00
Lucas Clemente
b42bad8481 fix flaky server tests
ref #65
2016-05-09 17:57:20 +02:00
Lucas Clemente
c3ff781f08 use cubic for congestion control
fixes #23
2016-05-08 18:29:08 +02:00
Marten Seemann
bb807fa5bd implement sending of truncated ConnectionIDs 2016-05-06 21:53:21 +07:00
Lucas Clemente
7e0d59a5e6 make session timeout according to ICSL
fixes #54
2016-05-05 23:16:49 +02:00
Marten Seemann
77f34a9207 set initial flow control window from handshake parameters
fixes #50
2016-05-05 11:29:12 +07:00
Lucas Clemente
ef6e8cf1b4 make server delete sessions when they are closed
fixes #46
2016-05-04 16:34:08 +02:00
Lucas Clemente
150795d702 make session send packets immediately 2016-05-04 15:23:59 +02:00
Lucas Clemente
c068cbcb8f replace certificate path with tls.Config instance throughout the server
The example server now reads the certificate and key data itself. Tests
use the new testdata package, where the sample key & cert are stored.

Fixes #24
2016-05-03 16:41:25 +02:00