Commit Graph

501 Commits

Author SHA1 Message Date
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
Lucas Clemente
e8b2d9748a capitalize TODOs 2016-05-17 19:24:49 +02:00
Lucas Clemente
d04ee083a7 remove TODOs from server.go
we don't send public resets, since we don't have any connection info yet
2016-05-17 19:24:49 +02:00
Lucas Clemente
8451fcf39b slightly simplify public reset writing 2016-05-17 19:24:49 +02:00
Marten Seemann
1ef224d9bf make the BlockedFrame queue thread-safe 2016-05-18 00:20:43 +07:00
Marten Seemann
b9e141d277 make the FlowController thread-safe 2016-05-18 00:11:52 +07: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
078b563526 don't ignore window updates for unknown streams, see #108 2016-05-17 13:11:57 +02:00
Marten Seemann
d2766cad02 add FlowController method to determine if we need to send a Blocked frame
ref #100
2016-05-17 17:59:18 +07:00
Lucas Clemente
e4a7386ca1 add error message to internal errors
reopens #107
2016-05-17 12:56:33 +02:00
Lucas Clemente
1359c0e49c fix a linter warning 2016-05-17 12:56:33 +02: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
Lucas Clemente
287ff59138 import error codes from chrome 2016-05-17 11:58:52 +02:00
Lucas Clemente
fdfc7f5502 speed up packet number tests by reducing iterations 2016-05-17 11:57:45 +02:00
Lucas Clemente
feebfb8183 speed up tests 2016-05-17 11:31:32 +02:00
Lucas Clemente
466d50345a move error conversion from session to qerr.ToQuicError 2016-05-17 10:38:34 +02:00
Lucas Clemente
bfaa4200df move all error things to new qerr package, replacing errorcodes 2016-05-17 10:38:34 +02:00
Marten Seemann
62da35d613 implement a basic flow controller
needed for #39, #100, #106
2016-05-17 15:21:30 +07:00
Lucas Clemente
3cc7d7f289 add a test that checks that each errorcode has a string representation 2016-05-17 01:22:42 +02:00
Lucas Clemente
dc2a14a5f7 add error code string representation to QuicError.Error 2016-05-17 00:31:18 +02:00
Lucas Clemente
69e302812d move ErrorCode type to errorcodes package 2016-05-17 00:25:51 +02:00
Lucas Clemente
fec9786939 error cosmetics 2016-05-17 00:12:04 +02:00
Lucas Clemente
dd13836aa9 rename NewQuicError to Error 2016-05-17 00:11:48 +02:00
Lucas Clemente
f624592198 remove unused error codes and name the constants according to go style
ref #86
2016-05-16 20:41:56 +02:00
Marten Seemann
565f4c9fda support largest observed packet number missing in ACK frames
fixes #63
2016-05-16 21:50:58 +07:00
Marten Seemann
d5c7a62066 don't send internal error messages to the client
fixes #107
2016-05-16 19:14:11 +07:00
Marten Seemann
712e682d21 improve errors in SentPacketHandler 2016-05-16 18:44:11 +07:00
Marten Seemann
fb6d90b813 cosmetic changes in tests 2016-05-16 18:32:08 +07:00
Marten Seemann
0d4dd8869d detect stream flow control violations
fixes #97
2016-05-16 18:15:40 +07:00
Marten Seemann
4de41d0737 set offset in WindowUpdates based on read position and window increment
fixes #105
2016-05-16 17:00:06 +07:00
Marten Seemann
de871f0a4f ignore WindowUpdate frames for already closed streams
fixes #104
2016-05-16 13:36:35 +07:00
Lucas Clemente
93c52a3414 fix support for version 30
fixes #101, ref #70
2016-05-15 19:58:34 +02: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
ce1f7b2aaf privatize closeCallback
ref #60
2016-05-15 15:58:35 +02:00
Lucas Clemente
0cb0ce8ad8 privatize parsePublicHeader
ref #60
2016-05-15 15:44:50 +02:00
Lucas Clemente
9cc4bb3ccf privatize publicHeader
ref #60
2016-05-15 15:44:14 +02:00
Lucas Clemente
caec66b927 fix linter warning in server test 2016-05-15 15:38:43 +02:00