diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-27 13:07:08 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-11-27 13:07:08 +0000 |
| commit | a8d4fbad517618367fa989c60a384a65fafc7193 (patch) | |
| tree | 5e9b9b50ada1430a4c3c7da9ab29f4d74f722bbc | |
| parent | 58f4e715e06133433ae431b54c485af6fb662632 (diff) | |
2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --bt-max-peers option to changeOption XML-RPC method.
* src/XmlRpcMethod.cc
* src/XmlRpcMethodImpl.cc
* test/XmlRpcMethodTest.cc
| -rw-r--r-- | ChangeLog | 7 | ||||
| -rw-r--r-- | src/XmlRpcMethod.cc | 1 | ||||
| -rw-r--r-- | src/XmlRpcMethodImpl.cc | 8 | ||||
| -rw-r--r-- | test/XmlRpcMethodTest.cc | 33 |
4 files changed, 42 insertions, 7 deletions
@@ -1,5 +1,12 @@ 2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + Added --bt-max-peers option to changeOption XML-RPC method. + * src/XmlRpcMethod.cc + * src/XmlRpcMethodImpl.cc + * test/XmlRpcMethodTest.cc + +2009-11-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net> + Added test case for PREF_BT_REQUEST_PEER_SPEED_LIMIT * test/XmlRpcMethodTest.cc diff --git a/src/XmlRpcMethod.cc b/src/XmlRpcMethod.cc index 17506e92..68ac442c 100644 --- a/src/XmlRpcMethod.cc +++ b/src/XmlRpcMethod.cc @@ -140,6 +140,7 @@ static void applyOption(InputIterator optNameFirst, const std::set<std::string>& listChangeableOptions() { static const std::string OPTIONS[] = { + PREF_BT_MAX_PEERS, PREF_BT_REQUEST_PEER_SPEED_LIMIT, PREF_MAX_DOWNLOAD_LIMIT, PREF_MAX_UPLOAD_LIMIT diff --git a/src/XmlRpcMethodImpl.cc b/src/XmlRpcMethodImpl.cc index 766a36fb..738409e5 100644 --- a/src/XmlRpcMethodImpl.cc +++ b/src/XmlRpcMethodImpl.cc @@ -600,6 +600,14 @@ BDE ChangeOptionXmlRpcMethod::process if(option->defined(PREF_MAX_UPLOAD_LIMIT)) { group->setMaxUploadSpeedLimit(option->getAsInt(PREF_MAX_UPLOAD_LIMIT)); } +#ifdef ENABLE_BITTORRENT + BtObject btObject = e->getBtRegistry()->get(group->getGID()); + if(!btObject.isNull()) { + if(option->defined(PREF_BT_MAX_PEERS)) { + btObject._btRuntime->setMaxPeers(option->getAsInt(PREF_BT_MAX_PEERS)); + } + } +#endif // ENABLE_BITTORRENT } return BDE_OK; } diff --git a/test/XmlRpcMethodTest.cc b/test/XmlRpcMethodTest.cc index 27800ba7..afc671b2 100644 --- a/test/XmlRpcMethodTest.cc +++ b/test/XmlRpcMethodTest.cc @@ -18,6 +18,14 @@ #include "TestUtil.h" #include "DownloadContext.h" #include "FeatureConfig.h" +#ifdef ENABLE_BITTORRENT +# include "BtRegistry.h" +# include "BtRuntime.h" +# include "PieceStorage.h" +# include "PeerStorage.h" +# include "BtProgressInfoFile.h" +# include "BtAnnounce.h" +#endif // ENABLE_BITTORRENT namespace aria2 { @@ -365,24 +373,35 @@ void XmlRpcMethodTest::testChangeOption() BDE opt = BDE::dict(); opt[PREF_MAX_DOWNLOAD_LIMIT] = BDE("100K"); #ifdef ENABLE_BITTORRENT + opt[PREF_BT_MAX_PEERS] = BDE("100"); opt[PREF_BT_REQUEST_PEER_SPEED_LIMIT] = BDE("300K"); opt[PREF_MAX_UPLOAD_LIMIT] = BDE("50K"); + + BtObject btObject; + btObject._btRuntime = SharedHandle<BtRuntime>(new BtRuntime()); + _e->getBtRegistry()->put(group->getGID(), btObject); #endif // ENABLE_BITTORRENT req._params << opt; XmlRpcResponse res = m.execute(req, _e.get()); + SharedHandle<Option> option = group->getOption(); + CPPUNIT_ASSERT_EQUAL(0, res._code); CPPUNIT_ASSERT_EQUAL((unsigned int)100*1024, group->getMaxDownloadSpeedLimit()); CPPUNIT_ASSERT_EQUAL(std::string("102400"), - group->getOption()->get(PREF_MAX_DOWNLOAD_LIMIT)); + option->get(PREF_MAX_DOWNLOAD_LIMIT)); #ifdef ENABLE_BITTORRENT - CPPUNIT_ASSERT_EQUAL - (std::string("307200"), - group->getOption()->get(PREF_BT_REQUEST_PEER_SPEED_LIMIT)); - CPPUNIT_ASSERT_EQUAL((unsigned int)50*1024, group->getMaxUploadSpeedLimit()); - CPPUNIT_ASSERT_EQUAL(std::string("51200"), - group->getOption()->get(PREF_MAX_UPLOAD_LIMIT)); + CPPUNIT_ASSERT_EQUAL(std::string("307200"), + option->get(PREF_BT_REQUEST_PEER_SPEED_LIMIT)); + + CPPUNIT_ASSERT_EQUAL(std::string("100"), option->get(PREF_BT_MAX_PEERS)); + CPPUNIT_ASSERT_EQUAL((unsigned int)100, btObject._btRuntime->getMaxPeers()); + + CPPUNIT_ASSERT_EQUAL((unsigned int)50*1024, + group->getMaxUploadSpeedLimit()); + CPPUNIT_ASSERT_EQUAL(std::string("51200"), + option->get(PREF_MAX_UPLOAD_LIMIT)); #endif // ENABLE_BITTORRENT } |
