2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

Set _supportsPersistentConnection to true by default.
	* src/Request.cc
	* src/RequestGroup.cc
	* test/HttpRequestTest.cc
	* test/RequestTest.cc
pull/1/head
Tatsuhiro Tsujikawa 2008-05-08 13:20:15 +00:00
parent 2c54667beb
commit 5ea933fed1
5 changed files with 15 additions and 16 deletions

View File

@ -1,3 +1,11 @@
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Set _supportsPersistentConnection to true by default.
* src/Request.cc
* src/RequestGroup.cc
* test/HttpRequestTest.cc
* test/RequestTest.cc
2008-05-08 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Added timeout to socket pool. The default timeout is 15 seconds,

View File

@ -49,7 +49,7 @@ const std::string Request::METHOD_HEAD = "HEAD";
Request::Request():
port(0), tryCount(0),
_supportsPersistentConnection(false),
_supportsPersistentConnection(true),
_keepAliveHint(false),
_pipeliningHint(false),
method(METHOD_GET),
@ -70,7 +70,7 @@ bool Request::resetUrl() {
bool Request::redirectUrl(const std::string& url) {
previousUrl = "";
_supportsPersistentConnection = false;
_supportsPersistentConnection = true;
return parseUrl(url);
}

View File

@ -498,14 +498,6 @@ Commands RequestGroup::createNextCommand(DownloadEngine* e, unsigned int numComm
req->setPipeliningHint(true);
}
if(req->getProtocol() == "http" || req->getProtocol() == "https") {
// we set supportsPersistentConnection true here. When HTTP response
// is returned and it turns out that the remote server doesn't
// support persistent connection, then this value will be set to
// false.
req->supportsPersistentConnection(true);
}
Command* command = InitiateConnectionCommandFactory::createInitiateConnectionCommand(CUIDCounterSingletonHolder::instance()->newID(), req, this, e);
ServerHostHandle sv(new ServerHost(command->getCuid(), req->getHost()));
registerServerHost(sv);

View File

@ -178,7 +178,7 @@ void HttpRequestTest::testCreateRequest()
CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest());
// redirection clears persistent connection falg
// redirection set persistent connection flag to true
request->redirectUrl("http://localhost:8080/archives/download/aria2-1.0.0.tar.bz2");
expectedText = "GET /archives/download/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
@ -187,8 +187,7 @@ void HttpRequestTest::testCreateRequest()
"Host: localhost:8080\r\n"
"Pragma: no-cache\r\n"
"Cache-Control: no-cache\r\n"
"Connection: close\r\n"
"Range: bytes=1048576-\r\n"
"Range: bytes=1048576-2097151\r\n"
"\r\n";
CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest());

View File

@ -271,13 +271,13 @@ void RequestTest::testSetUrl17()
void RequestTest::testRedirectUrl() {
Request req;
req.supportsPersistentConnection(true);
req.supportsPersistentConnection(false);
req.setUrl("http://aria.rednoah.com:8080/aria2/index.html");
bool v2 = req.redirectUrl("http://aria.rednoah.co.jp/");
CPPUNIT_ASSERT(v2);
// persistent connection flag is set to be false after redirection
CPPUNIT_ASSERT(!req.supportsPersistentConnection());
// persistent connection flag is set to be true after redirection
CPPUNIT_ASSERT(req.supportsPersistentConnection());
// url must be the same
CPPUNIT_ASSERT_EQUAL(std::string("http://aria.rednoah.com:8080/aria2/index.html"),
req.getUrl());