From 5ea933fed14e6722cff0759c01a9ab496bfeeb9a Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 8 May 2008 13:20:15 +0000 Subject: [PATCH] 2008-05-08 Tatsuhiro Tsujikawa Set _supportsPersistentConnection to true by default. * src/Request.cc * src/RequestGroup.cc * test/HttpRequestTest.cc * test/RequestTest.cc --- ChangeLog | 8 ++++++++ src/Request.cc | 4 ++-- src/RequestGroup.cc | 8 -------- test/HttpRequestTest.cc | 5 ++--- test/RequestTest.cc | 6 +++--- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index ee30bd8f..611d640d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-05-08 Tatsuhiro Tsujikawa + + Set _supportsPersistentConnection to true by default. + * src/Request.cc + * src/RequestGroup.cc + * test/HttpRequestTest.cc + * test/RequestTest.cc + 2008-05-08 Tatsuhiro Tsujikawa Added timeout to socket pool. The default timeout is 15 seconds, diff --git a/src/Request.cc b/src/Request.cc index cc9c7c94..c34e7855 100644 --- a/src/Request.cc +++ b/src/Request.cc @@ -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); } diff --git a/src/RequestGroup.cc b/src/RequestGroup.cc index 04dffaa9..c3b03cca 100644 --- a/src/RequestGroup.cc +++ b/src/RequestGroup.cc @@ -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); diff --git a/test/HttpRequestTest.cc b/test/HttpRequestTest.cc index 19c04491..3b2a3c34 100644 --- a/test/HttpRequestTest.cc +++ b/test/HttpRequestTest.cc @@ -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()); diff --git a/test/RequestTest.cc b/test/RequestTest.cc index 95c8e69e..5692f392 100644 --- a/test/RequestTest.cc +++ b/test/RequestTest.cc @@ -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());