Commit Graph

  • 28aa2f1f9b Draft 17 header protection Benjamin Saunders 2018-12-23 14:09:35 -08:00
  • d408867d97 Don't update header keys in 1RTT Benjamin Saunders 2018-12-23 13:04:32 -08:00
  • 06d3bef4d6 Rename PacketNumberKey to HeaderKey Benjamin Saunders 2018-12-23 11:44:01 -08:00
  • 72e480be9f Draft 17 key derivation Benjamin Saunders 2018-12-23 11:17:08 -08:00
  • 0c6d2f9803 Draft 17 flags and packet number encoding Benjamin Saunders 2018-12-23 11:11:35 -08:00
  • f4862a9d6a Draft 17 frames Benjamin Saunders 2018-12-23 18:06:19 -08:00
  • 01083617ea Don't retransmit PING Benjamin Saunders 2018-12-23 18:02:51 -08:00
  • 8d824b1263 impl Display/slog::Value for Directionality Benjamin Saunders 2018-12-23 18:02:28 -08:00
  • 6ba840281c Naming consistency Benjamin Saunders 2018-12-23 15:43:04 -08:00
  • 2998b95241 Draft 17 transport parameters Benjamin Saunders 2018-12-23 15:39:53 -08:00
  • e516160b03 Upgrade orion to 0.11 stammw 2018-12-23 21:55:11 +01:00
  • fb3c317f60 Send/receive ECN bits on linux Benjamin Saunders 2018-12-15 00:49:35 -08:00
  • 70513bb72e Inline Context type back into Endpoint Dirkjan Ochtman 2018-12-20 08:08:40 +01:00
  • 1fe4235abe Reorder code in endpoint module Dirkjan Ochtman 2018-12-20 08:08:37 +01:00
  • 4d336d489c Introduce is_drained(), make Connection state private Dirkjan Ochtman 2018-12-20 08:08:29 +01:00
  • 9e24db7ccb Move core implementation of Endpoint::timeout() into Connection Dirkjan Ochtman 2018-12-17 20:17:32 +01:00
  • f53a132a1a Remove Connections from eventful_conns on forget Dirkjan Ochtman 2018-12-17 20:07:44 +01:00
  • 5ff6936cea Remove ConnectionDrained event Benjamin Saunders 2018-12-17 19:57:17 -08:00
  • 3314364e07 Take StreamId arguments by value Dirkjan Ochtman 2018-12-17 21:07:02 +01:00
  • 025db1be94 Fix issues as suggested by clippy Dirkjan Ochtman 2018-12-17 21:04:22 +01:00
  • 07928e42cd Fix Connection::poll_io usage advice Benjamin Saunders 2018-12-17 02:31:34 -08:00
  • 46c9174637 Test retransmission of dropped client Initial Benjamin Saunders 2018-12-15 16:25:42 -08:00
  • c444261ccf Fix CRYPTO frames never being retransmitted Benjamin Saunders 2018-12-15 16:23:43 -08:00
  • fa2c88ac5d Mark connections dirty after loss detection timeout Benjamin Saunders 2018-12-15 16:22:30 -08:00
  • 29834d058d Pretty-print times in tests Benjamin Saunders 2018-12-15 16:01:13 -08:00
  • 198f170b6a Don't send zero-length CRYPTO frames Benjamin Saunders 2018-12-16 23:17:52 -08:00
  • ec77474511 Tweak timer I/O representation Benjamin Saunders 2018-12-16 21:04:31 -08:00
  • 5aa7b3840e Replace Multiplexer with per-connection queues Benjamin Saunders 2018-12-16 23:17:09 -08:00
  • 87f7f7107f Assemble normal packets on demand Benjamin Saunders 2018-12-16 18:45:55 -08:00
  • 27a558ee1c Keep Packet intact in Endpoint::handle_initial() Dirkjan Ochtman 2018-12-14 22:14:32 +01:00
  • 11b744e4ec Keep Crypto instances in a single deque Dirkjan Ochtman 2018-12-14 22:14:26 +01:00
  • a04951358a Delay check for stateless reset (fixes #118) Dirkjan Ochtman 2018-12-11 20:52:19 +01:00
  • 8ce4a5752d Add comment about unused From impl Dirkjan Ochtman 2018-12-14 21:49:40 +01:00
  • 7d3f7a5c15 Remove unused argument Dirkjan Ochtman 2018-12-11 20:49:25 +01:00
  • d8f842e4d1 ECN-aware congestion control Benjamin Saunders 2018-12-14 19:02:49 -08:00
  • 9382040376 Implement ECN feedback Benjamin Saunders 2018-12-14 18:56:04 -08:00
  • 9787c83452 Use draft 17 recovery epoch accounting Benjamin Saunders 2018-12-14 19:00:12 -08:00
  • 427e231d2a Extract congestion handling into its own method Benjamin Saunders 2018-12-14 18:46:46 -08:00
  • cf1945ef4c Extend I/O APIs to support emitting/consuming ECN bits Benjamin Saunders 2018-12-14 18:36:51 -08:00
  • e9df8859ec Cosmetic cleanup Benjamin Saunders 2018-12-14 17:59:06 -08:00
  • 80a462eaa8 Constants for frame size minimum upper bounds Benjamin Saunders 2018-12-14 17:52:29 -08:00
  • a749b30b6c Correct CRYPTO frame fixed length upper bound Benjamin Saunders 2018-12-13 23:02:45 -08:00
  • 308c156fc6 Test for reordering around key update Benjamin Saunders 2018-12-14 17:14:13 -08:00
  • 01c8669e73 Record and expose number of lost packets Benjamin Saunders 2018-12-14 17:12:41 -08:00
  • 3faca89e97 Hide Connection handshaking state behind API accessor Dirkjan Ochtman 2018-12-12 18:03:54 +01:00
  • e22daa3dd3 Remove Option wrapper for Connection::state Dirkjan Ochtman 2018-12-12 21:21:56 +01:00
  • 7bea88df94 Update keys before decoding packet number on KEY_PHASE toggle stammw 2018-12-02 19:05:04 +01:00
  • 43c973fd15 Use the correct label for updating traffic secrets stammw 2018-11-30 18:57:24 +01:00
  • 30bbeeb2e7 Privatize Connection fields where possible Dirkjan Ochtman 2018-12-12 08:29:42 +01:00
  • ce240b0d56 Move Connection getters into Connection type Dirkjan Ochtman 2018-12-11 14:45:56 +01:00
  • f8ea9e74d9 Update example documentation in Readme Simon Werner 2018-12-10 10:41:31 +13:00
  • 6286698dd1 impl From<ConnectionError> for Event Benjamin Saunders 2018-12-08 18:31:46 -08:00
  • 62d78c6662 Reduce control flow indirection Benjamin Saunders 2018-12-08 14:18:54 -08:00
  • 180538dac7 Abstract out Context Benjamin Saunders 2018-12-08 14:02:41 -08:00
  • 3edef3a5e5 Store an Arc<Config> in Connection Benjamin Saunders 2018-12-08 11:33:08 -08:00
  • 50d81da0b6 Fix travis nightly rustfmt Benjamin Saunders 2018-12-08 15:48:08 -08:00
  • 6a308bdbdd Style tweak Benjamin Saunders 2018-12-08 02:14:00 -08:00
  • 7ff1c37bd9 Don't move to Established on inauthentic packet Benjamin Saunders 2018-12-08 01:45:18 -08:00
  • d566b2fdb9 Deduplicate packets Benjamin Saunders 2018-12-08 01:17:23 -08:00
  • 8d72747b69 Factor out packet transmit operation Benjamin Saunders 2018-12-07 20:15:48 -08:00
  • 20d435fce5 Inline handshake_complete Benjamin Saunders 2018-12-07 20:12:47 -08:00
  • 43c187aaea Remove redundant argument Benjamin Saunders 2018-12-07 20:10:44 -08:00
  • 40770aaa46 Move flush_pending into Connection Benjamin Saunders 2018-12-07 20:07:56 -08:00
  • a4775b0761 Handle ACK_ECN frames Benjamin Saunders 2018-12-07 19:31:20 -08:00
  • f9134486f7 Handle RETIRE_CONNECTION_ID frames Benjamin Saunders 2018-12-07 18:49:59 -08:00
  • 020843282c Handle NEW_TOKEN frames Benjamin Saunders 2018-12-07 18:39:23 -08:00
  • 0daabd4d79 Take advantage of non-lexical lifetimes Dirkjan Ochtman 2018-12-07 14:46:58 +01:00
  • e555d11a43 Adopt 2018 idiom Dirkjan Ochtman 2018-12-06 21:25:07 +01:00
  • 4d6376c979 Convert to 2018 edition Dirkjan Ochtman 2018-12-06 21:13:12 +01:00
  • a45cf6db82 Upgrade to rustfmt 1.31.0 Dirkjan Ochtman 2018-12-06 21:11:51 +01:00
  • 7fc13ab0aa Fix incorrect assert!() Cyril Plisko 2018-12-05 22:37:47 +02:00
  • c16c2136c0 clippy::range_plus_one Cyril Plisko 2018-12-01 17:59:16 +02:00
  • 208a1622bc clippy::collapsible_if Cyril Plisko 2018-12-01 16:44:15 +02:00
  • fa60d521be Introduce Side::is_client() and Side::is_server() Cyril Plisko 2018-12-01 13:14:20 +02:00
  • 7eeb53ecad Tiny style cleanup Cyril Plisko 2018-12-01 13:09:37 +02:00
  • 538154bc6d clippy::single_match Cyril Plisko 2018-11-29 16:24:02 +02:00
  • 80986de0a5 clippy::identical_conversion Cyril Plisko 2018-11-29 15:26:05 +02:00
  • 0413e4d43a Fix code style as suggested by clippy Dirkjan Ochtman 2018-11-14 14:07:52 +01:00
  • a04d510563 Remove dead error cases Benjamin Saunders 2018-11-28 21:23:05 -08:00
  • 022dd4a0ca Update README section on test certificates Benjamin Saunders 2018-11-28 18:22:32 -08:00
  • ff7bc6e1bf High level API cosmetic/convenience improvements Benjamin Saunders 2018-11-28 18:22:15 -08:00
  • f4d55ed623 Move server-only configuration into its own struct Benjamin Saunders 2018-11-28 18:01:19 -08:00
  • dbd56cd387 Cleaner outgoing packet number accounting Benjamin Saunders 2018-11-28 01:13:11 -08:00
  • 37e08e293f Factor out common handshake transmit code Benjamin Saunders 2018-11-27 17:10:08 -08:00
  • d7478fde90 Implement stateless retry Benjamin Saunders 2018-11-25 16:02:13 -08:00
  • 53a7a25d24 Bypass TLS record layer Benjamin Saunders 2018-11-24 17:33:10 -08:00
  • 7a56fd5252 slog-friendly TransportError Benjamin Saunders 2018-11-24 17:31:54 -08:00
  • dc1e7884f4 Use CRYPTO frames for handshake Benjamin Saunders 2018-11-24 11:04:08 -08:00
  • 57edb5d82d Fix packet number encoding/decoding Benjamin Saunders 2018-11-24 15:37:59 -08:00
  • 3bcd9ad7f4 Implement ConnectionClose frame type field Benjamin Saunders 2018-11-24 13:16:05 -08:00
  • c585fdcf6f varint frame types Benjamin Saunders 2018-11-24 12:59:42 -08:00
  • 02ce6bcb25 Remove HandshakeFailed state Benjamin Saunders 2018-11-24 13:43:01 -08:00
  • 1ce3c74cab Draft-15 transport errors Benjamin Saunders 2018-11-24 13:14:08 -08:00
  • 9f631b80e1 Get rid of Crypto as an enum and work directly with CryptoContext stammw 2018-11-28 22:11:39 +01:00
  • 1793070e4e Remove commented code in crypto stammw 2018-11-28 20:29:38 +01:00
  • 6745032cd4 Do not use CryptoState in Initial and OneRtt Crypto stammw 2018-11-28 07:59:01 +01:00
  • c4c3ab1597 Remove unused ZeroRttCrypto type Dirkjan Ochtman 2018-11-29 10:07:54 +01:00
  • 00d258a2a7 Retain sealing and opening key in CryptoContext stammw 2018-11-22 14:00:16 +01:00
  • 6f4bf0f026 Move some logic from write_inner() into Send type Dirkjan Ochtman 2018-11-24 20:20:12 +01:00
  • b7b85c028b Don't create ConnectionLost events in handle_connected_inner() Dirkjan Ochtman 2018-11-24 19:57:34 +01:00