Commit Graph

2620 Commits

Author SHA1 Message Date
Jean-Christophe BEGUE 5f5be440dc H3: ignore unknown frames 2020-05-21 10:42:26 +02:00
Jean-Christophe BEGUE 061733dc1e H3: send get requests with FakeRequest helpers 2020-05-21 10:42:26 +02:00
Jean-Christophe BEGUE 77aeb5544b H3: enable tracing by default in tests 2020-05-21 10:42:26 +02:00
Benjamin Saunders 7a05701e05 Simplify stream stop logic 2020-05-21 09:28:42 +02:00
Benjamin Saunders d4b7a8f73e Additional stream testing 2020-05-21 09:28:42 +02:00
Benjamin Saunders eea76d2a90 Proactively discard data on stopped streams
Previously, flow control credit would not be issued for data received
on stopped streams unless the application continued reading them
indefinitely. This produced a flow control leak in the high level API,
causing applications which dropped streams with unread data to
eventually grind to a halt.

Discarding data immediately should also improve performance when data
is being received on stopped streams, and allows us to discard stream
state earlier.
2020-05-21 09:28:42 +02:00
Benjamin Saunders 959227566e Reject connections on ALPN failure 2020-05-21 09:22:59 +02:00
Benjamin Saunders 7053c6a802 Wake connection driver on read to issue flow control credit 2020-05-20 12:52:34 +02:00
Benjamin Saunders a58b712e46 Don't double-count acknowledgement of reset stream data 2020-05-20 12:52:34 +02:00
Benjamin Saunders 0e24d2224e Ignore redundant reset frames
This could cause excess connection-level flow control credit to be
issued.
2020-05-20 12:52:34 +02:00
Benjamin Saunders 9cf8652deb Fix empty stream frames not raising stream watermark 2020-05-20 12:52:34 +02:00
Benjamin Saunders 36a040bcf9 Ignore redundant stream reset calls
Prevents corruption of internal state on API misuse.
2020-05-20 12:52:34 +02:00
Benjamin Saunders 6e9f7e8063 Clarify variable name 2020-05-13 06:46:44 +02:00
Benjamin Saunders 275c9ca782 Apply padding in populate_packet 2020-05-13 06:46:44 +02:00
Benjamin Saunders f946bad7b8 More distinct test name 2020-05-13 06:46:44 +02:00
Benjamin Saunders d9311309af Bundle populate_packet return values into a struct 2020-05-13 06:46:44 +02:00
Benjamin Saunders 790546a6d8 Factor out congestion controller into a trait object 2020-05-12 22:43:19 +02:00
Benjamin Saunders 17d97888fc Clarify benefits of read_unordered 2020-05-12 20:59:13 +02:00
Benjamin Saunders 54f0ab1b14 Clarifying comments 2020-05-12 20:59:13 +02:00
Benjamin Saunders ba78cbc680 Move received range tracking into Assembler 2020-05-12 20:59:13 +02:00
Benjamin Saunders f068d497e3 Move Recv::bytes_read into Assembler 2020-05-12 20:59:13 +02:00
Benjamin Saunders 77185c8676 Move unordered read tracking into Assembler 2020-05-12 20:59:13 +02:00
Benjamin Saunders 6786b8a1bb Include ReadError in ReadToEndError::Read display
By treating the read error as a component of, rather than an
incidental ancestor to, the enclosing error we reduce the odds of
unhelpful diagnostics.
2020-05-11 13:53:23 -07:00
Benjamin Saunders 30b42c5bcf Don't use a larger receive buffer than necessary 2020-05-11 22:29:36 +02:00
Benjamin Saunders 8ba2a820d0 Move UDP payload limit to EndpointConfig
Makes it straightforward to share a smaller recieve buffer between
many connections.
2020-05-11 22:29:36 +02:00
Benjamin Saunders 30ac99895d Delete duplicate comments 2020-05-11 22:29:36 +02:00
Benjamin Saunders 9889a4cd56 Fix max UDP payload size not being sent to the peer 2020-05-11 22:29:36 +02:00
Benjamin Saunders 2833009dca Update naming and adjust default for UDP payload size limit 2020-05-11 22:29:36 +02:00
Benjamin Saunders 0247c7d644 Improve endpoint construction docs 2020-05-11 15:40:32 +02:00
Benjamin Saunders 6f9e20cf64 Allow a custom ClientConfig without allocating a default 2020-05-11 15:40:32 +02:00
Benjamin Saunders b727b7b605 Clarify soundness requirements for cmsg helpers 2020-05-11 10:21:13 +02:00
Benjamin Saunders 1636ad69e7 Mention matrix room in README 2020-05-11 06:58:05 +02:00
Benjamin Saunders a97f1d6c2e Update datagram transport parameter to one-way semantics
As of current master in the datagram draft, you no longer need to
accept datagrams to send them.
2020-05-10 21:18:53 +02:00
Benjamin Saunders 6ac08773a6 Update libc 2020-05-08 07:09:25 +02:00
Benjamin Saunders 501f3cdd68 Update to new rustls 2020-05-06 10:15:25 -07:00
Benjamin Saunders 907c76c45a Reset interop server initial congestion window to default
Eases testing of congestion window behavior.
2020-05-05 13:52:24 +02:00
Jean-Christophe BEGUE b2ebb47b8c H3: test response canceling from server 2020-05-05 10:40:24 +02:00
Dirkjan Ochtman eeac018bd9 Update license to proper SPDX expression
From the Cargo docs:

"Previously multiple licenses could be separated with a /,
but that usage is deprecated."

https://doc.rust-lang.org/cargo/reference/manifest.html#the-license-and-license-file-fields
2020-05-04 09:14:22 -07:00
Jean-Christophe BEGUE d45ce73660 H3: Fix client response canceling 2020-05-04 17:59:05 +02:00
Jean-Christophe BEGUE 1d5977548a H3: use a HashSet for in-flight request tracking 2020-05-04 17:59:05 +02:00
stammw 56192ff875 H3: update docs with HttpBody API 2020-05-04 17:59:05 +02:00
Dirkjan Ochtman 99df1dfbb1 H3: don't take ownership for request cancellation 2020-05-04 17:59:05 +02:00
Dirkjan Ochtman 6df0b1d6e1 H3: Tweaks to error types 2020-05-04 17:59:05 +02:00
stammw cf431350eb H3: refactor header receiving code into RecvData 2020-05-04 17:59:05 +02:00
stammw 61332ec52c H3: restore canceling API 2020-05-04 17:59:05 +02:00
stammw 586cb59a4e H3: HttpBody implementation on the receive side 2020-05-04 17:59:05 +02:00
stammw 448470518a H3: rewrite client to use SendData<HttpBody, _> 2020-05-04 17:59:05 +02:00
stammw 36c4d0ba53 H3: poll method for header decoding 2020-05-04 17:59:05 +02:00
stammw 34c9f45802 H3: HttpBody server integration in SendResponse 2020-05-04 17:59:05 +02:00
stammw 57fe592bd7 H3: Body stream helper for benches 2020-05-04 17:59:05 +02:00