diff options
Diffstat (limited to 'src/DHTRoutingTableDeserializer.cc')
| -rw-r--r-- | src/DHTRoutingTableDeserializer.cc | 63 |
1 files changed, 32 insertions, 31 deletions
diff --git a/src/DHTRoutingTableDeserializer.cc b/src/DHTRoutingTableDeserializer.cc index 490f3f18..bc01e545 100644 --- a/src/DHTRoutingTableDeserializer.cc +++ b/src/DHTRoutingTableDeserializer.cc @@ -53,19 +53,20 @@ namespace aria2 { -DHTRoutingTableDeserializer::DHTRoutingTableDeserializer(int family): - family_(family) {} +DHTRoutingTableDeserializer::DHTRoutingTableDeserializer(int family) + : family_(family) +{ +} DHTRoutingTableDeserializer::~DHTRoutingTableDeserializer() {} -#define READ_CHECK(fp, ptr, count) \ - if(fp.read((ptr), (count)) != (count)) { \ - throw DL_ABORT_EX("Failed to load DHT routing table."); \ +#define READ_CHECK(fp, ptr, count) \ + if (fp.read((ptr), (count)) != (count)) { \ + throw DL_ABORT_EX("Failed to load DHT routing table."); \ } namespace { -void readBytes(BufferedFile& fp, - unsigned char* buf, size_t buflen, +void readBytes(BufferedFile& fp, unsigned char* buf, size_t buflen, size_t readlen) { assert(readlen <= buflen); @@ -75,12 +76,11 @@ void readBytes(BufferedFile& fp, void DHTRoutingTableDeserializer::deserialize(const std::string& filename) { - A2_LOG_INFO(fmt("Loading DHT routing table from %s.", - filename.c_str())); + A2_LOG_INFO(fmt("Loading DHT routing table from %s.", filename.c_str())); BufferedFile fp(filename.c_str(), BufferedFile::READ); - if(!fp) { - throw DL_ABORT_EX(fmt("Failed to load DHT routing table from %s", - filename.c_str())); + if (!fp) { + throw DL_ABORT_EX( + fmt("Failed to load DHT routing table from %s", filename.c_str())); } char header[8]; memset(header, 0, sizeof(header)); @@ -115,26 +115,27 @@ void DHTRoutingTableDeserializer::deserialize(const std::string& filename) // header readBytes(fp, buf, buf.size(), 8); - if(memcmp(header, buf, 8) == 0) { + if (memcmp(header, buf, 8) == 0) { version = 3; - } else if(memcmp(headerCompat, buf, 8) == 0) { + } + else if (memcmp(headerCompat, buf, 8) == 0) { version = 2; - } else { - throw DL_ABORT_EX - (fmt("Failed to load DHT routing table from %s. cause:%s", - filename.c_str(), - "bad header")); + } + else { + throw DL_ABORT_EX(fmt("Failed to load DHT routing table from %s. cause:%s", + filename.c_str(), "bad header")); } uint32_t temp32; uint64_t temp64; // time - if(version == 2) { + if (version == 2) { READ_CHECK(fp, &temp32, sizeof(temp32)); serializedTime_.setTimeFromEpoch(ntohl(temp32)); // 4bytes reserved readBytes(fp, buf, buf.size(), 4); - } else { + } + else { READ_CHECK(fp, &temp64, sizeof(temp64)); serializedTime_.setTimeFromEpoch(ntoh64(temp64)); } @@ -154,36 +155,36 @@ void DHTRoutingTableDeserializer::deserialize(const std::string& filename) // 4bytes reserved readBytes(fp, buf, buf.size(), 4); - std::vector<std::shared_ptr<DHTNode> > nodes; + std::vector<std::shared_ptr<DHTNode>> nodes; // nodes const int compactlen = bittorrent::getCompactLength(family_); - for(size_t i = 0; i < numNodes; ++i) { + for (size_t i = 0; i < numNodes; ++i) { // 1byte compact peer info length uint8_t peerInfoLen; READ_CHECK(fp, &peerInfoLen, sizeof(peerInfoLen)); - if(peerInfoLen != compactlen) { + if (peerInfoLen != compactlen) { // skip this entry - readBytes(fp, buf, buf.size(), 7+48); + readBytes(fp, buf, buf.size(), 7 + 48); continue; } // 7bytes reserved readBytes(fp, buf, buf.size(), 7); // compactlen bytes compact peer info readBytes(fp, buf, buf.size(), compactlen); - if(memcmp(zero, buf, compactlen) == 0) { + if (memcmp(zero, buf, compactlen) == 0) { // skip this entry - readBytes(fp, buf, buf.size(), 48-compactlen); + readBytes(fp, buf, buf.size(), 48 - compactlen); continue; } std::pair<std::string, uint16_t> peer = - bittorrent::unpackcompact(buf, family_); - if(peer.first.empty()) { + bittorrent::unpackcompact(buf, family_); + if (peer.first.empty()) { // skip this entry - readBytes(fp, buf, buf.size(), 48-compactlen); + readBytes(fp, buf, buf.size(), 48 - compactlen); continue; } // 24-compactlen bytes reserved - readBytes(fp, buf, buf.size(), 24-compactlen); + readBytes(fp, buf, buf.size(), 24 - compactlen); // node ID readBytes(fp, buf, buf.size(), DHT_ID_LENGTH); |
