Parcourir la source

2007-11-22 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	Trim announce URL
	* src/DefaultBtContext.cc
	* test/ShaVisitorTest.cc
	
	Trim argument s. Give trimed s to exception constructor.
	* src/Util.cc (parseInt)(parseLLInt)
	* test/UtilTest.cc
Tatsuhiro Tsujikawa il y a 18 ans
Parent
commit
194f45a3c3
8 fichiers modifiés avec 28 ajouts et 15 suppressions
  1. 10 0
      ChangeLog
  2. 1 0
      TODO
  3. 2 2
      src/DefaultBtContext.cc
  4. 10 8
      src/Util.cc
  5. 1 1
      test/ShaVisitorTest.cc
  6. 2 2
      test/UtilTest.cc
  7. 1 1
      test/single.torrent
  8. 1 1
      test/test.torrent

+ 10 - 0
ChangeLog

@@ -1,3 +1,13 @@
+2007-11-22  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	Trim announce URL
+	* src/DefaultBtContext.cc
+	* test/ShaVisitorTest.cc
+	
+	Trim argument s. Give trimed s to exception constructor.
+	* src/Util.cc (parseInt)(parseLLInt)
+	* test/UtilTest.cc
+
 2007-11-22  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	Set precision back to 1.

+ 1 - 0
TODO

@@ -54,6 +54,7 @@
     DownloadFailureException .... RequestGroup should halt.
   FatalException .... Program should abort.
 * replace strtol with Util::parseInt
+* do performance tuning against Xml2MetalinkProcessor
 
 -- remaining issues to be implemented for 0.12.0 release
 * Update translation

+ 2 - 2
src/DefaultBtContext.cc

@@ -161,7 +161,7 @@ void DefaultBtContext::extractFileEntries(Dictionary* infoDic,
 
 void DefaultBtContext::extractAnnounce(Data* announceData) {
   Strings urls;
-  urls.push_back(announceData->toString());
+  urls.push_back(Util::trim(announceData->toString()));
   announceTiers.push_back(AnnounceTierHandle(new AnnounceTier(urls)));
 }
 
@@ -173,7 +173,7 @@ void DefaultBtContext::extractAnnounceList(List* announceListData) {
     for(MetaList::const_iterator elemItr = elem->getList().begin();
 	elemItr != elem->getList().end(); elemItr++) {
       const Data* data = (Data*)*elemItr;
-      urls.push_back(data->toString());
+      urls.push_back(Util::trim(data->toString()));
     }
     if(urls.size()) {
       AnnounceTierHandle tier(new AnnounceTier(urls));

+ 10 - 8
src/Util.cc

@@ -462,38 +462,40 @@ void Util::unfoldRange(const string& src, Integers& range) {
 
 int32_t Util::parseInt(const string& s, int32_t base)
 {
-  if(s.empty()) {
+  string trimed = Util::trim(s);
+  if(trimed.empty()) {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
 			"empty string");
   }
   char* stop;
   errno = 0;
-  long int v = strtol(s.c_str(), &stop, base);
+  long int v = strtol(trimed.c_str(), &stop, base);
   if(*stop != '\0') {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
-			"illegal character");
+			trimed.c_str());
   } else if((v == LONG_MIN || v == LONG_MAX) && errno == ERANGE || v > INT32_MAX || v < INT32_MIN) {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
-			"overflow/underflow");
+			trimed.c_str());
   }
   return v;
 }
 
 int64_t Util::parseLLInt(const string& s, int32_t base)
 {
-  if(s.empty()) {
+  string trimed = Util::trim(s);
+  if(trimed.empty()) {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
 			"empty string");
   }
   char* stop;
   errno = 0;
-  int64_t v = strtoll(s.c_str(), &stop, base);
+  int64_t v = strtoll(trimed.c_str(), &stop, base);
   if(*stop != '\0') {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
-			"illegal character");
+			trimed.c_str());
   } else if((v == INT64_MIN || v == INT64_MAX) && errno == ERANGE) {
     throw new DlAbortEx(MSG_STRING_INTEGER_CONVERSION_FAILURE,
-			"overflow/underflow");
+			trimed.c_str());
   }
   return v;
 }

+ 1 - 1
test/ShaVisitorTest.cc

@@ -57,6 +57,6 @@ void ShaVisitorTest::testVisitCompound() {
   int len = 0;
   v.getHash(md, len);
   string hashHex = hexHash(md, len);
-  CPPUNIT_ASSERT_EQUAL(string("36a58c6ab3eb02caa952f4345f57fabb06a39511"),
+  CPPUNIT_ASSERT_EQUAL(string("5a2bf55fb6ec71a9cd3e06537aa7795cafccffab"),
 		       hashHex);
 }

+ 2 - 2
test/UtilTest.cc

@@ -514,7 +514,7 @@ void UtilTest::testParseIntRange_invalidRange()
 
 void UtilTest::testParseInt()
 {
-  CPPUNIT_ASSERT_EQUAL((int32_t)-1, Util::parseInt("-1"));
+  CPPUNIT_ASSERT_EQUAL((int32_t)-1, Util::parseInt(" -1 "));
   CPPUNIT_ASSERT_EQUAL((int32_t)2147483647, Util::parseInt("2147483647"));
   try {
     Util::parseInt("2147483648");
@@ -548,7 +548,7 @@ void UtilTest::testParseInt()
 
 void UtilTest::testParseLLInt()
 {
-  CPPUNIT_ASSERT_EQUAL((int64_t)-1, Util::parseLLInt("-1"));
+  CPPUNIT_ASSERT_EQUAL((int64_t)-1, Util::parseLLInt(" -1 "));
   CPPUNIT_ASSERT_EQUAL((int64_t)9223372036854775807LL,
 		       Util::parseLLInt("9223372036854775807"));
   try {

+ 1 - 1
test/single.torrent

@@ -1 +1 @@
-d8:announce36:http://aria.rednoah.com/announce.php7:comment17:REDNOAH.COM RULES13:creation datei1123456789e4:infod4:name19:aria2-0.8.2.tar.bz26:lengthi384e12:piece lengthi128e6:pieces60:AAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCee
+d8:announce37:http://aria.rednoah.com/announce.php 7:comment17:REDNOAH.COM RULES13:creation datei1123456789e4:infod4:name19:aria2-0.8.2.tar.bz26:lengthi384e12:piece lengthi128e6:pieces60:AAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCee

+ 1 - 1
test/test.torrent

@@ -1 +1 @@
-d8:announce36:http://aria.rednoah.com/announce.php13:announce-listll15:http://tracker1el15:http://tracker2el15:http://tracker3ee7:comment17:REDNOAH.COM RULES13:creation datei1123456789e4:infod5:filesld6:lengthi284e4:pathl5:aria23:src6:aria2ceed6:lengthi100e4:pathl19:aria2-0.2.2.tar.bz2eee4:name10:aria2-test12:piece lengthi128e6:pieces60:AAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCee
+d8:announce36:http://aria.rednoah.com/announce.php13:announce-listll16:http://tracker1 el15:http://tracker2el15:http://tracker3ee7:comment17:REDNOAH.COM RULES13:creation datei1123456789e4:infod5:filesld6:lengthi284e4:pathl5:aria23:src6:aria2ceed6:lengthi100e4:pathl19:aria2-0.2.2.tar.bz2eee4:name10:aria2-test12:piece lengthi128e6:pieces60:AAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCee