diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:12:52 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2016-03-26 17:20:27 +0900 |
| commit | d64089632e82a2548752c7a6baaa68365a795a74 (patch) | |
| tree | 57fc7b85a8c1290975d58fa4761b04a7695bf7e3 /src/AbstractHttpServerResponseCommand.cc | |
| parent | c81b1321122e8509b55c94c0cbca0d8d6d319f0c (diff) | |
| parent | a7cd943a06b1a5ff4515b57060b84037f8d01f9f (diff) | |
Merge branch 'master' into random-webseeding
Diffstat (limited to 'src/AbstractHttpServerResponseCommand.cc')
| -rw-r--r-- | src/AbstractHttpServerResponseCommand.cc | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/src/AbstractHttpServerResponseCommand.cc b/src/AbstractHttpServerResponseCommand.cc index 057e74fa..80923ae9 100644 --- a/src/AbstractHttpServerResponseCommand.cc +++ b/src/AbstractHttpServerResponseCommand.cc @@ -47,17 +47,15 @@ namespace aria2 { -AbstractHttpServerResponseCommand::AbstractHttpServerResponseCommand -(cuid_t cuid, - const std::shared_ptr<HttpServer>& httpServer, - DownloadEngine* e, - const std::shared_ptr<SocketCore>& socket) - : Command(cuid), - e_(e), - socket_(socket), - httpServer_(httpServer), - readCheck_(false), - writeCheck_(true) +AbstractHttpServerResponseCommand::AbstractHttpServerResponseCommand( + cuid_t cuid, const std::shared_ptr<HttpServer>& httpServer, + DownloadEngine* e, const std::shared_ptr<SocketCore>& socket) + : Command(cuid), + e_(e), + socket_(socket), + httpServer_(httpServer), + readCheck_(false), + writeCheck_(true) { setStatus(Command::STATUS_ONESHOT_REALTIME); e_->addSocketForWriteCheck(socket_, this); @@ -65,31 +63,33 @@ AbstractHttpServerResponseCommand::AbstractHttpServerResponseCommand AbstractHttpServerResponseCommand::~AbstractHttpServerResponseCommand() { - if(readCheck_) { + if (readCheck_) { e_->deleteSocketForReadCheck(socket_, this); } - if(writeCheck_) { + if (writeCheck_) { e_->deleteSocketForWriteCheck(socket_, this); } } void AbstractHttpServerResponseCommand::updateReadWriteCheck() { - if(httpServer_->wantRead()) { - if(!readCheck_) { + if (httpServer_->wantRead()) { + if (!readCheck_) { readCheck_ = true; e_->addSocketForReadCheck(socket_, this); } - } else if(readCheck_) { + } + else if (readCheck_) { readCheck_ = false; e_->deleteSocketForReadCheck(socket_, this); } - if(httpServer_->wantWrite()) { - if(!writeCheck_) { + if (httpServer_->wantWrite()) { + if (!writeCheck_) { writeCheck_ = true; e_->addSocketForWriteCheck(socket_, this); } - } else if(writeCheck_) { + } + else if (writeCheck_) { writeCheck_ = false; e_->deleteSocketForWriteCheck(socket_, this); } @@ -97,34 +97,36 @@ void AbstractHttpServerResponseCommand::updateReadWriteCheck() bool AbstractHttpServerResponseCommand::execute() { - if(e_->getRequestGroupMan()->downloadFinished() || e_->isHaltRequested()) { + if (e_->getRequestGroupMan()->downloadFinished() || e_->isHaltRequested()) { return true; } try { ssize_t len = httpServer_->sendResponse(); - if(len > 0) { + if (len > 0) { timeoutTimer_ = global::wallclock(); } - } catch(RecoverableException& e) { - A2_LOG_INFO_EX - (fmt("CUID#%" PRId64 - " - Error occurred while transmitting response body.", - getCuid()), - e); + } + catch (RecoverableException& e) { + A2_LOG_INFO_EX(fmt("CUID#%" PRId64 + " - Error occurred while transmitting response body.", + getCuid()), + e); return true; } - if(httpServer_->sendBufferIsEmpty()) { + if (httpServer_->sendBufferIsEmpty()) { A2_LOG_INFO(fmt("CUID#%" PRId64 " - HttpServer: all response transmitted.", getCuid())); afterSend(httpServer_, e_); return true; - } else { + } + else { if (timeoutTimer_.difference(global::wallclock()) >= 30_s) { A2_LOG_INFO(fmt("CUID#%" PRId64 " - HttpServer: Timeout while trasmitting response.", getCuid())); return true; - } else { + } + else { updateReadWriteCheck(); e_->addCommand(std::unique_ptr<Command>(this)); return false; |
