Commit Graph

1163 Commits

Author SHA1 Message Date
Marten Seemann
71227437ee only retransmit WindowUpdates if no higher WindowUpdate has been sent
fixes #394
2017-01-14 15:16:12 +07:00
Marten Seemann
db22dae089 simplify the selection of frames for retransmission
ref #394
2017-01-14 13:59:57 +07:00
Marten Seemann
853a6d168e Merge pull request #390 from lucas-clemente/fix-384
reset streams that the request body is not read from
2017-01-11 09:19:21 +07:00
Marten Seemann
c6c1233e98 simplify the packPacket method in the packetPacker 2017-01-11 00:13:52 +07:00
Marten Seemann
54ec7f2fc6 fix flaky server test on AppVeyor
fixes #393
2017-01-10 17:14:05 +07:00
Marten Seemann
daf6ce094f Merge pull request #388 from lucas-clemente/wip-ackalgorithm
implement a better ACK algorithm
2017-01-10 12:15:42 +07:00
Marten Seemann
64bc80339e reset streams that the request body is not read from
fixes #384
2017-01-09 23:47:01 +07:00
Marten Seemann
896f4e138b increase the ACK send delay to the value Chromium is using 2017-01-09 18:45:43 +07:00
Marten Seemann
edf6ee3dfc implement a sophisticated ack algorithm
fixes #354
2017-01-09 15:01:44 +07:00
Marten Seemann
634d2dc6b7 add a function to get the highest ACK range in receivedPacketHistory 2017-01-09 11:04:30 +07:00
Marten Seemann
7fc9d59381 determine if a received packet is retransmittable 2017-01-09 11:04:29 +07:00
Marten Seemann
d541472101 Merge pull request #387 from lucas-clemente/wip-streamrewrite
Rewrite large parts of the stream, handle resetting, both remotely and locally
2017-01-09 11:02:21 +07:00
Marten Seemann
980d0e398f don’t add bytes read after receiving a RST_STREAM to flow controller 2017-01-09 10:15:12 +07:00
Marten Seemann
d246a295d2 add more stream tests for reading after receiving a RST_STREAM 2017-01-09 09:51:21 +07:00
Marten Seemann
d6a0a145a4 correclty detected the closed state of a stream
fixes #380
2017-01-09 09:49:45 +07:00
Marten Seemann
7a91794292 send RST_STREAM frames
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
c705a19f11 fix race condition in stream 2017-01-09 09:49:44 +07:00
Marten Seemann
57e6749955 stream code cleanup 2017-01-09 09:49:44 +07:00
Marten Seemann
a86f31d789 implement a stream.Reset() method
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
b741724069 move utils.Stream interface to separate file 2017-01-09 09:49:43 +07:00
Marten Seemann
4e0ef58bab allow stream.Read for streams that a RST was received for
and a lot of code improvements

fixes #385
2017-01-09 09:49:43 +07:00
Marten Seemann
72e9994c9c allow reuse of connection IDs
fixes #347
2017-01-07 19:21:18 +07:00
Marten Seemann
bf615659d6 ignore public reset packets, and log them
ref #34
2017-01-07 14:56:24 +07:00
Marten Seemann
f71e54534a fix parsing of the PublicHeader of public reset packets
ref #34
2017-01-07 14:49:39 +07:00
Marten Seemann
6c1e24964a implement parsing of public reset packets
ref #34
2017-01-07 14:07:59 +07:00
Marten Seemann
53d2290a59 only allow writing a response body for status codes that allow bodies
fixes #386
2017-01-07 09:49:22 +07:00
Marten Seemann
563c56fa74 remove unused newStreamImpl from Session 2017-01-06 13:15:07 +07:00
Marten Seemann
d0198c698a log REJs and SHLOs 2017-01-05 10:15:11 +07:00
Lucas Clemente
1b57a9f317 Merge pull request #381 from lucas-clemente/wip-resetstreams
properly implement handling of RST_STREAM frames
2017-01-04 19:30:01 +01:00
Marten Seemann
fd5d5d35dd add tests for frame logging 2017-01-04 14:47:01 +07:00
Marten Seemann
bc2a610912 improve logging of AckFrames 2017-01-04 13:00:59 +07:00
Marten Seemann
863467f344 validate XLCT tag in client hello
fixes #363
2017-01-04 11:41:43 +07:00
Marten Seemann
98ff7ccb50 use FNV1a hash for cached certificates
fixes #383
2017-01-04 10:56:36 +07:00
Marten Seemann
8ce763682a send a RstStreamFrame when receiving a RstStreamFrame on an open stream
fixes #378
2017-01-03 17:51:56 +07:00
Marten Seemann
544a58a038 return total bytes sent when resetting a stream in the flow controller 2017-01-03 16:09:18 +07:00
Marten Seemann
9e09198df6 don’t return data for writing from a stream if it was closed with an error 2017-01-03 16:07:18 +07:00
Marten Seemann
bf0caf3c03 pass the byte offset of a RstStreamFrame to the flow controller
fixes #377
2017-01-03 12:37:45 +07:00
Marten Seemann
74edf9caad improve errors returned for flow control violations 2017-01-03 12:01:27 +07:00
Marten Seemann
fb3f753c94 add method to reset a stream at a byte offset to flow controller
ref #377
2017-01-03 11:32:42 +07:00
Marten Seemann
fe9da30cb2 update certificate for tests 2017-01-03 10:07:36 +07:00
Lucas Clemente
aa79516395 Merge pull request #376 from lucas-clemente/fix-360
prevent version downgrade attacks
2016-12-27 18:08:09 +01:00
Marten Seemann
d39c2a3027 validate version tag in CHLO to prevent version downgrade attacks
fixes #360
2016-12-23 15:31:52 +01:00
Marten Seemann
f72154e30b require version tag in CHLOs
ref #360
2016-12-23 15:31:52 +01:00
Marten Seemann
0fc42896e0 remove stray println in test 2016-12-22 14:37:55 +07:00
Lucas Clemente
294cef3354 Merge pull request #373 from lucas-clemente/fix-371
wait until the run loop has stopped before returning Session.Close()
2016-12-20 09:39:50 +01:00
Marten Seemann
0de6368bbb fix detection if the Session was already closed before 2016-12-20 10:23:44 +07:00
Marten Seemann
156c23f2b7 wait until the run loop has stopped before returning Session.Close()
fixes #371
2016-12-19 20:35:21 +07:00
Lucas Clemente
facaab7ff7 properly handle non-header h2 frames on stream 3
fixes #370
2016-12-14 11:54:26 +01:00
Lucas Clemente
bd3c7a96f9 add Google to license file 2016-12-14 11:54:01 +01:00
Marten Seemann
3b4feedb2c add support for server-side opened streams
fixes #296
2016-12-09 23:14:15 +07:00