Commit graph

600 commits

Author SHA1 Message Date
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
Marten Seemann
f240df6ea5 implement basic flow control
fixes #37
2016-05-03 12:07:01 +07:00
Lucas Clemente
6178ef83fe discard undecryptable packets
hopefully fixes issue #33, the workaround is tracked in #38
2016-05-02 16:45:26 +02:00
Marten Seemann
06b51871b1 close session when receiving a ConnectionCloseFrame
fixes #28
2016-04-30 10:04:45 +07:00
Lucas Clemente
480d339f9a implement public reset sending in session
fixes #14, #33
2016-04-29 16:50:09 +02:00
Lucas Clemente
c07ad6ab76 implement reading and writing of ACK delay time 2016-04-28 18:08:43 +02:00
Lucas Clemente
607ab843d6 close session when crypto stream errors 2016-04-27 12:49:55 +02:00
Lucas Clemente
729505738b add session tests 2016-04-26 22:11:27 +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
Lucas Clemente
43a16a8fce add session test for closing with errors 2016-04-26 16:49:11 +02:00
Lucas Clemente
83df3be65e close streams when Session.Close() is called 2016-04-26 15:37:52 +02:00
Lucas Clemente
6f38ae3da2 implement handling of RST_STREAM frames
fixes #15
2016-04-26 14:57:34 +02: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
Lucas Clemente
f9c90382a4 make some session fields private 2016-04-25 17:40:55 +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