Sfoglia il codice sorgente

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
Tatsuhiro Tsujikawa 17 anni fa
parent
commit
5ea933fed1
5 ha cambiato i file con 15 aggiunte e 16 eliminazioni
  1. 8 0
      ChangeLog
  2. 2 2
      src/Request.cc
  3. 0 8
      src/RequestGroup.cc
  4. 2 3
      test/HttpRequestTest.cc
  5. 3 3
      test/RequestTest.cc

+ 8 - 0
ChangeLog

@@ -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,

+ 2 - 2
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);
 }
 

+ 0 - 8
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);

+ 2 - 3
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());

+ 3 - 3
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());