Commit Graph

4475 Commits

Author SHA1 Message Date
Marten Seemann
d50f935319 don't send packets after receiving a CONNECTION_CLOSE 2020-02-25 17:54:55 +07:00
Marten Seemann
8aeb510dd2 Merge pull request #2369 from lucas-clemente/connection-close-encryption-levels
send the CONNECTION_CLOSE in all available encryption levels
2020-02-25 17:53:33 +07:00
Marten Seemann
75c2d9f2b6 update qtls to v0.7.2
This version makes sure that the server first checks the ALPN, and only
exports Handshake secrets after the application protocol was chosen.
2020-02-25 17:53:08 +07:00
Marten Seemann
49c6dfe2da Merge pull request #2380 from lucas-clemente/fix-http3-server-logger-race
fix race condition when creating the logger for the HTTP/3 server
2020-02-25 17:19:21 +07:00
Marten Seemann
2ea6a294a9 send the CONNECTION_CLOSE in all available encryption levels 2020-02-25 17:10:44 +07:00
Marten Seemann
75f14a267e Merge pull request #2381 from lucas-clemente/remove-stray-travis-before-install
remove stray commands from the Travis before_install
2020-02-25 16:52:31 +07:00
Marten Seemann
6c02bd3a30 fix flaky server unit test 2020-02-25 16:10:25 +07:00
Marten Seemann
8bbd4f2dc6 remove stray commands from the Travis before_install 2020-02-25 16:10:09 +07:00
Marten Seemann
a44c81e210 fix race condition when creating the logger for the HTTP/3 server 2020-02-25 16:09:19 +07:00
Marten Seemann
51f51d5a71 Merge pull request #2383 from lucas-clemente/fix-0rtt-retry-test
fix flaky 0-RTT Retry test
2020-02-25 16:07:34 +07:00
Marten Seemann
4fc5974938 fix flaky 0-RTT Retry test 2020-02-24 19:09:00 +07:00
Marten Seemann
ca469eb0b6 Merge pull request #2378 from lucas-clemente/fix-flaky-http3-server-test
fix flaky HTTP/3 Server unit test
2020-02-24 16:40:14 +07:00
Marten Seemann
383adb619c fix flaky HTTP/3 Server unit test 2020-02-24 16:19:37 +07:00
Marten Seemann
4a96b2fa83 Merge pull request #2365 from lucas-clemente/pad-outside-of-quic-packets
pad the client's Initial packets outside of the QUIC packet
2020-02-24 15:51:15 +07:00
Marten Seemann
ebe3c1cca4 pad the client's Initial packets outside of the QUIC packet
This allows us to send coalesced packets of Initial and 0-RTT.
2020-02-24 13:57:54 +07:00
Marten Seemann
24b840f56d fix dropping of the Initial packet number space for clients 2020-02-24 13:57:54 +07:00
Marten Seemann
212bfed0d2 Merge pull request #2367 from lucas-clemente/varint-transport-parameters
change the transport parameter format to varint
2020-02-24 13:56:39 +07:00
Marten Seemann
a8f96bbd83 Merge pull request #2368 from lucas-clemente/standard-library-chacha
use the golang/x/crypto ChaCha20 implementation
2020-02-24 13:50:48 +07:00
Marten Seemann
5410f8091d Merge pull request #2366 from lucas-clemente/fix-coalesced-packet-logging
fix logging of coalesced packets
2020-02-24 13:50:24 +07:00
Marten Seemann
0c326ab401 Merge pull request #2372 from lucas-clemente/no-ginkgo-lint
remove stray GinkgoRecover(), add a lint script to check that
2020-02-24 13:49:27 +07:00
Marten Seemann
e188a6deb5 Merge pull request #2370 from lucas-clemente/fix-flaky-half-rtt-data-test
fix flaky 0.5-RTT data test
2020-02-24 13:48:30 +07:00
Marten Seemann
aa9a5a4e5f add a lint script to verify that Ginkgo is not imported 2020-02-23 09:50:12 +07:00
Marten Seemann
215ca4c155 remove stray GinkgoRecover() in http3.Server 2020-02-23 09:43:40 +07:00
Lorenzo Saino
8db2288382 Make http3.client.Close() succeed if session was not started
Invoking http3.client.Close() before client.dial() is invoked
causes a segmentation fault. That occurs because, in this
circumstance, invoking client.Close() results in invoking
client.session.CloseWithError(...) while client.session is nil.

