Commit Graph

1176 Commits

Author SHA1 Message Date
Marten Seemann
afa71d52f1 create Client in main package 2017-01-14 18:45:15 +07:00
Marten Seemann
6189df2d37 move client to subdirectory in example package 2017-01-14 18:45:15 +07:00
Marten Seemann
23435253db create CryptoSetup for the client, use it in the Session 2017-01-14 18:45:15 +07:00
Marten Seemann
f662ce0705 log padding length of Handshake messages 2017-01-14 18:45:14 +07:00
Marten Seemann
316350ce24 send inchoate CHLO 2017-01-14 18:45:14 +07:00
Marten Seemann
2b7c67d297 create handshake.CryptoSetup interface 2017-01-14 18:45:14 +07:00
Marten Seemann
7e4c695faf send (empty) QUIC packet to server 2017-01-14 18:45:14 +07:00
Marten Seemann
db8eb257c6 check for PacketNumberLen when writing the PublicHeader packet number 2017-01-14 18:45:14 +07:00
Marten Seemann
cc2d966d84 write PublicHeaders for packets sent as a client
fixes #346
2017-01-14 18:45:13 +07:00
Marten Seemann
ce330b94b5 update to Go 1.8rc1 for Travis 2017-01-14 18:44:56 +07:00
Marten Seemann
cc153463b5 fix flaky h2quic server test
fixes #396
2017-01-14 18:38:04 +07:00
Marten Seemann
67657a37bf only change remote address after authenticating a packet
fixes #395
2017-01-14 18:15:50 +07:00
Marten Seemann
1e78104f83 trigger window updates before queueing frames for retransmission
ref #394
2017-01-14 15:22:53 +07:00
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