}
int
-commSetConnTimeout(const Comm::ConnectionPointer &conn, int timeout, AsyncCall::Pointer &callback)
+commSetConnTimeout(const Comm::ConnectionPointer &conn, time_t timeout, AsyncCall::Pointer &callback)
{
debugs(5, 3, conn << " timeout " << timeout);
assert(Comm::IsConnOpen(conn));
* Set or clear the timeout for some action on an active connection.
* API to replace commSetTimeout() when a Comm::ConnectionPointer is available.
*/
-int commSetConnTimeout(const Comm::ConnectionPointer &conn, int seconds, AsyncCall::Pointer &callback);
+int commSetConnTimeout(const Comm::ConnectionPointer &conn, time_t seconds, AsyncCall::Pointer &callback);
int commUnsetConnTimeout(const Comm::ConnectionPointer &conn);
int ignoreErrno(int);
vc->busy = 1;
// Comm needs seconds but idnsCheckQueue() will check the exact timeout
- const int timeout = (Config.Timeout.idns_query % 1000 ?
- Config.Timeout.idns_query + 1000 : Config.Timeout.idns_query) / 1000;
+ const auto timeout = (Config.Timeout.idns_query % 1000 ?
+ Config.Timeout.idns_query + 1000 : Config.Timeout.idns_query) / 1000;
AsyncCall::Pointer nil;
commSetConnTimeout(vc->conn, timeout, nil);
AsyncCall::Pointer timeoutCall = commCbCall(84, 4, "Helper::Session::requestTimeout",
CommTimeoutCbPtrFun(Session::requestTimeout, srv));
- const int timeSpent = srv->requests.empty() ? 0 : (squid_curtime - srv->requests.front()->request.dispatch_time.tv_sec);
- const int timeLeft = max(1, (static_cast<int>(srv->parent->timeout) - timeSpent));
+ const time_t timeSpent = srv->requests.empty() ? 0 : (squid_curtime - srv->requests.front()->request.dispatch_time.tv_sec);
+ const time_t minimumNewTimeout = 1; // second
+ const auto timeLeft = max(minimumNewTimeout, srv->parent->timeout - timeSpent);
commSetConnTimeout(io.conn, timeLeft, timeoutCall);
}
return conn_;
}
-void Ipc::UdsOp::setTimeout(int seconds, const char *handlerName)
+void Ipc::UdsOp::setTimeout(time_t seconds, const char *handlerName)
{
typedef CommCbMemFunT<UdsOp, CommTimeoutCbParams> Dialer;
AsyncCall::Pointer handler = asyncCall(54,5, handlerName,
Comm::ConnectionPointer &conn(); ///< creates if needed and returns raw UDS socket descriptor
/// call timedout() if no UDS messages in a given number of seconds
- void setTimeout(int seconds, const char *handlerName);
+ void setTimeout(time_t seconds, const char *handlerName);
void clearTimeout(); ///< remove previously set timeout, if any
void setOptions(int newOptions); ///< changes socket options
private:
TypedMsgHdr message; ///< what to send
int retries; ///< how many times to try after a write error
- int timeout; ///< total time to send the message
+ time_t timeout; ///< total time to send the message
bool sleeping; ///< whether we are waiting to retry a failed write
bool writing; ///< whether Comm started and did not finish writing
void commCallCloseHandlers(int) STUB
void commUnsetFdTimeout(int) STUB
// int commSetTimeout(const Comm::ConnectionPointer &, int, AsyncCall::Pointer&) STUB_RETVAL(-1)
-int commSetConnTimeout(const Comm::ConnectionPointer &, int, AsyncCall::Pointer &) STUB_RETVAL(-1)
+int commSetConnTimeout(const Comm::ConnectionPointer &, time_t, AsyncCall::Pointer &) STUB_RETVAL(-1)
int commUnsetConnTimeout(const Comm::ConnectionPointer &) STUB_RETVAL(-1)
int ignoreErrno(int) STUB_RETVAL(-1)
void commCloseAllSockets(void) STUB