This commit changes the behavior of
http3.client.Close() to return nil if client.session
is nil and adds an associated test case.
2020-02-23 00:21:19 +00:00
Marten Seemann
d8d622ee99 fix flaky 0.5-RTT data test 2020-02-22 16:17:34 +07:00
Marten Seemann
b658f92060 use the golang/x/crypto ChaCha20 implementation
https://go-review.googlesource.com/c/crypto/+/206638 added the
SetCounter method required for QUIC's header protection.
2020-02-22 10:53:41 +07:00
Marten Seemann
9ee6efd506 change the transport parameter format to varint 2020-02-22 09:36:02 +07:00
Marten Seemann
c1cb3e64dc fix logging of coalesced packets
Coalesced packets that just have a single part shouldn't be logged as
coalesced packets.
2020-02-21 17:09:03 +07:00
Marten Seemann
f5d88d3edd Merge pull request #2359 from lucas-clemente/simplify-ack-range-pruning
simplify ACK range pruning
2020-02-21 16:00:14 +07:00
Marten Seemann
a5fc72047e simplify pruning of old ACK ranges 2020-02-21 15:46:58 +07:00
Marten Seemann
f317a471bb use a single constructor for SentPacketHandler and ReceivedPacketHandler 2020-02-21 15:45:24 +07:00
Marten Seemann
e9cdb29ef9 Merge pull request #2362 from lucas-clemente/client-amplification-protection
implement the client side for the amplification protection
2020-02-21 15:34:21 +07:00
Marten Seemann
e97e3040ed make sure the client sends packets to unblock the server 2020-02-21 12:29:11 +07:00
Marten Seemann
d20c1bfaed remove unused parameter from SentPacketHandler.ReceivedAck 2020-02-21 10:05:17 +07:00
Marten Seemann
73937e8753 Merge pull request #2349 from lucas-clemente/coalesced-packets
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
ad7327845c Merge pull request #2358 from lucas-clemente/drop-0rtt-keys
drop 0-RTT read keys after 3 PTO
2020-02-20 16:47:14 +07:00
Marten Seemann
23059d5a68 Merge pull request #2280 from lucas-clemente/zero-rtt-queue
queue 0-RTT for 100ms to allow the corresponding Initial to arrive
2020-02-20 16:44:03 +07:00
Marten Seemann
7a532326ec don't pack ACK frames in the second part of a coalesced packet
This prevents a possible overflow of the maximum packet size if the ACK
frames ends up being really large.
2020-02-20 16:42:58 +07:00
Marten Seemann
db7fc0eb02 simplify packing of Initial and Handshake packets 2020-02-20 16:42:58 +07:00
Marten Seemann
29b784e782 rename packet packing functions in the packet packer 2020-02-20 16:42:58 +07:00
Marten Seemann
5aad7cae5d send coalesced packets 2020-02-20 16:42:56 +07:00
Marten Seemann
244e1ae8e7 Merge pull request #2353 from lucas-clemente/qlog-connection-started-event
add support for the connection_started event
2020-02-20 16:27:22 +07:00
Marten Seemann
d642bf9098 simplify content storage in packed packets
It's not necessary to store both the packetBuffer and the slice
containing the raw data in the packet.
2020-02-20 16:25:54 +07:00
Marten Seemann
88fc6b9a87 Merge pull request #2332 from phuslu/http-context-key
Add LocalAddr/ContextKey to http3 request context
2020-02-20 16:24:50 +07:00
Marten Seemann
077504f557 refactor sealing of packets 2020-02-20 16:19:08 +07:00
Marten Seemann
a4b4d52063 refactor packing of packets before and after the handshake is confirmed 2020-02-20 16:19:08 +07:00
Marten Seemann
d08c2145a4 drop 0-RTT read keys after 3 PTO 2020-02-18 17:51:05 +07:00
Marten Seemann
e01995041e Merge pull request #2357 from lucas-clemente/loss-timer
fix early retransmit loss timer
2020-02-18 16:45:12 +07:00
Marten Seemann
1692adb142 fix unit tests for the early retransmit timer 2020-02-18 12:04:27 +07:00
zverevm
4f7b0b1675 Do not ignore loss timer. 2020-02-17 12:36:42 +01:00