Summary: This doesn't belong in the generic state. Untangling it is a little difficult, but I think this solution is cleaner than having it in the generic state.
Reviewed By: JunqiWang
Differential Revision: D29856391
fbshipit-source-id: 1042109ed29cd1d20d139e08548d187b469c8398
Summary:
These are either no longer relevant, are unlikely to be done, or are spculative enough that they don't deserve code space.
Hope here is to make our search for TODOs higher signal.
Reviewed By: lnicco
Differential Revision: D29769792
fbshipit-source-id: 7cfa62cdc15e72d8b7b0cd5dbb5913ea3ca3dc5a
Summary: Since we try to write to two sockets it makes more sense to log both errnos.
Reviewed By: lnicco
Differential Revision: D29010998
fbshipit-source-id: 6c24007b45d83181a2d991e53c5a896aa3353200
Summary: Retriable is a bit of a misnomer here. It's more like "ignore these errors". Ignoring EMSGSIZE is probably not wise. That indicates the QUIC packets are being dropped. It may be a transient condition, but it's probably safer to just abandon this connection.
Reviewed By: lnicco
Differential Revision: D29008692
fbshipit-source-id: c2803804e24036e4b8b6ac0888cb2a917d83c15b
Summary: Without this we won't actually retransmit the 0RTT data on the second socket until they are declared lost after the handshake is done.
Reviewed By: JunqiWang
Differential Revision: D28942340
fbshipit-source-id: 192c9ca0544bfde9610720ca1b02322709f0e61e
Summary:
It doesn't and shouldn't modify it ever
(Note: this ignores all push blocking failures!)
Reviewed By: mjoras
Differential Revision: D27786706
fbshipit-source-id: fc57c434bd1d97e177e55ec529d4173b7e7d6086
Summary:
all it wants is just a pointer to the statsCallback member
(Note: this ignores all push blocking failures!)
Reviewed By: mjoras
Differential Revision: D27786211
fbshipit-source-id: 3364681348ee01684d6cb8d2837bee9549f64e3a
Summary:
It doesn't depend on the state of the IOBufQuicBatch. Move it out so
other writers can use this function in the future
Reviewed By: mjoras
Differential Revision: D21005960
fbshipit-source-id: b09f41f715a7908f74e490ca24eaec0e41f58a2c
Summary: We send conn close packets when network is un-rechable, this task fixes the issue and we no longer send conn close frames when network is un-rechable.
Reviewed By: yangchi, lnicco
Differential Revision: D18469028
fbshipit-source-id: 3090b6b3d63e1fc9448b8d945c645f4da8747ffc
Summary:
Becuase closeImpl will write again. Ideally in this case we should just
abandon the connection, but putting this bandage to prevent crash for now
Reviewed By: siyengar
Differential Revision: D15295421
fbshipit-source-id: d098e790c0c2609d817f5d1d3689858aa80a8b73
Summary:
Close the socket when fatal error occurred. This prevents quic transport from receiving readCallback from a bad socket.
Also, close the happy eyeball socket when transport is shutdown.
Reviewed By: siyengar
Differential Revision: D15264105
fbshipit-source-id: e6c33f626cdef6a4ebc6820e39ac78da525133d0
Summary:
Previously we decided to be conservative and error out the connetion
when either of the 2 sockets fails to write. This makes the happy eyeballs
component meaningless for e.g. IPv4 only network cases. This time we try to do it right.
The connection will keep track `shouldWrite` bool for both sockets. `shouldWriteToFirstSocket` is initialized to true and `shouldWriteToSecond` is initialized to false. Whenever **fatal** error occurs on a socket, the corresponding `shouldWrite` bool is changed to false. We are not finishing happy eyeballs state immediately but delaying this action to when we receive data back.
Reviewed By: siyengar
Differential Revision: D15261148
fbshipit-source-id: 3ee7de81a1d579e418be36bc2800d93d414abe3d
Summary:
Previously we tried continue on network down and it showed good
improvement. But there was a problem: it hurts UX for airplane mode users, it
didn't return error back to user immediately but after 30/60 seconds timeout.
This adds a timer for this feature and it only allows the transport to ignore
network unreachable error for 200ms. After 200ms, it throws and reports to user
if the error persists.
Reviewed By: siyengar
Differential Revision: D15089442
fbshipit-source-id: dd87f4f579187c4b45244a7ee0477d2a0cf1b5d7