Commit Graph

2866 Commits

Author SHA1 Message Date
Marten Seemann
29ce4656a3 Merge pull request #1501 from lucas-clemente/vnp-tests
improve sending of VNPs, improve VNP integration test
2018-08-27 16:48:55 +07:00
Marten Seemann
29f2bab982 Merge pull request #1500 from lucas-clemente/listener-double-close
allow multiple Listener.Close calls
2018-08-27 16:48:37 +07:00
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
6ec4c21c7e allow multiple Listener.Close calls
Every subsequent call to Listener.Close will be a noop.
2018-08-27 07:56:52 +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