40 void start
total number of connection attempts over all destinations so far.
void timeout(const CommTimeoutCbParams &)
ConnOpener(const ConnOpener &)
single connection currently to be opened.
called at the end of Comm::ConnOpener::DelayedConnectRetry event
static void InProgressConnectRetry(int fd, void *data)
Close and wait a little before trying to open and connect again.
struct Comm::ConnOpener::Calls calls_
cleans up this job sleep state
number of retries current destination has been tried.
CbcPointer< ConnOpener > Pointer
static void DelayedConnectRetry(void *data)
void setHost(const char *)
set the hostname note for this connection
void earlyAbort(const CommCloseCbParams &)
cleans I/O state and ends I/O for temporaryFd_
if we are not done by then, we will call back with Comm::TIMEOUT
void sendAnswer(Comm::Flag errFlag, int xerrno, const char *why)
ConnOpener(const Comm::ConnectionPointer &, const AsyncCall::Pointer &handler, time_t connect_timeout)
void start() override
called by AsyncStart; do not call directly
the FD being opened. Do NOT set conn_->fd until it is fully open.
ConnOpener & operator=(const ConnOpener &c)
char * host_
domain name we are trying to connect to.
bool doneAll() const override
whether positive goal has been reached
cleans I/O state and moves temporaryFd_ to the conn_ for long-term use
Make an FD connection attempt.
handler to be called on connection completion.
const char * getHost() const
get the hostname noted for this connection
static int connect_timeout
Abstraction layer for TCP, UDP, TLS, UDS and filedescriptor sockets.
static void handler(int signo)
handles to calls which we may need to cancel.