Summary:
I was using this for hq-interop testing, and I discovered a couple bugs.
1) readCb_ may not be set initially, so only attempt an initial read if it's non-null
2) When this transport closes, we shouldn't close the underlying QUIC socket. Instead we should attempt to write a FIN (if we haven't already). If that doesn't immediately succeed (perhaps queued writes are blocked on flow control), send a reset.
Reviewed By: kvtsoy
Differential Revision: D40741000
fbshipit-source-id: f3f925b884ae30feac0d86cbca13084248566099
Summary:
Maine change is `MockConnectionCallback` -> `MockConnectionSetupCallback` + `MockConnectionCallbackNew`.
Everything else is changing tests to use the two new classes.
Differential Revision: D33076321
fbshipit-source-id: a938b63ce59f07f549b3e725caad8785348db7ed
Summary:
Helper classes for easy experimentation with QUIC in existing code using folly::AsyncSockets, using single QUIC bidi stream.
1) QuicStreamAsyncTransport buffers writes/read callback assignment until stream id is assigned. This similar to AsyncSocket that handles connect() internally and allows consumers to read/write right away after instance creation.
2) Quic(Client|Server)AsyncTransport handle connection level callbacks and update stream id on corresponding stream event
3) QuicAsyncTransportAcceptor and QuicAsyncTransportServer handle wangle::ManagedConnections, which are commonly used with folly::AsyncServerSockets
Reviewed By: yangchi
Differential Revision: D24656620
fbshipit-source-id: 75f9eb66c6cc8b7b1b974912d760c8aae5a5809f
Summary: Interact with a QUIC stream with the folly transport api you are used to
Reviewed By: mjoras
Differential Revision: D19541969
fbshipit-source-id: 36b8273095638e1e0136502925262c0eab264aa1