Commit Graph

618 Commits

Author SHA1 Message Date
Dirkjan Ochtman c3a931e72e Move handshake_close() function into connection module 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 8e665ab7c0 Extract packet loss function from timeout handler 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 29cd0e60e4 Move more Endpoint::write() code into Connection type 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 50780c8473 Consistently rename connection ID variables 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman f338404f37 Add helper method to encode connection ids 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 23cd264cf6 Refactor header decoding method
Prevent rightward drift and prepare for adding Retry header type.
2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 02c607b0e6 Use enum for long packet type values 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 204635275c Use assert_eq!() in tests where possible 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 3e92c2b89f Rename random value field in VersionNegotiate header variant 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman 8a7841280f Move Header decoding code into Header type 2018-11-09 07:15:01 +01:00
Dirkjan Ochtman a286fddeda Reorder code in packet module
Ordered by higher level/public, dependent API first, simpler stuff later.
2018-11-09 07:15:01 +01:00
Benjamin Saunders 2d25904bdd Improve a log message and ConnectionId Debug impl 2018-11-02 17:32:37 -07:00
Dirkjan Ochtman 39267e8d54 Fix warnings about unnecessary macro imports 2018-10-30 19:31:41 -07:00
Dirkjan Ochtman b6def268de Update formatting for rust 1.30.0 2018-10-30 19:31:41 -07:00
Benjamin Saunders a2922b4828 Move TLS out of state enum
Simplifies many signatures.
2018-10-30 19:31:41 -07:00
kryptan 1523bbea91 Fix typo in readme 2018-10-25 21:24:25 -07:00
Benjamin Saunders 963a4bb473 Fix panic on Endpoint::connect
Simple RefCell borrow error. Could have corrected this with a clone to get a
much smaller diff, but this saves the clone and keeps information where it needs
to be anyway.
2018-10-20 00:56:49 -07:00
Dirkjan Ochtman aeacba5a2b Try to fix code coverage reporting 2018-10-19 20:21:40 +02:00
Dirkjan Ochtman f17f0b54e9 Add a little guide to running the example code 2018-10-18 10:45:03 +02:00
Dirkjan Ochtman c9dfed3b7b Add note about stable Rust 2018-10-18 10:45:03 +02:00
Dirkjan Ochtman a65292b37d Collapse implementation details in README features list 2018-10-18 10:45:03 +02:00
Dirkjan Ochtman 14e5e93eeb Remove status from features 2018-10-18 10:45:03 +02:00
Benjamin Saunders a10e6ee140 Remove required feature from client example, tweak CLI docs 2018-10-18 01:20:16 -07:00
Benjamin Saunders d28a702ab6 More use of constants 2018-10-17 23:52:13 -07:00
Benjamin Saunders 10c09ef64f Fix handling of unset idle timeout 2018-10-17 23:52:13 -07:00
Benjamin Saunders e66d71d815 Fix panics on invalid transport parameters 2018-10-17 23:52:13 -07:00
Tyler Wilcock dc41b8bff0 Prior to this patch, we had duplicated lots of error handling logic inside handle_connected_inner, mostly in the way of event recording. This patch simplifies this by instead returning a Result, which allows the caller to handle either case and create events more succinctly than handle_connected_inner could.
Also, this changeset moves the app_closed property from connection::State to connection::Connection itself, as it is much simpler to manage that piece of state on the Connection itself.

Closes #51.
2018-10-17 10:09:02 +02:00
Benjamin Saunders 6741657e02 Client configuration API
- Allow configuration of individual clients within an endpoint
- Implement feature-gated config helper for untrusted connections
- Don't enable keylogging by default
- Test rejection of invalid certs
2018-10-15 02:06:25 -07:00
Benjamin Saunders 3492f61142 Derive Clone for Connection and Endpoint
This makes it easier to construct multiple futures that interact with the same
connection.
2018-10-15 01:53:57 -07:00
Benjamin Saunders f04f059893 Implement backpressure on incoming connections
This was already supported by the endpoint state machine, but was defeated by
the high-level API.
2018-10-14 09:13:31 -07:00
Benjamin Saunders 02b536336b Test and debug stream ID flow control
Corrects a fencepost error in initiator-side flow control budget checking, and a
bug that caused remote streams that weren't initially open to never be opened.
2018-10-14 09:12:51 -07:00
Benjamin Saunders 2085b0a7f8 Improve debug formatting for transport errors and frame types 2018-10-14 09:12:27 -07:00
Dirkjan Ochtman c0e0603cd2 Upgrade to blake2-0.8 2018-10-12 21:09:58 +02:00
Dirkjan Ochtman 1045617dee Copy ConnectionIds instead of cloning them 2018-10-12 21:09:51 +02:00
stammw 57bb05cd96 Handle ALPN with &[u8] instead of Strings 2018-10-12 14:47:20 +02:00
stammw f9d64e783e use a constant for ALPN QUIC_HTTP value 2018-10-12 14:47:20 +02:00
Jean-Christophe BEGUE 6e1eab4bed Let the user select ALPN protocols values #32 2018-10-12 14:47:20 +02:00
Tyler Wilcock d4ec5ca865 Remove ArrayVec in favor of a simple array
Prior to this commit, we used ArrayVec to store the bytes of the ConnectionId.  This commit switches to the usage of a simple array, which allows us to remove an external dependency, and allows ConnectionId to implement the Copy trait.
2018-10-07 18:47:46 +02:00
Benjamin Saunders 4807a970a0 Fix panic when closing a connection during handshake 2018-10-06 11:21:23 -07:00
Dirkjan Ochtman 977397ef1e Get ConnectionHandle from self 2018-10-05 08:30:39 +02:00
Dirkjan Ochtman 6729f26cd3 Store ConnectionHandle in Connection 2018-10-05 08:30:39 +02:00
Simon Heath ac7424b151 Remove lingering references to quicr. 2018-10-05 07:29:37 +02:00
Dirkjan Ochtman 0d25cd7686 Apply clippy suggestions 2018-10-04 10:37:12 +02:00
Dirkjan Ochtman d4bf4bcb1a Fix formatting 2018-10-04 10:37:12 +02:00
Dirkjan Ochtman 2c11eb71dd Check formatting in CI 2018-10-04 10:37:12 +02:00
Benjamin Saunders e5cb4e3abc Fix stateless resets 2018-10-03 23:25:10 -07:00
Benjamin Saunders 9bb759fe0b README cleanup 2018-10-03 23:04:41 -07:00
Andrii Radyk 1b3906555c Close #29 rename Value trait to Codec 2018-10-04 08:01:04 +02:00
Dirkjan Ochtman 43f3ec0fc8 Clarify status of HTTP as unimplemented 2018-10-03 20:53:07 +02:00
Dirkjan Ochtman c07561744f Fix method name for set_certificate_authority() 2018-10-03 20:50:21 +02:00