summaryrefslogtreecommitdiff
path: root/src/DefaultBtContext.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-04-27 11:45:22 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-04-27 11:45:22 +0000
commit49b4cfbfcdf615dc01d748179c6b67e78bd5362e (patch)
tree607214c9048ae8ba51e38a6c5daa1b99e376d218 /src/DefaultBtContext.cc
parentd58742ad21407362db34d508ceef8b7b21088bb1 (diff)
2009-04-27 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Put BDE in aria2 namespace. BDE will also be used to store xml-rpc request. * src/AnnounceList.cc * src/AnnounceList.h * src/BDE.cc: Added * src/BDE.h: Added * src/DHTAbstractMessage.cc * src/DHTAbstractMessage.h * src/DHTAnnouncePeerMessage.cc * src/DHTAnnouncePeerMessage.h * src/DHTAnnouncePeerReplyMessage.cc * src/DHTAnnouncePeerReplyMessage.h * src/DHTFindNodeMessage.cc * src/DHTFindNodeMessage.h * src/DHTFindNodeReplyMessage.cc * src/DHTFindNodeReplyMessage.h * src/DHTGetPeersMessage.cc * src/DHTGetPeersMessage.h * src/DHTGetPeersReplyMessage.cc * src/DHTGetPeersReplyMessage.h * src/DHTMessageFactory.h * src/DHTMessageFactoryImpl.cc * src/DHTMessageFactoryImpl.h * src/DHTMessageReceiver.cc * src/DHTMessageTracker.cc * src/DHTMessageTracker.h * src/DHTPingMessage.cc * src/DHTPingMessage.h * src/DHTPingReplyMessage.cc * src/DHTPingReplyMessage.h * src/DHTQueryMessage.cc * src/DHTQueryMessage.h * src/DHTResponseMessage.cc * src/DHTResponseMessage.h * src/DefaultBtAnnounce.cc * src/DefaultBtContext.cc * src/DefaultBtContext.h * src/HandshakeExtensionMessage.cc * src/Makefile.am * src/PeerListProcessor.h * src/UTPexExtensionMessage.cc * src/bencode.cc * src/bencode.h * test/AnnounceListTest.cc * test/BDETest.cc: Added * test/BencodeTest.cc * test/DHTAnnouncePeerMessageTest.cc * test/DHTAnnouncePeerReplyMessageTest.cc * test/DHTFindNodeMessageTest.cc * test/DHTFindNodeReplyMessageTest.cc * test/DHTGetPeersMessageTest.cc * test/DHTGetPeersReplyMessageTest.cc * test/DHTMessageFactoryImplTest.cc * test/DHTMessageTrackerTest.cc * test/DHTPingMessageTest.cc * test/DHTPingReplyMessageTest.cc * test/Makefile.am * test/MockDHTMessageFactory.h * test/PeerListProcessorTest.cc
Diffstat (limited to 'src/DefaultBtContext.cc')
-rw-r--r--src/DefaultBtContext.cc60
1 files changed, 30 insertions, 30 deletions
diff --git a/src/DefaultBtContext.cc b/src/DefaultBtContext.cc
index 99b8beef..7bc86e54 100644
--- a/src/DefaultBtContext.cc
+++ b/src/DefaultBtContext.cc
@@ -111,13 +111,13 @@ void DefaultBtContext::extractPieceHash(const std::string& hashData,
}
}
-void DefaultBtContext::extractFileEntries(const bencode::BDE& infoDict,
+void DefaultBtContext::extractFileEntries(const BDE& infoDict,
const std::string& defaultName,
const std::string& overrideName,
const std::deque<std::string>& urlList)
{
if(overrideName.empty()) {
- const bencode::BDE& nameData = infoDict[BtContext::C_NAME];
+ const BDE& nameData = infoDict[BtContext::C_NAME];
if(nameData.isString()) {
name = nameData.s();
} else {
@@ -126,34 +126,34 @@ void DefaultBtContext::extractFileEntries(const bencode::BDE& infoDict,
} else {
name = overrideName;
}
- const bencode::BDE& filesList = infoDict[BtContext::C_FILES];
+ const BDE& filesList = infoDict[BtContext::C_FILES];
if(filesList.isList()) {
uint64_t length = 0;
off_t offset = 0;
// multi-file mode
fileMode = BtContext::MULTI;
- for(bencode::BDE::List::const_iterator itr = filesList.listBegin();
+ for(BDE::List::const_iterator itr = filesList.listBegin();
itr != filesList.listEnd(); ++itr) {
- const bencode::BDE& fileDict = *itr;
+ const BDE& fileDict = *itr;
if(!fileDict.isDict()) {
continue;
}
- const bencode::BDE& fileLengthData = fileDict[BtContext::C_LENGTH];
+ const BDE& fileLengthData = fileDict[BtContext::C_LENGTH];
if(!fileLengthData.isInteger()) {
throw DlAbortEx(StringFormat(MSG_MISSING_BT_INFO,
BtContext::C_LENGTH.c_str()).str());
}
length += fileLengthData.i();
- const bencode::BDE& pathList = fileDict[BtContext::C_PATH];
+ const BDE& pathList = fileDict[BtContext::C_PATH];
if(!pathList.isList() || pathList.empty()) {
throw DlAbortEx("Path is empty.");
}
std::vector<std::string> pathelem(pathList.size());
std::transform(pathList.listBegin(), pathList.listEnd(), pathelem.begin(),
- std::mem_fun_ref(&bencode::BDE::s));
+ std::mem_fun_ref(&BDE::s));
std::string path =
name+"/"+Util::joinPath(pathelem.begin(), pathelem.end());
// Split path with '/' again because each pathList element can
@@ -174,7 +174,7 @@ void DefaultBtContext::extractFileEntries(const bencode::BDE& infoDict,
} else {
// single-file mode;
fileMode = BtContext::SINGLE;
- const bencode::BDE& lengthData = infoDict[BtContext::C_LENGTH];
+ const BDE& lengthData = infoDict[BtContext::C_LENGTH];
if(!lengthData.isInteger()) {
throw DlAbortEx(StringFormat(MSG_MISSING_BT_INFO,
BtContext::C_LENGTH.c_str()).str());
@@ -203,7 +203,7 @@ void DefaultBtContext::extractFileEntries(const bencode::BDE& infoDict,
}
}
-void DefaultBtContext::extractAnnounceURI(const bencode::BDE& announceData)
+void DefaultBtContext::extractAnnounceURI(const BDE& announceData)
{
// Assumed announceData is string
std::deque<std::string> urls;
@@ -211,19 +211,19 @@ void DefaultBtContext::extractAnnounceURI(const bencode::BDE& announceData)
announceTiers.push_back(AnnounceTierHandle(new AnnounceTier(urls)));
}
-void DefaultBtContext::extractAnnounceList(const bencode::BDE& announceList)
+void DefaultBtContext::extractAnnounceList(const BDE& announceList)
{
// Assumed announceList is string
- for(bencode::BDE::List::const_iterator itr = announceList.listBegin();
+ for(BDE::List::const_iterator itr = announceList.listBegin();
itr != announceList.listEnd(); ++itr) {
- const bencode::BDE& elemList = *itr;
+ const BDE& elemList = *itr;
if(!elemList.isList()) {
continue;
}
std::deque<std::string> urls;
- for(bencode::BDE::List::const_iterator elemItr = elemList.listBegin();
+ for(BDE::List::const_iterator elemItr = elemList.listBegin();
elemItr != elemList.listEnd(); ++elemItr) {
- const bencode::BDE& url = (*elemItr);
+ const BDE& url = (*elemItr);
if(url.isString()) {
urls.push_back(Util::trim(url.s()));
}
@@ -235,13 +235,13 @@ void DefaultBtContext::extractAnnounceList(const bencode::BDE& announceList)
}
}
-void DefaultBtContext::extractAnnounce(const bencode::BDE& rootDict)
+void DefaultBtContext::extractAnnounce(const BDE& rootDict)
{
- const bencode::BDE& announceList = rootDict[BtContext::C_ANNOUNCE_LIST];
+ const BDE& announceList = rootDict[BtContext::C_ANNOUNCE_LIST];
if(announceList.isList()) {
extractAnnounceList(announceList);
} else {
- const bencode::BDE& announce = rootDict[BtContext::C_ANNOUNCE];
+ const BDE& announce = rootDict[BtContext::C_ANNOUNCE];
if(announce.isString()) {
extractAnnounceURI(announce);
}
@@ -249,10 +249,10 @@ void DefaultBtContext::extractAnnounce(const bencode::BDE& rootDict)
}
void DefaultBtContext::extractUrlList(std::deque<std::string>& uris,
- const bencode::BDE& bde)
+ const BDE& bde)
{
if(bde.isList()) {
- for(bencode::BDE::List::const_iterator itr = bde.listBegin();
+ for(BDE::List::const_iterator itr = bde.listBegin();
itr != bde.listEnd(); ++itr) {
if((*itr).isString()) {
uris.push_back((*itr).s());
@@ -263,25 +263,25 @@ void DefaultBtContext::extractUrlList(std::deque<std::string>& uris,
}
}
-void DefaultBtContext::extractNodes(const bencode::BDE& nodesList)
+void DefaultBtContext::extractNodes(const BDE& nodesList)
{
if(!nodesList.isList()) {
return;
}
- for(bencode::BDE::List::const_iterator i = nodesList.listBegin();
+ for(BDE::List::const_iterator i = nodesList.listBegin();
i != nodesList.listEnd(); ++i) {
- const bencode::BDE& addrPairList = (*i);
+ const BDE& addrPairList = (*i);
if(!addrPairList.isList() || addrPairList.size() != 2) {
continue;
}
- const bencode::BDE& hostname = addrPairList[0];
+ const BDE& hostname = addrPairList[0];
if(!hostname.isString()) {
continue;
}
if(Util::trim(hostname.s()).empty()) {
continue;
}
- const bencode::BDE& port = addrPairList[1];
+ const BDE& port = addrPairList[1];
if(!port.isInteger() || !(0 < port.i() && port.i() < 65536)) {
continue;
}
@@ -304,7 +304,7 @@ void DefaultBtContext::load(const std::string& torrentFile,
overrideName);
}
-void DefaultBtContext::processRootDictionary(const bencode::BDE& rootDict,
+void DefaultBtContext::processRootDictionary(const BDE& rootDict,
const std::string& defaultName,
const std::string& overrideName)
{
@@ -312,7 +312,7 @@ void DefaultBtContext::processRootDictionary(const bencode::BDE& rootDict,
if(!rootDict.isDict()) {
throw DlAbortEx("torrent file does not contain a root dictionary.");
}
- const bencode::BDE& infoDict = rootDict[BtContext::C_INFO];
+ const BDE& infoDict = rootDict[BtContext::C_INFO];
if(!infoDict.isDict()) {
throw DlAbortEx(StringFormat(MSG_MISSING_BT_INFO,
BtContext::C_INFO.c_str()).str());
@@ -325,7 +325,7 @@ void DefaultBtContext::processRootDictionary(const bencode::BDE& rootDict,
encodedInfoDict.size());
infoHashString = Util::toHex(infoHash, INFO_HASH_LENGTH);
// calculate the number of pieces
- const bencode::BDE& piecesData = infoDict[BtContext::C_PIECES];
+ const BDE& piecesData = infoDict[BtContext::C_PIECES];
if(!piecesData.isString()) {
throw DlAbortEx(StringFormat(MSG_MISSING_BT_INFO,
BtContext::C_PIECES.c_str()).str());
@@ -338,7 +338,7 @@ void DefaultBtContext::processRootDictionary(const bencode::BDE& rootDict,
throw DlAbortEx("The number of pieces is 0.");
}
// retrieve piece length
- const bencode::BDE& pieceLengthData = infoDict[BtContext::C_PIECE_LENGTH];
+ const BDE& pieceLengthData = infoDict[BtContext::C_PIECE_LENGTH];
if(!pieceLengthData.isInteger()) {
throw DlAbortEx(StringFormat(MSG_MISSING_BT_INFO,
BtContext::C_PIECE_LENGTH.c_str()).str());
@@ -347,7 +347,7 @@ void DefaultBtContext::processRootDictionary(const bencode::BDE& rootDict,
// retrieve piece hashes
extractPieceHash(piecesData.s(), PIECE_HASH_LENGTH);
// private flag
- const bencode::BDE& privateData = infoDict[BtContext::C_PRIVATE];
+ const BDE& privateData = infoDict[BtContext::C_PRIVATE];
if(privateData.isInteger()) {
_private = (privateData.i() == 1);
}