Marten Seemann
46f8c07daa
improve the version negotiation integration test
2018-08-27 09:29:26 +07:00
Marten Seemann
c481645276
send a gQUIC / IETF QUIC Version Negotiation Packet based on header type
2018-08-27 09:08:59 +07:00
Marten Seemann
4d2d2420a4
Merge pull request #1491 from lucas-clemente/transport-parameters-marshalling
...
implement (un)marshalling of the transport parameters
2018-08-20 18:33:42 +07:00
Marten Seemann
e0e831f1fc
implement (un)marshalling of the transport parameters
2018-08-20 15:34:37 +07:00
Marten Seemann
00e1884a88
move reading of stateless reset tokens to the transport parameter struct
2018-08-20 15:34:37 +07:00
Marten Seemann
2c75b795ae
move adding of stateless reset tokens to the transport parameter struct
2018-08-20 15:34:37 +07:00
Marten Seemann
ad9618ef9e
Merge pull request #1490 from lucas-clemente/flow-control-transport-parameters
...
don't require the flow control values in the transport parameters
2018-08-20 15:32:56 +07:00
Marten Seemann
1bb9a7e1ac
don't require the flow control values in the transport parameters
2018-08-19 10:36:47 +07:00
Marten Seemann
3ff262dd7f
Merge pull request #1489 from lucas-clemente/go-1.11
...
update CIs to Go 1.11
2018-08-16 12:27:13 +07:00
Marten Seemann
8dbf6766e5
Merge pull request #1478 from lucas-clemente/cookie-protector
...
move the mint cookie protector to the handshake package
2018-08-16 12:19:27 +07:00
Marten Seemann
e23c08eef9
update CIs to Go 1.11
2018-08-16 11:51:23 +07:00
Marten Seemann
623fcd85b0
move the mint cookie protector to the handshake package
...
It's duplicate code now, but it reduces the dependency on mint.
2018-08-16 11:50:43 +07:00
Marten Seemann
00775db9d5
Merge pull request #1480 from lucas-clemente/milestone-0.9
...
release 0.9.0
2018-08-15 22:35:08 +07:00
Marten Seemann
5c8dec8331
release 0.9
2018-08-15 22:02:31 +07:00
Marten Seemann
ffb46a144f
Merge pull request #1484 from lucas-clemente/ietf-quic-handshake-rtt-tests
...
add handshake RTT tests with IETF QUIC
2018-08-15 22:01:16 +07:00
Marten Seemann
82388748f7
add handshake RTT tests with IETF QUIC
2018-08-15 21:34:50 +07:00
Marten Seemann
3168f6cd28
simplify output of handshake RTT tests when the test fails
2018-08-15 21:34:50 +07:00
Marten Seemann
0eede57a2d
Merge pull request #1488 from lucas-clemente/fix-flaky-server-unit-test
...
fix flaky server unit test
2018-08-15 21:34:23 +07:00
Marten Seemann
6e22fbc77b
fix flaky version negotiation tests
2018-08-15 20:46:12 +07:00
Marten Seemann
78f8e1c83e
fix flaky server unit test
2018-08-15 20:29:52 +07:00
Marten Seemann
7bf5cb6e2a
Merge pull request #1487 from lucas-clemente/version-negotiate-ietf-and-gquic
...
allow version negotiation between IETF QUIC and gQUIC, and vice versa
2018-08-15 19:47:35 +07:00
Marten Seemann
9e83c96598
Merge pull request #1486 from lucas-clemente/send-ietf-quic-vnp
...
always allow sending of IETF QUIC Version Negotiation Packets
2018-08-15 19:46:59 +07:00
Marten Seemann
1d750603c5
Merge pull request #1482 from lucas-clemente/multiple-retries
...
allow multiple Retries
2018-08-15 19:42:45 +07:00
Marten Seemann
c840bd4177
allow version negotiation between IETF QUIC and gQUIC, and vice versa
2018-08-15 17:10:05 +07:00
Marten Seemann
acb45c0ef1
always allow sending of IETF QUIC Version Negotiation Packets
...
When receiving a packet with an IETF QUIC Header using an unsupported
version, we should send a IETF QUIC Version Negotiation Packet, even if
none of the supported versions is IETF QUIC.
2018-08-15 15:23:28 +07:00
Marten Seemann
9608e8563f
only accept 3 retries
...
While the server is allowed to perform multiple Retries, the client
should impose a limit in order to avoid being caught in an endless loop.
2018-08-14 18:35:25 +07:00
Marten Seemann
872e1747f4
always use connection IDs longer than 8 bytes when sending a Retry
...
A server is allowed to perform multiple Retries. There's little to gain
from doing so, but it's something our API allows. If a server performs
multiple Retries, it must use a connection ID that's at least 8 bytes
long. Only if it doesn't perform any further Retries it is allowed to
use shorter IDs. Therefore, we're on the safe side by always using a
long connection ID.
This shouldn't have a performance impact, since the server changes the
connection ID to a short value with the first Handshake packet it sends.
2018-08-14 17:34:21 +07:00
Marten Seemann
829edc04ab
accept multiple Retries
2018-08-14 17:18:44 +07:00
Marten Seemann
58eae32bc9
Merge pull request #1477 from lucas-clemente/new-retry
...
implement the new Retry mechanism
2018-08-13 10:26:18 +07:00
Marten Seemann
70992684af
use server generated connection IDs when accepting a connection
2018-08-13 08:47:29 +07:00
Marten Seemann
77f5d30338
buffer writes to the crypto stream
...
mint performs a Write for every state change. This results in a lot of
small packets getting sent when using an unbuffered connection. By
buffering, we make sure that packets are filled up properly.
2018-08-13 08:47:29 +07:00
Marten Seemann
f88b7bb175
implement the new Retry mechanism
2018-08-13 08:47:29 +07:00
Marten Seemann
d8aa49d0f9
implement writing and parsing of the new Retry packet
2018-08-13 08:47:29 +07:00
Marten Seemann
e39251c8b5
implement writing and parsing of Initial packets containing a Token
2018-08-13 08:47:29 +07:00
Marten Seemann
2b3ae10b33
Merge pull request #1475 from lucas-clemente/improve-mockgen
...
improve mockgen
2018-08-13 08:22:00 +07:00
Marten Seemann
13ea994cc8
Merge pull request #1476 from lucas-clemente/update-mint
...
update mint
2018-08-13 08:20:49 +07:00
Marten Seemann
e34256beed
update mint
2018-08-12 15:26:40 +07:00
Marten Seemann
f9c1de5779
make it possible to generate mocks of private internal interfaces
2018-08-11 14:49:49 +07:00
Marten Seemann
76d4d43b50
move the mockgen cleanup commands to the mockgen script
2018-08-11 12:45:48 +07:00
Marten Seemann
b291b33bca
simplify the command line params of the mockgen script
2018-08-11 12:45:48 +07:00
Marten Seemann
04147d86da
rename the cryptoStreamI interface to cryptoStream
2018-08-11 12:45:43 +07:00
Marten Seemann
40050f558d
fix mockgen script
...
We don't need to copy the vendor directory.
2018-08-11 11:25:42 +07:00
Marten Seemann
a964f2d2ff
Merge pull request #1470 from lucas-clemente/fix-1452
...
use retransmissions as TLP packets
2018-08-10 08:17:12 +07:00
Marten Seemann
defafec71e
use retransmissions as TLP packets
2018-08-09 22:28:28 +07:00
Marten Seemann
bd23e1651d
Merge pull request #1472 from lucas-clemente/fix-spurious-loss-detection-alarm
...
don't do anything when OnAlarm is called, but no packets are outstanding
2018-08-09 22:27:18 +07:00
Marten Seemann
ada085dffb
Merge pull request #1464 from lucas-clemente/multiplexing
...
multiplex server and client on the same packet conn
2018-08-08 18:38:12 +07:00
Marten Seemann
83cb7cbe2e
add an integration test multiplexing server and client on the same conn
2018-08-08 17:34:08 +07:00
Marten Seemann
5358831604
don't do anything when OnAlarm is called, but no packets are outstanding
...
When all outstanding are acknowledged, the alarm is canceled in
updateLossDetectionAlarm. This doesn't reset the timer in the session
though. When OnAlarm is called, we therefore need to make sure that
there are actually packets outstanding.
2018-08-08 15:40:36 +07:00
Marten Seemann
b5d03d24a5
close the packet conn when a server created with ListenAddr is closed
2018-08-08 10:03:22 +07:00
Marten Seemann
ad5a3e2fa0
also use the multiplexer for the server
2018-08-08 10:03:22 +07:00