Conversation
Benchmark resultsInstruction countsSignificant differencesThere are no significant instruction count differences Other differencesClick to expand
Wall-timeSignificant differencesThere are no significant wall-time differences Other differencesClick to expand
Memory usageKey:
Significant differencesThere are no significant memory usage differences Additional informationCheckout details:
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #3224 +/- ##
==========================================
+ Coverage 95.44% 95.45% +0.01%
==========================================
Files 99 100 +1
Lines 23716 23765 +49
Branches 684 683 -1
==========================================
+ Hits 22635 22685 +50
+ Misses 925 924 -1
Partials 156 156 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
e933abc to
e7dff55
Compare
e7dff55 to
2f93805
Compare
djc
left a comment
There was a problem hiding this comment.
Do you think this could be split into smaller commits? The current version is pretty hard to review IMO.
4a04523 to
abafe21
Compare
62182e0 to
2285d27
Compare
I have tried this. |
djc
left a comment
There was a problem hiding this comment.
Here's some feedback on the first more substantive commit of the branch.
I think this is generally the right direction and I think it might be neat to end up with an API where we expose Connection<ClientSide, Tcp> to downstreams. I was thinking we might also attach things like whether a fake CCS needs to be emitted to the Transport trait (or private supertrait of it).
Actually, I was wondering if some sort of high-level state becomes another parameter to Connection such that we can distinguish Connection<ClientSide, Tcp, Traffic> from Connection<ClientSide, Udp, Handshaking> (or maybe that becomes more like Connection<S, T> and Handshaking<S, T>), and a way to distinguish between the phased handshake approach and the monolithic handshake API.
abafe21 to
35c67a0
Compare
2285d27 to
ebd5d38
Compare
5b7cdad to
c5ce179
Compare
c5ce179 to
69a9842
Compare
7bb74cd to
1aa5755
Compare
This introduces `conn::handshake`, which will hold the transport-generic version of each handshake type, parameterised by the new `Transport` trait: `Tcp` writes TLS records into a caller-supplied buffer, `Quic` emits `QuicEvent`s instead.
`ServerNext` and `ClientNext` name the states a handshake can be in for any transport, so each public `TryFrom` impl becomes a mapping from those onto its own transport's handshake enum.
1aa5755 to
e2d44ba
Compare
|
This is ready for a second look now. |
This de-duplicates the internals of TCP/QUIC handshake types. Currently it's on top of #3218 but a different order would work.