const long request_timeout,
const long idle_timeout)
: request_timer_(io_service),
- request_timer_setup_(false),
request_timeout_(request_timeout),
idle_timeout_(idle_timeout),
socket_(io_service),
void
HttpConnection::close() {
- request_timer_setup_ = false;
request_timer_.cancel();
socket_.close();
}
}
}
+ // Receiving is in progress, so push back the timeout.
+ setupRequestTimer();
+
if (length != 0) {
LOG_DEBUG(http_logger, isc::log::DBGLVL_TRACE_DETAIL_DATA,
HTTP_DATA_RECEIVED)
// We got EWOULDBLOCK or EAGAIN which indicate that we may be able to
// read something from the socket on the next attempt.
} else {
+ // Sending is in progress, so push back the timeout.
+ setupRequestTimer();
+
doWrite();
}
}
+
if (length <= output_buf_.size()) {
+ // Sending is in progress, so push back the timeout.
+ setupRequestTimer();
+
output_buf_.erase(0, length);
doWrite();
// because IntervalTimer already passes shared pointer to the
// IntervalTimerImpl to make sure that the callback remains
// valid.
- if (!request_timer_setup_) {
- request_timer_setup_ = true;
- request_timer_.setup(boost::bind(&HttpConnection::requestTimeoutCallback,
- this),
- request_timeout_, IntervalTimer::ONE_SHOT);
- }
+ request_timer_.setup(boost::bind(&HttpConnection::requestTimeoutCallback,
+ this),
+ request_timeout_, IntervalTimer::ONE_SHOT);
}
void
HttpConnection::setupIdleTimer() {
- request_timer_setup_ = false;
request_timer_.setup(boost::bind(&HttpConnection::idleTimeoutCallback,
this),
idle_timeout_, IntervalTimer::ONE_SHOT);