Commit Graph

4455 Commits

Author SHA1 Message Date
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
Marten Seemann
9899be3a06 Merge pull request #2348 from lucas-clemente/send-all-packets-before-closing
make sure that all packets in the send queue are sent before closing
2020-02-17 17:18:25 +07:00
Marten Seemann
14a5cc8ab4 add support for the connection_started event 2020-02-17 15:52:06 +07:00
Marten Seemann
93e724434b make sure that all packets in the send queue are sent before closing 2020-02-17 13:41:00 +07:00
Marten Seemann
81cf5ba409 Merge pull request #2352 from lucas-clemente/tls-conn-localaddr
set the LocalAddr that is used in the tls.ClientHelloInfo.Conn
2020-02-17 13:24:36 +07:00
Marten Seemann
f034e8ba19 set the LocalAddr that is used in the tls.ClientHelloInfo.Conn 2020-02-16 14:10:30 +07:00
Marten Seemann
643f0b4c67 drop incoming packets when the server's receive queue is full 2020-02-15 16:43:00 +07:00
Marten Seemann
9b71878d53 release packet buffers when deleting a 0-RTT queue 2020-02-15 15:44:09 +07:00
Marten Seemann
ba095dd3ff delete 0-RTT queues if no Initial is received within 100ms 2020-02-15 15:44:09 +07:00
Marten Seemann
2b7133a6e2 implement a queue for 0-RTT packets 2020-02-15 15:44:08 +07:00
Marten Seemann
abf55af7e9 Merge pull request #2345 from lucas-clemente/interop-qlog
export qlogs from the interop runner
2020-02-13 15:28:54 +07:00
Marten Seemann
577e9cf118 Merge pull request #2346 from lucas-clemente/fix-example-client-keylogfile
fix keylog creation in the example client
2020-02-13 15:23:46 +07:00
Marten Seemann
d6e4b100e8 fix keylog creation in the example client 2020-02-12 15:38:50 +07:00
Marten Seemann
5aaab80698 export qlog files if the QLOGDIR env is set in interop client and server 2020-02-12 12:03:51 +07:00
Marten Seemann
89728126cc move function to create the TLS key log file to a separate file 2020-02-12 11:48:31 +07:00
Marten Seemann
dd035c2f12 Merge pull request #2323 from lucas-clemente/qlog
add basic support for qlog
2020-02-12 10:53:14 +07:00
Marten Seemann
a3fe9445cc set the packet_size on the packet_received and packet_sent event 2020-02-12 10:42:38 +07:00
Marten Seemann
708189c9a2 sort the events before exporting 2020-02-12 10:42:38 +07:00
Marten Seemann
5a7f743733 qlog lost packets 2020-02-12 10:42:38 +07:00
Marten Seemann
f13ca7e791 qlog loss recovery metrics 2020-02-12 10:42:38 +07:00
Marten Seemann
a58bcb747b qlog received Retry packets 2020-02-12 10:42:38 +07:00