Marten Seemann
3e03055a7d
use varint packet numbers in IETF QUIC headers
2018-06-06 16:07:47 +02:00
Marten Seemann
bd6fd979a4
implement parsing and writing of varint packet numbers
2018-06-05 22:18:35 +02:00
Marten Seemann
e53b611961
Merge pull request #1373 from lucas-clemente/quic-43
...
add support for QUIC 43
2018-06-05 13:43:06 +02:00
Marten Seemann
530170430a
add support for QUIC 43
2018-06-05 12:41:56 +02:00
Marten Seemann
2e66aeeb66
Merge pull request #1387 from lucas-clemente/init-random-in-integrationtests
...
properly initialise the random number generator in the integration tests
2018-06-05 12:33:41 +02:00
Marten Seemann
7f1a15169e
Merge pull request #1386 from lucas-clemente/circleci-badge
...
add a CircleCI badge to the README
2018-06-05 12:33:23 +02:00
Marten Seemann
d0897fa0b3
ignore HTTP2 PRIORITY frames in the server
2018-06-05 12:30:30 +02:00
Marten Seemann
bc2163777f
properly initialise the random number generator in the integration tests
2018-06-03 10:56:16 +08:00
Marten Seemann
1fc6c5a14c
Merge pull request #1372 from lucas-clemente/quic-42
...
add support for QUIC 42
2018-06-02 20:41:18 +08:00
Marten Seemann
f1b49c2280
add a CircleCI badge to the README
2018-06-02 20:26:06 +08:00
Marten Seemann
ba0bf6be76
Merge pull request #1382 from lucas-clemente/fix-1364
...
fix deadlock between onStreamCompleted and Session.Close
2018-06-02 20:23:10 +08:00
Marten Seemann
3370f9fa58
add support for QUIC 42
...
QUIC 42 accepts overlapping stream data. We've been doing this for some
time already, so we don't need any additional changes.
2018-06-02 19:49:28 +08:00
Marten Seemann
2a4eb9c132
use the correct QUIC version in the Chrome integration tests
...
Because the version variable was set in the loop, we would always start
a QUIC server with the lowest support QUIC version.
2018-06-02 19:49:28 +08:00
Marten Seemann
a3821af65a
don't run Chrome integration tests on Travis
2018-06-02 19:39:11 +08:00
Marten Seemann
4b82db4d6d
fix working directory in CircleCI config
2018-06-02 18:56:02 +08:00
Lucas Clemente
9be3ba1be0
Merge pull request #1383 from lucas-clemente/circle
...
run integration tests on CircleCI
2018-06-01 13:20:20 +01:00
Marten Seemann
cdee407331
Merge pull request #1360 from nogoegst/request-host-fix
...
Use http.Request.Host only for authority header and not for dialing
2018-06-01 18:28:11 +08:00
Marten Seemann
d4a1e75ae1
run integration tests on CircleCI, disable Chrome tests on Travis
2018-06-01 14:32:18 +08:00
Marten Seemann
83be64bb73
fix deadlock between onStreamCompleted and Session.Close
2018-06-01 13:05:30 +08:00
Marten Seemann
036131e084
Merge pull request #1369 from lucas-clemente/change-conn-id
...
change the connection ID when creating a new IETF QUIC session
2018-05-30 22:31:10 +08:00
Marten Seemann
d7dee33bc7
change the source connection ID when creating a new IETF QUIC session
2018-05-30 21:37:05 +08:00
Marten Seemann
8bfb29f06e
fix logging of connection IDs for statelessly handled packets
2018-05-30 21:37:05 +08:00
Marten Seemann
ec6118f7a0
use the connection ID provided by the server in first Handshake packet
2018-05-30 21:37:05 +08:00
Marten Seemann
d1316f2566
Merge pull request #1368 from lucas-clemente/session-handler
...
refactor the map of sessions into a separate struct
2018-05-30 21:36:22 +08:00
Marten Seemann
9c5986945e
refactor the map of sessions into a separate struct
2018-05-30 21:10:44 +08:00
Marten Seemann
15da47cf98
use a GoMock mock session in the server and client tests
2018-05-30 21:10:44 +08:00
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
Ivan Markin
350a663115
Use http.Request.Host only for authority header and not for dialing
...
Signed-off-by: Ivan Markin <sw@nogoegst.net >
2018-05-15 20:51:57 +00: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