Marten Seemann
8cde4ab638
refactor how session tickets are sent
...
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
3e32a693ad
introduce a marshaling format for data saved in the session ticket
2020-02-10 18:02:45 +08:00
Marten Seemann
a8fc893ec4
Merge pull request #2338 from lucas-clemente/delete-0rtt-session-tickets
...
delete session tickets after using them for 0-RTT
2020-02-10 12:01:42 +08:00
Marten Seemann
362192862a
Merge pull request #2334 from lucas-clemente/rtt-session-ticket
...
save the RTT along the session ticket and use it on resumed connections
2020-02-09 18:19:56 +01:00
Marten Seemann
70d8c0fbef
delete session tickets after using them for 0-RTT
2020-02-09 18:40:08 +08:00
Marten Seemann
182a25d2b9
don't use ASN.1 for marshalling data for the session ticket
2020-02-08 21:42:11 +01:00
Marten Seemann
69ab66ba82
save the RTT along the session ticket and use it on resumed connections
2020-02-08 21:42:11 +01:00
Marten Seemann
8ad95ce2d3
Merge pull request #2299 from lucas-clemente/server-run-loop
...
introduce a run loop in the server
2020-02-04 07:56:36 +01:00
Marten Seemann
93693349f3
collapse packetHandlerManager.Add and AddIfNotTaken into one function
2020-02-03 17:34:07 +01:00
Marten Seemann
634169b061
don't return a stateless reset token when adding a new connection ID
...
Both server and client didn't make use of the token. It was only used by
the connIDGenerator.
2020-02-03 17:31:47 +01:00
Marten Seemann
44c1092ed7
send Retry, Version Negotiation and SERVER_BUSY packets asynchronously
...
Now that there's only a single run loop in the server, we should make
sure to process incoming packets as quickly as possible. This especially
means not blocking on conn.Write().
2020-02-03 17:31:47 +01:00
Marten Seemann
7f0dc56d70
introduce a server run loop for handling packets
2020-02-03 17:31:47 +01:00
Marten Seemann
cf71bdd05a
use a MockPacketHandlerManager in all server tests
2020-02-03 17:31:47 +01:00
Marten Seemann
a576f26c83
Merge pull request #2333 from lucas-clemente/configure-cipher-suites
...
make the TLS cipher suites configurable
2020-02-03 17:22:02 +01:00
Marten Seemann
f91dfda8c3
make the TLS cipher suites configurable
2020-02-01 15:58:40 +07:00
Marten Seemann
54b38cac0f
Merge pull request #2331 from lucas-clemente/chacha20-bug-workaround
...
add a workaround for the ChaCha20 bug
2020-01-31 15:32:28 +07:00
Marten Seemann
5893e1ec28
add a workaround for the ChaCha20 bug
2020-01-31 12:19:58 +07:00
Marten Seemann
894530336c
Merge pull request #2330 from lucas-clemente/reject-0rtt-on-alpn-mismatch
...
reject 0-RTT on ALPN mismatch
2020-01-31 11:24:49 +07:00
Marten Seemann
8476b9c7e6
reject 0-RTT when the ALPN changed
2020-01-30 13:12:42 +07:00
Marten Seemann
5ee7498595
fix the 0-RTT rejection integration test
2020-01-30 09:47:49 +07:00
Marten Seemann
ae10a87c6a
Merge pull request #2310 from lucas-clemente/zero-rtt-rejection
...
handle rejection of 0-RTT, expose 0-RTT information in the ConnectionState
2020-01-30 09:31:22 +07:00
Marten Seemann
78fdb9256b
add test checking that 0-RTT is rejected if transport parameters changed
2020-01-30 09:21:10 +07:00
Marten Seemann
539097fc6e
return a quic.ConnectionState from Session.ConnectionState()
2020-01-30 09:21:09 +07:00
Marten Seemann
d7948d627a
drop 0-RTT keys when the server rejects 0-RTT
2020-01-30 09:12:31 +07:00
Marten Seemann
2473eb0895
queue 0-RTT packets for retransmission when 0-RTT is rejected
2020-01-30 09:11:44 +07:00
Marten Seemann
bc82887eff
Merge pull request #2320 from lucas-clemente/http3-client-0rtt
...
add 0-RTT support for HTTP/3
2020-01-29 12:38:55 +07:00
Marten Seemann
f782df0fa4
Merge pull request #2328 from lucas-clemente/window-update-queue-remove-closed-streams
...
remove inactive streams from the window update queue
2020-01-29 12:26:04 +07:00
Marten Seemann
950f278362
accept 0-RTT request in the http3 server
2020-01-29 11:34:08 +07:00
Marten Seemann
91543322f6
define a new Method for 0-RTT GET requests on the http.Request
2020-01-29 11:34:06 +07:00
Marten Seemann
af1e8f4c78
handle request cancelations while waiting for handshake completion
2020-01-29 11:25:29 +07:00
Marten Seemann
639925628d
Merge pull request #2315 from lucas-clemente/http3-client-0rtt-control-stream
...
use 0-RTT to open the H3 client's control stream
2020-01-29 11:23:08 +07:00
Marten Seemann
ddc886be7a
remove inactive streams from the window update queue
2020-01-29 11:14:29 +07:00
Marten Seemann
1372e5dd5e
use 0-RTT to open the H3 client's control stream
2020-01-29 11:06:44 +07:00
Marten Seemann
63c9272bf4
Merge pull request #2312 from lucas-clemente/http3-server-use-0.5-rtt-data
...
use 0.5-RTT data to open the control stream in the http3 server
2020-01-29 11:05:06 +07:00
Marten Seemann
cc70fc16bb
Merge pull request #2322 from lucas-clemente/update-ginkgo
...
update Ginkgo and Gomega
2020-01-29 11:04:52 +07:00
Marten Seemann
bf2602c652
update Ginkgo and Gomega
2020-01-29 10:41:41 +07:00
Marten Seemann
bc25840519
use 0.5-RTT data to open the control stream in the http3 server
2020-01-29 10:40:06 +07:00
Marten Seemann
2bac900862
Merge pull request #2319 from lucas-clemente/fix-stream-open-request-cancelation
...
use the HTTP request context when opening the request stream
2020-01-29 00:08:43 +07:00
Marten Seemann
84b0a01a2e
Merge pull request #2325 from lucas-clemente/fix-readme-install
...
remove outdated install instructions in README
2020-01-29 00:02:50 +07:00
Marten Seemann
e8cffacc77
Merge pull request #2321 from lucas-clemente/update-mockgen
...
update gomock to v1.4.0, simplify mock generation
2020-01-29 00:01:00 +07:00
Marten Seemann
c876e878de
Merge pull request #2314 from lucas-clemente/fix-listen-early-race
...
fix race condition in ListenEarly
2020-01-29 00:00:21 +07:00
Marten Seemann
56e6f1adca
remove outdated install instructions in README
2020-01-28 14:45:52 +07:00
Luke Tucker
6407f5bf68
Fix keepalive ping ( #2316 )
...
The firstAckElicitingPacketAfterIdleSendTime condition was inverted
in a recent PR, maybe just a typo. This was causing only one ping
to be sent during periods of no activity. The ack from the first
keepalive ping causes firstAckElicitingPacketAfterIdleSentTime
to be set to zero. If there is no further activity, it will remain
zero and prevent further keepalive pings.
2020-01-27 11:13:54 +07:00
Marten Seemann
9c1aeee0ec
Merge pull request #2308 from lucas-clemente/session-remove-close
...
remove Session.Close()
2020-01-26 18:01:34 +07:00
Marten Seemann
a93e544c94
remove Session.Close()
...
Session.Close() sends a transport-level error code. Applications should
not be able to call this function, but use CloseWithError() instead.
2020-01-26 17:41:53 +07:00
Marten Seemann
a5120204cc
use H3_NO_ERROR when closing the http3.Client
2020-01-26 17:37:22 +07:00
Marten Seemann
4fa5cfdca9
simplify generation of mocks for internal types
2020-01-26 13:24:35 +07:00
Marten Seemann
c809166cab
update gomock, simplify script for generation mocks of private types
2020-01-26 12:53:41 +07:00
Marten Seemann
d2209ba553
use the HTTP request context when opening the request stream
2020-01-26 11:33:22 +07:00
Marten Seemann
6d055948e6
fix race condition in ListenEarly
2020-01-25 19:26:15 +07:00