Commit Graph

2620 Commits

Author SHA1 Message Date
Dirkjan Ochtman b1997b02b7 Rename EndpointBuilder::from_socket() to with_socket() 2019-04-16 17:55:13 -07:00
Dirkjan Ochtman 734978e59e Rename quinn::Endpoint::new() to builder() 2019-04-16 17:55:13 -07:00
Dirkjan Ochtman d2885aa402 Use explicit conversion for integer widening
As suggested by Clippy.
2019-04-16 17:55:13 -07:00
Dirkjan Ochtman 0aa0b16e6e Fix clippy warnings in quinn-proto 2019-04-16 17:55:13 -07:00
Dirkjan Ochtman 851b6e296c Fix clippy errors 2019-04-16 17:55:13 -07:00
Dirkjan Ochtman 5f9a2213c3 Initial attempt at documenting public quinn-proto API 2019-04-16 16:47:28 +02:00
Benjamin Saunders 5d6ec3445e Draft 19 transport parameter encoding 2019-04-15 07:14:46 -07:00
Benjamin Saunders 227f8b3262 Fix stateless transmits 2019-04-14 12:01:27 +02:00
Benjamin Saunders adada8624b Fix panic on drop of rejected 0-RTT streams 2019-04-14 12:01:27 +02:00
Dirkjan Ochtman 7d71876689 Fix typo as suggested 2019-04-13 12:38:14 -07:00
Benjamin Saunders fab7522af0 Remove a gratuitous Box<[u8]>
Converting from Vec to Box will introduce an unnecessary copy if the
capacity is not exactly equal to the length.
2019-04-13 20:58:16 +02:00
Dirkjan Ochtman da5c97c3cd Split streams module out of quinn::connection 2019-04-13 20:58:16 +02:00
Benjamin Saunders 9ba0641866 Update README 2019-04-13 20:58:16 +02:00
Benjamin Saunders c10de33593 Test 0-RTT in interop tool 2019-04-13 20:58:16 +02:00
Benjamin Saunders f6ec7e8b33 Only set reset token on client handshake completion
0-RTT doesn't imply CID reuse, and servers never receive reset tokens
in transport parameters regardless.
2019-04-13 20:58:16 +02:00
Dirkjan Ochtman 2fb15b9a07 Add high-level API for 0-RTT support 2019-04-13 20:58:16 +02:00
Dirkjan Ochtman 784367f364 No longer need to extract driver on handover 2019-04-13 20:58:16 +02:00
Dirkjan Ochtman 97d38787fd Rename ConnectingFuture to Connecting 2019-04-13 20:58:16 +02:00
Dirkjan Ochtman 16e4b96f4b Simplify high-level streams API 2019-04-12 19:59:23 +02:00
Povilas Balciunas 84959a773b Add many connections to one endpoint test
Adds integration test for numerous connections concurrently
transmitting 1 MB of data.
2019-04-12 07:19:09 +02:00
Benjamin Saunders 4ba31453ca 3*PTO lower-bound for idle timeout 2019-04-12 07:18:34 +02:00
Benjamin Saunders 4857ea9202 Don't prematurely deem handshake packets lost
This was a misunderstanding of the draft.
2019-04-12 07:18:34 +02:00
Benjamin Saunders 0dfa1fbb70 More conservative handshake key discard timer
Protects against connection loss due to severe packet loss following
handshake completion, which could occur because the client must elicit
and receive an ACK of its handshake CFIN message before the server
discards the handshake keys.
2019-04-09 10:11:47 -07:00
Benjamin Saunders 237084787e Fix stateless reset routing 2019-04-09 10:11:47 -07:00
Benjamin Saunders e0f4177167 ResetToken type 2019-04-09 10:11:47 -07:00
Benjamin Saunders 0631950b33 Preserve original error when converting to io::Error 2019-04-08 07:12:21 +02:00
Benjamin Saunders 0428c8693d More consistent config filed naming 2019-04-08 07:12:21 +02:00
Benjamin Saunders 95b49ec0fe Fail connection attempts without an endpoint driver immediately 2019-04-08 07:12:21 +02:00
Benjamin Saunders 6ec3b021cb Move ClientConfig into quinn-proto 2019-04-08 07:12:21 +02:00
Benjamin Saunders 204c0786c8 Strengthen server_busy test 2019-04-08 07:12:21 +02:00
Benjamin Saunders 588cb74bff Delete redundant test
This is subsumed by instant_close.
2019-04-08 07:12:21 +02:00
Benjamin Saunders 94a37e399e Enable 0-RTT by default at TLS layer
Applications can still choose whether or not to send or process data
before a connection is established, so this was just an annoying
gotcha.
2019-04-08 07:12:21 +02:00
Benjamin Saunders 20c2770796 Update comment 2019-04-08 07:12:21 +02:00
Benjamin Saunders b71ca0efb8 Expose per-Connection loggers
Helpful for debugging in highly concurrent environments
2019-04-08 07:12:21 +02:00
Benjamin Saunders 6b15147891 Graceful close in HTTP/0.9 client example 2019-04-07 00:34:15 -07:00
Benjamin Saunders 7fce27d84a Ignore trailing garbage in HTTP/0.9 example server 2019-04-07 00:34:15 -07:00
Benjamin Saunders 35557794c8 More consistent/readable handling of handshake retransmit state
Doesn't correct any known bugs, but is slightly more precise and
accurate to the specified behavior.
2019-04-07 00:34:15 -07:00
Benjamin Saunders 3e61bba16a Fix reordered data packets being incorrectly acknowledged
This lead the peer to believe we've processed data that we haven't,
causing all manner of inconsistent state.
2019-04-07 00:34:15 -07:00
Benjamin Saunders 94b3819c04 Remove DriverLost event in favor of stream termination 2019-04-06 13:32:49 -07:00
Benjamin Saunders 32ab3fe015 Improve behavior of Incoming and new connections after driver loss 2019-04-06 13:32:49 -07:00
Benjamin Saunders ad6f15a266 Endpoint::close helper to close all connections 2019-04-06 13:32:49 -07:00
Benjamin Saunders 7541b5ef0f Remove verbose error from test output 2019-04-06 13:32:49 -07:00
Benjamin Saunders cc5bab3f69 Terminate connection driver when endpoint driver is lost 2019-04-06 13:32:49 -07:00
Benjamin Saunders ab7e228f11 Fix local CID leak 2019-04-05 12:08:58 +02:00
Benjamin Saunders 818dadd671 Connection::close by reference 2019-04-05 12:08:58 +02:00
Benjamin Saunders d5da7c0cdd Improve robustness to non-monotonic Instant::now
It's unclear if Instant is monotonic when sampled across threads, and
we do not require Connections to remain on a single thread.
2019-04-05 12:08:58 +02:00
Benjamin Saunders 4e567f03ee Update current timestamp on each driver loop iteration
Ensures a reasonable upper bound for error.
2019-04-05 12:08:58 +02:00
Benjamin Saunders 1f9a8fc337 Fix outdated comment 2019-04-05 12:08:58 +02:00
Dirkjan Ochtman ec950055e5 Change code coverage command to make build job fail when appropriate 2019-04-05 01:04:45 -07:00
Артём Павлов [Artyom Pavlov] e4f5a75867 if let cleanup 2019-04-05 08:50:04 +02:00