Commit Graph

2620 Commits

Author SHA1 Message Date
stammw a61c960586 H3: set quic connection error from top driver level 2019-11-30 20:34:46 +01:00
stammw 24a10baecd H3: replace all driver error repetitive impls 2019-11-30 20:34:46 +01:00
stammw a36ffb824d H3: DriverError to carry connection level error
Along with regular Error to pass to the user when driver terminates
2019-11-30 20:34:46 +01:00
stammw 418b0a7f63 H3: Let internal error messages be strings 2019-11-30 20:34:46 +01:00
stammw 8c85c411a2 H3: move actual drive impl to ConnectionInner 2019-11-30 20:34:46 +01:00
stammw d184b18845 H3: Add QPACK error codes 2019-11-30 20:34:46 +01:00
stammw 71b72eb1a9 H3: move connection constants to the bottom 2019-11-30 20:34:46 +01:00
stammw 96011ca890 H3: enable QPACK by default 2019-11-30 20:34:46 +01:00
stammw dff7eeed20 H3: fix and optimize new StreamType decoding 2019-11-30 20:34:46 +01:00
stammw a8e93949aa H3: do not ack headers not containing encode refs 2019-11-30 20:34:46 +01:00
stammw 81f1fd2a45 H3: Send decoder stream after decoding a block 2019-11-30 20:34:46 +01:00
stammw 5e6b83b0c4 H3: receive decoder stream 2019-11-30 20:34:46 +01:00
stammw aebada353b QPACK: do increment largest known received ref 2019-11-30 20:34:46 +01:00
stammw e07b70ea91 H3: unblock streams on encoder receive mechanism 2019-11-30 20:34:46 +01:00
stammw 4572499048 H3: pass required ref to connection's decoding 2019-11-30 20:34:46 +01:00
stammw 77d32c3352 H3: Set encoder settings on receive 2019-11-30 20:34:46 +01:00
stammw 807ae068cf QPACK: rename mem_limit to max_size, as in specs 2019-11-30 20:34:46 +01:00
stammw 4921821a7d H3: resolve encoder and decoder streams 2019-11-30 20:34:46 +01:00
stammw 5b67dedf84 QPACK: prevent substraction underflow in VAS 2019-11-30 20:34:46 +01:00
stammw fe6935d3f2 H3: move Connection::default to tests 2019-11-30 20:34:46 +01:00
stammw daf9dc3153 H3: manage all Uni stream transmits the same way 2019-11-30 20:34:46 +01:00
stammw 8b405240b7 H3: lock ConnectionInner once per drive
By moving all the polling functions into ConnectionInner's impl
2019-11-30 20:34:46 +01:00
stammw a87e1a9cf7 H3: Replace SendControlStream with a generic impl 2019-11-30 20:34:46 +01:00
Benjamin Saunders 70540c04fb Add another note re: stream data ordering 2019-11-29 22:14:16 +01:00
Benjamin Saunders f48aa59512 Document a NewConnection footgun and the meaning of server_name
Non-obvious details identified in the course of assisting a new user.
2019-11-29 22:14:16 +01:00
Benjamin Saunders 0c8489b134 Export the datagrams stream type 2019-11-29 20:30:54 +01:00
Dirkjan Ochtman 68cb67ca37 Update the dependency on http to a rebased commit
The 0.2.x branch got rebased to master, invalidating the commit we were
depending on previously. Depend on an older commit that has the HTTP 3
version but has not upgraded to bytes-0.5 for now.
2019-11-28 10:07:04 +01:00
Dirkjan Ochtman d78c4b7520 Fix large_initial() test failure from merge 2019-11-25 07:55:28 -08:00
Benjamin Saunders 4db1d2bdab Accept PING frames during handshake 2019-11-25 15:08:39 +01:00
Benjamin Saunders 25cab1ed61 Draft 24 key update labels 2019-11-25 15:08:39 +01:00
Benjamin Saunders 97faaf24ea Per-space PTO 2019-11-25 15:08:39 +01:00
Benjamin Saunders 66481a9728 Tweak time threshold computation 2019-11-25 15:08:39 +01:00
Benjamin Saunders 8d3a5958f4 Update version to draft 24 2019-11-25 15:08:39 +01:00
Benjamin Saunders d0fcdba9d6 Introduce KEY_UPDATE_ERROR 2019-11-25 15:08:39 +01:00
Benjamin Saunders 97bf76a5aa Defend against spoofed key updates by precomputing keys 2019-11-25 15:08:39 +01:00
Benjamin Saunders 9ea837c3e2 Add missing NEW_CONNECTION_ID validation cases 2019-11-25 15:08:39 +01:00
Benjamin Saunders 773972815d Validate token populatedness 2019-11-25 15:08:39 +01:00
Benjamin Saunders 93f2329974 Validate stream offsets wrt. maximum 2019-11-25 15:08:39 +01:00
Benjamin Saunders 63bf72c26e Discard Retry packets with illegal source CID 2019-11-25 15:08:39 +01:00
Benjamin Saunders fc7334d8d9 Rename handle_connected_inner to process_decrypted_packet
This more accurately reflects the role it's arrived at.
2019-11-25 15:08:39 +01:00
Benjamin Saunders d01f31db4c Support multi-packet first flights 2019-11-25 15:08:39 +01:00
Benjamin Saunders a91553c8fe Validate reserved bits in initial packets 2019-11-25 15:08:39 +01:00
Benjamin Saunders 3b850c1fd3 Style tweak 2019-11-25 15:08:39 +01:00
Benjamin Saunders b639f308cc Only check reset tokens from legitimate addresses 2019-11-25 15:08:39 +01:00
Benjamin Saunders 2a24440c06 Ensure temporary retry CIDs don't collide with existing connections
Collisions with future connections are still possible, but unlikely,
and are difficult to prevent without defeating the point of stateless
retries.
2019-11-25 15:08:39 +01:00
Benjamin Saunders d2bb7f76f0 Update comment 2019-11-25 15:08:39 +01:00
Benjamin Saunders 0e10a0de0c CONNECTION_CLOSE is no longer ack-eliciting 2019-11-25 15:08:39 +01:00
Benjamin Saunders 29288aed19 Path challenges and datagrams are ack-eliciting too 2019-11-25 15:08:39 +01:00
Benjamin Saunders 575de71226 s/ack_only/ack_eliciting/ for clarity 2019-11-25 15:08:39 +01:00
Benjamin Saunders 8d9a9e1ae1 Update EndpointConfig::local_cid_len documentation 2019-11-25 15:08:39 +01:00