diff --git a/ChangeLog b/ChangeLog index 24ed37e6..4e551025 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-09 Tatsuhiro Tsujikawa + + Set Request::setKeepAliveHint() and Request::setPipeliningHint() + in InitiateConnectionCommandFactory. They should be set only when + the protocol is HTTP or HTTPS. + * src/InitiateConnectionCommandFactory.cc + * src/RequestGroup.cc + 2008-05-09 Tatsuhiro Tsujikawa Fixed infinite loop in checksum checking. diff --git a/src/InitiateConnectionCommandFactory.cc b/src/InitiateConnectionCommandFactory.cc index ca3a7a75..86d9ba80 100644 --- a/src/InitiateConnectionCommandFactory.cc +++ b/src/InitiateConnectionCommandFactory.cc @@ -40,6 +40,8 @@ #include "DownloadEngine.h" #include "DlAbortEx.h" #include "StringFormat.h" +#include "Option.h" +#include "prefs.h" namespace aria2 { @@ -51,6 +53,14 @@ InitiateConnectionCommandFactory::createInitiateConnectionCommand(int32_t cuid, || req->getProtocol() == "https" #endif // ENABLE_SSL ) { + + if(e->option->getAsBool(PREF_ENABLE_HTTP_KEEP_ALIVE)) { + req->setKeepAliveHint(true); + } + if(e->option->getAsBool(PREF_ENABLE_HTTP_PIPELINING)) { + req->setPipeliningHint(true); + } + return new HttpInitiateConnectionCommand(cuid, req, requestGroup, e); } else if(req->getProtocol() == "ftp") { return new FtpInitiateConnectionCommand(cuid, req, requestGroup, e); diff --git a/src/RequestGroup.cc b/src/RequestGroup.cc index c3b03cca..8c984f2c 100644 --- a/src/RequestGroup.cc +++ b/src/RequestGroup.cc @@ -491,13 +491,6 @@ Commands RequestGroup::createNextCommand(DownloadEngine* e, unsigned int numComm req->setReferer(_option->get(PREF_REFERER)); req->setMethod(method); - if(_option->getAsBool(PREF_ENABLE_HTTP_KEEP_ALIVE)) { - req->setKeepAliveHint(true); - } - if(_option->getAsBool(PREF_ENABLE_HTTP_PIPELINING)) { - req->setPipeliningHint(true); - } - Command* command = InitiateConnectionCommandFactory::createInitiateConnectionCommand(CUIDCounterSingletonHolder::instance()->newID(), req, this, e); ServerHostHandle sv(new ServerHost(command->getCuid(), req->getHost())); registerServerHost(sv);