Commit Graph

2665 Commits

Author SHA1 Message Date
Marten Seemann
5f5bb1f700 allow empty STREAM frames at arbitrary offsets 2018-05-11 11:08:08 +09:00
Marten Seemann
240896a4dd Merge pull request #1338 from lucas-clemente/header-parsing-perspective
parse IETF headers independent of the sender's perspective
2018-05-09 14:07:00 +09:00
Marten Seemann
8f2fed1b10 parse IETF headers independent of the sender's perspective
The IETF header format allows parsing of the header without knowing
which peer sent the packet.
2018-05-09 13:28:30 +09:00
Marten Seemann
70f6e3651e Merge pull request #1350 from lucas-clemente/split-packet-handling
split packet handling for gQUIC and IETF QUIC packets
2018-05-09 13:22:54 +09:00
Marten Seemann
78f3a2cecd Merge pull request #1351 from lucas-clemente/fix-listener-readme
remove incorrect documentation about the listeners
2018-05-09 13:02:33 +09:00
Marten Seemann
f3f2e2f120 Merge pull request #1349 from lucas-clemente/update-go-on-cis
update Go to 1.9.6 and 1.10.2 on the CIs
2018-05-09 12:56:49 +09:00
Marten Seemann
f6e1e2658e Merge pull request #1340 from lucas-clemente/connection-window-updates
schedule sending when queueing a connection-level window update
2018-05-09 12:54:49 +09:00
Marten Seemann
518e212924 handle gQUIC and IETF QUIC packets separately in the server 2018-05-08 21:58:59 +09:00
Marten Seemann
f0b412aeb8 simplify handling of Public Resets in the server
The server shouldn't receive any Public Resets. There is no need to
attempt parsing them, since they are ignored anyway.
2018-05-08 21:56:02 +09:00
Marten Seemann
187b0141b0 remove incorrect documentation about the listeners
Listener.Serve() was removed a very long time ago.
2018-05-08 21:24:05 +09:00
Marten Seemann
08160ab18f queue connection-level window updates from the flow controller directly
It is not sufficient to check for connection-level window updates every
time a packet is sent. When a connection-level window update needs to be
sent, we need to make sure that it gets sent immediately (i.e. call
scheduleSending() in the session).
2018-05-08 15:17:45 +09:00
Marten Seemann
2e8a5807ba queue stream-level window updates from the flow controller directly 2018-05-08 15:17:45 +09:00
Marten Seemann
683b5823e4 handle gQUIC and IETF QUIC packets separately in the client 2018-05-08 15:17:16 +09:00
Marten Seemann
47d54061c7 update Go to 1.9.6 and 1.10.2 on the CIs 2018-05-08 15:16:56 +09:00
Marten Seemann
b93827ca60 Merge pull request #1343 from lucas-clemente/log-conn-flow-control-ensure-min-increases
log all connection flow control window increases
2018-05-08 14:58:33 +09:00
Marten Seemann
5e5a4a9c77 Merge pull request #1346 from lucas-clemente/crypto-setup-logging
add some logging to the gQUIC crypto setups
2018-05-08 14:48:17 +09:00
Marten Seemann
e7f88efd2c Merge pull request #1344 from lucas-clemente/header-logging
indent header log entries using tabs, not spaces
2018-05-08 14:25:23 +09:00
Marten Seemann
924bcc5914 add some logging to the client's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
39757c1a1a add some logging to the server's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
8840363dbf Merge pull request #1348 from lucas-clemente/httpguts
use H2 helper functions from httpguts repository
2018-05-08 14:23:00 +09:00
Marten Seemann
5a0a231c02 use H2 helper functions from httpguts repository
httplex was merged into httpguts:
cbb82b59bc
2018-05-08 14:00:31 +09:00
Marten Seemann
628f878b79 Merge pull request #1342 from lucas-clemente/fix-stream-flow-control-logging
fix logging of stream flow control window increases
2018-05-08 07:25:38 +09:00
Marten Seemann
cfabf0c6d7 Merge pull request #1341 from lucas-clemente/rename-max-streams
rename the constants for the max stream ids in the transport parameters
2018-05-08 07:22:30 +09:00
Marten Seemann
94c48d371a indent header log entries using tabs, not spaces 2018-05-07 09:11:34 +09:00
Marten Seemann
7d1f17e5d6 log all connection flow control window increases 2018-05-06 22:07:54 +09:00
Marten Seemann
a7591e2370 fix logging of stream flow control window increases 2018-05-06 21:52:41 +09:00
Marten Seemann
f29c37b951 rename the constants for the max stream ids in the transport parameters
No functional change expected.
2018-05-06 12:13:04 +09:00
Marten Seemann
a58cfd64e9 Merge pull request #1336 from lucas-clemente/congestion-in-bytes
switch to a byte-based congestion controller
2018-05-05 14:57:51 +09:00
Marten Seemann
45d5acef14 Merge pull request #1333 from lucas-clemente/acks-for-delayed-packets
don't send an ACK when receiving a packet that wouldn't be acked
2018-05-05 14:54:11 +09:00
Marten Seemann
1b9ac93c13 Merge pull request #1331 from lucas-clemente/fix-1330
set the ACK frame delay time when generating the frame
2018-05-05 14:23:50 +09:00
Marten Seemann
bd032826ca Merge pull request #1334 from lucas-clemente/cleanup-rtt-stats
remove unused functions from the RTT stats
2018-05-05 14:17:12 +09:00
Marten Seemann
1a1894ea18 Merge pull request #1332 from lucas-clemente/improve-ack-logging
improve logging of ACK frames with ranges
2018-05-05 13:59:12 +09:00
Marten Seemann
2b97fb41c9 switch to a byte-based congestion controller
Chrome removed the packet-based congestion controller and switched to
byte-based as well.
2018-05-02 23:45:23 +09:00
Marten Seemann
3cd6cc3e9f move the initial RTT estimate to the congestion package 2018-05-01 18:57:05 +09:00
Marten Seemann
4a7bab9ffe remove unused functions from the RTT stats
These functions are not used anywhere, and were removed from Chromium
code as well.
2018-05-01 18:50:28 +09:00
Marten Seemann
5140addd8a don't send an ACK when receiving a packet that wouldn't be acked
There's a lower bound which packets get acknowledged in an ACK frame.
When receiving a packet smaller than that bound, which was reported
missing before, it's not necessary to immediately queue an ACK, since it
wouldn't be included in the ACK frame anyway.
2018-05-01 12:32:44 +09:00
Marten Seemann
b83a4c069d improve logging of ACK frames with ranges 2018-05-01 11:40:10 +09:00
Marten Seemann
ee968aff67 set the ACK frame delay time when generating the frame 2018-04-30 21:50:33 +09:00
Lucas Clemente
2127e2f1de Merge pull request #1329 from lucas-clemente/lucas-clemente-patch-1
Fix KEX test on windows
2018-04-30 11:27:57 +02:00
Lucas Clemente
5907bfa168 Fix KEX test on windows
This makes the code rotate the key if `time.Since(kexCurrentTime) == kexLifetime`, which prevents an issue with low-resolution clocks (e.g. in our appveyor tests).
2018-04-30 11:14:46 +02:00
Lucas Clemente
47fd869154 Merge pull request #1328 from lucas-clemente/lucas-clemente-patch-1
Fix unnecessary stack growth when parsing frames
2018-04-30 11:00:17 +02:00
Lucas Clemente
0d8f0be92b Fix unnecessary stack growth when parsing frames 2018-04-30 10:28:18 +02:00
Marten Seemann
0aa793876c Merge pull request #1327 from lucas-clemente/remove-stray-code-comment
remove stray commented code in the session
2018-04-30 17:18:35 +09:00
Marten Seemann
903747fdc7 remove stray commented code in the session 2018-04-29 20:48:03 +09:00
Marten Seemann
376fccbde2 Merge pull request #1322 from lucas-clemente/tlp
implement TLPs
2018-04-25 21:37:57 +09:00
Marten Seemann
1420b138d5 implement TLPs 2018-04-25 20:47:18 +09:00
Marten Seemann
dd03501f13 Merge pull request #1321 from lucas-clemente/fix-1308
fix deadlock when receiving two packets with diversification nonces
2018-04-24 21:33:26 +09:00
Marten Seemann
0c014c0aff fix deadlock when receiving two packets with diversification nonces 2018-04-24 21:14:58 +09:00
Marten Seemann
d6e9e3faa2 Merge pull request #1313 from lucas-clemente/fix-1305
implement the payload length field in the Long Header
2018-04-23 18:25:22 +09:00
Marten Seemann
cc536fb895 cut packets at the payload length when receiving 2018-04-23 17:47:17 +09:00