Commit Graph

1350 Commits

Author SHA1 Message Date
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
Benjamin Saunders f6c1ef0786 Fix panics when a live connection's driver is dropped 2019-04-03 00:28:20 -07:00
Benjamin Saunders 36ac70434a Don't implicitly close connections with streams being opened
Improves ergonomics when an application wishes to perform no
operations beyond opening and manipulating a fixed set of streams.
2019-04-03 00:28:20 -07:00
Benjamin Saunders 010c939984 Wake connection driver on close
Fixes potentially long delays in closing a connection
2019-04-03 00:28:20 -07:00
Benjamin Saunders f6ac24d0b0 Clarify Space.loss_time semantics 2019-04-03 00:28:20 -07:00
Benjamin Saunders 6e9f88e32b Correct loss timer precedence
This turned out to be a misreading of the draft.
2019-04-03 00:28:20 -07:00
Benjamin Saunders c6be5333e0 Update rustls
Incorporates interop-relevant 0-RTT fixes, error reporting
improvements, and wireshark-compatible QUIC key logging.
2019-04-03 00:28:20 -07:00
Benjamin Saunders 856b2f570a Update EndpointDriver documentation 2019-04-02 06:36:30 +02:00
Benjamin Saunders 55998727bf Clean up tests 2019-04-02 06:36:30 +02:00
Benjamin Saunders b3175da8a6 Fix race condition in connection/endpoint reference drop
Cleanup could have been missed if two references were dropped
simultaneously, leading to the Arc's reference count going directly
from 3 to 1
2019-04-02 06:36:30 +02:00
Benjamin Saunders 737ee208db Fix panic when endpoint driver is dropped with live connections 2019-04-02 06:36:30 +02:00
Benjamin Saunders 21c9a98529 Wake up blocked futures on implicit close 2019-04-02 06:36:30 +02:00
Dirkjan Ochtman 5f93f96280 Further clarify implicit close semantics (see #250) 2019-04-01 12:38:36 -07:00
Dirkjan Ochtman 7417838ea4 Inline fields from Pending type into ConnectionInner 2019-04-01 12:35:55 -07:00
Dirkjan Ochtman 0cf709114c Log listening address in example server 2019-04-01 21:06:53 +02:00
Dirkjan Ochtman aae9edecd4 Return new connections as tuples 2019-04-01 10:56:38 +02:00
Dirkjan Ochtman c0c40891b4 Return driver as first member of endpoint tuple 2019-04-01 10:56:38 +02:00
Dirkjan Ochtman fc964543e8 Rename Driver to EndpointDriver 2019-04-01 10:56:38 +02:00
Benjamin Saunders e9b9a3861b More robust handshake retransmits
Revists d36d015c, plus some missing parts
2019-03-31 06:47:44 +02:00
Benjamin Saunders 6a7b55f664 Per-packet-space loss_time tracking 2019-03-31 06:47:44 +02:00
Benjamin Saunders 309d438ac4 Style cleanup 2019-03-31 06:47:44 +02:00