Marten Seemann
511ff00881
Merge pull request #1167 from lucas-clemente/ietf-drop-tests
...
add self integration tests with dropped packets
2018-05-30 17:16:40 +08:00
Marten Seemann
20b41ca45a
Merge pull request #1367 from lucas-clemente/session-signaling
...
use callbacks for signalling the session status
2018-05-30 16:22:11 +08:00
Marten Seemann
733e2e952b
use callbacks for signaling the session status
...
Instead of exposing a session.handshakeStatus() <-chan error, it's
easier to pass a callback to the session which is called when the
handshake is done.
The removeConnectionID callback is in preparation for IETF QUIC, where a
connection can have multiple connection IDs over its lifetime.
2018-05-29 21:27:08 +08:00
Marten Seemann
c7119b2adf
move logging of connection closing to the session
2018-05-29 21:24:24 +08:00
Marten Seemann
9cc23135d0
Merge pull request #1375 from lucas-clemente/prefix-logger
...
use a {client, server, proxy} prefix in logs
2018-05-29 21:22:57 +08:00
Marten Seemann
c4c2fd96dc
add integration tests with dropped packets during the handshake
...
The tests simulate three different application profiles:
1. the client speaks first (e.g. sends a request)
2. the server speaks first
3. nobody speaks (i.e. a preconnect)
2018-05-29 21:10:28 +08:00
Marten Seemann
508ce03d71
Merge pull request #1358 from lucas-clemente/handshake-completed-ping
...
make the peer completing the handshake last send a forward-secure packet
2018-05-29 21:09:32 +08:00
Marten Seemann
6b82e46e0c
use the prefix logger for client, server and proxy
2018-05-29 20:52:54 +08:00
Marten Seemann
d06957b8d8
implement a prefix logger
2018-05-29 20:52:03 +08:00
Marten Seemann
02db7817fb
make the peer completing the handshake last send a forward-secure packet
...
In gQUIC, the server completes the handshake first (after sending the
SHLO). In TLS 1.3, the client completes the handshake first (after
sending the CFIN).
They need to have some way to learn that the peer successfully completed
the handshake, so they can stop retransmitting the handshake packets
containing the SHLO or the CFIN, respectively. To achieve that, the peer
finishing the handshake last will send a PING frame in a forward-secure
packet.
2018-05-29 20:51:29 +08:00
Marten Seemann
5142b73ac3
Merge pull request #1370 from lucas-clemente/client-header-parsing
...
parse headers sent by the server without knowing the version
2018-05-29 16:43:52 +08:00
Marten Seemann
3f1061c0db
Merge pull request #1352 from lucas-clemente/simplify-client-version-negotiation
...
simplify version negotiation in the client
2018-05-29 16:41:16 +08:00
Marten Seemann
60ac4b809c
Merge pull request #1356 from lucas-clemente/fix-1355
...
allow empty STREAM frames at arbitrary offsets
2018-05-29 16:40:00 +08:00
Marten Seemann
993e282ed2
Merge pull request #1361 from lucas-clemente/dont-trust-unauthenticated-packets
...
don't save anything about a packet before authenticating it
2018-05-29 16:34:53 +08:00
Marten Seemann
372463db49
don't pass the client's version to the header parser
2018-05-21 11:27:15 +08:00
Marten Seemann
797dfa57a1
disable 6 byte packet number in Public Headers
...
Chrome never sends 6 byte packet numbers in Public Headers.
2018-05-21 11:26:08 +08:00
790715083
fd906aeb24
set the version in the stream constructor ( #1362 )
...
set the version in the stream constructor
2018-05-18 11:12:31 +09:00
Marten Seemann
bd483c75e5
don't save anything about a packet before authenticating it
2018-05-16 18:59:43 +09:00
Marten Seemann
c98afd6625
simplify version negotiation in the client
2018-05-15 11:02:21 +09:00
Marten Seemann
407a563c73
Merge pull request #1345 from lucas-clemente/ackhandler-logging
...
add logging to the ackhandler
2018-05-14 11:42:56 +09:00
Marten Seemann
d1dd2a4a60
add logging to the ackhandler
2018-05-14 11:05:37 +09:00
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