Commit Graph

1185 Commits

Author SHA1 Message Date
Marten Seemann
674287a8f4 add a method to generate a client nonce (NONC) 2017-01-14 18:45:17 +07:00
Marten Seemann
1031ad5288 read SHLOs in cryptoSetupCleint 2017-01-14 18:45:16 +07:00
Marten Seemann
17c5147aa4 add version to inchoate CHLO 2017-01-14 18:45:16 +07:00
Marten Seemann
214a37ac39 add tests for inchoate CHLO 2017-01-14 18:45:16 +07:00
Marten Seemann
651a0de9d3 implement parsing of server configs 2017-01-14 18:45:16 +07:00
Marten Seemann
756a421065 calculate PublicHeader length for packets with VersionFlag and ResetFlag 2017-01-14 18:45:16 +07:00
Marten Seemann
6c0a885a0e pass perspective to packetPacker 2017-01-14 18:45:16 +07:00
Marten Seemann
1cea8833c8 read the diversification nonce sent by the server in PublicHeader 2017-01-14 18:45:15 +07:00
Marten Seemann
56a287ab9c correcty read PublicHeader of PublicReset packets 2017-01-14 18:45:15 +07:00
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