Add a method to AsyncSSLSocket to supply connect timeouts
authorSubodh Iyengar <subodh@fb.com>
Thu, 2 Mar 2017 17:00:14 +0000 (09:00 -0800)
committerFacebook Github Bot <facebook-github-bot@users.noreply.github.com>
Thu, 2 Mar 2017 17:05:38 +0000 (09:05 -0800)
commitfeff1cded5ac7128a1df719c4a2a8393370a40ab
tree5cd8a59f74a9616c687bf17dddad2ef6e5ad4da8
parente473e0f9f9cc4fe10dc8920e8197c456e5c07140
Add a method to AsyncSSLSocket to supply connect timeouts

Summary:
The current method to supply connect timeouts to AsyncSSLSocket
is to supply only the max connect + ssl connect time.

However in some cases when connect time is known, it is desirable
to supply it so that if connect does not succeed in connect time
we can error out quicker and retry.

This adds a new method for connect time in addition to the total
Connect time.

An alternative to this would be to create a AsyncSocket, connect it
and then pass it's fd to AsyncSSLSocket, however that approach does
not work well when TFO is being used, because TFO State is a part of
the AsyncSocket's state and that is not encapsulated with the fd transfer.

We could move the state around, but that is error prone, and this is much
simpler and isolated to AsyncSSLSocket.

Reviewed By: knekritz

Differential Revision: D4626924

fbshipit-source-id: d802d035efbced68873ab59314d9f0e661e5509b
folly/io/async/AsyncSSLSocket.cpp
folly/io/async/AsyncSSLSocket.h