diff options
| author | Nils Maier <maierman@web.de> | 2013-08-21 05:06:53 +0200 |
|---|---|---|
| committer | Nils Maier <maierman@web.de> | 2013-08-21 05:56:17 +0200 |
| commit | 8526ceeb452d23d7aa73d01c6cb0fc8ae5e0377b (patch) | |
| tree | 825b4f5d2a0f18331fbbf24773e80ee0b44b50dc /src | |
| parent | d8f44ef4f6c5ad86b08658ecba41a84b775b6e69 (diff) | |
Convert to autos and ranged loops
Diffstat (limited to 'src')
77 files changed, 557 insertions, 751 deletions
diff --git a/src/AdaptiveURISelector.cc b/src/AdaptiveURISelector.cc index 549d7472..1001247d 100644 --- a/src/AdaptiveURISelector.cc +++ b/src/AdaptiveURISelector.cc @@ -263,8 +263,7 @@ std::string AdaptiveURISelector::getMaxDownloadSpeedUri { int max = -1; std::string uri = A2STR::NIL; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { + for(auto i = uris.begin(), eoi = uris.end(); i != eoi; ++i) { std::shared_ptr<ServerStat> ss = getServerStats(*i); if(!ss) continue; @@ -285,8 +284,7 @@ std::deque<std::string> AdaptiveURISelector::getUrisBySpeed (const std::deque<std::string>& uris, int min) const { std::deque<std::string> bests; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { + for(auto i = uris.begin(), eoi = uris.end(); i != eoi; ++i) { std::shared_ptr<ServerStat> ss = getServerStats(*i); if(!ss) continue; @@ -302,7 +300,7 @@ std::string AdaptiveURISelector::selectRandomUri (const std::deque<std::string>& uris) const { int pos = SimpleRandomizer::getInstance()->getRandomNumber(uris.size()); - std::deque<std::string>::const_iterator i = uris.begin(); + auto i = uris.begin(); i = i+pos; return *i; } @@ -310,11 +308,10 @@ std::string AdaptiveURISelector::selectRandomUri std::string AdaptiveURISelector::getFirstNotTestedUri (const std::deque<std::string>& uris) const { - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { - std::shared_ptr<ServerStat> ss = getServerStats(*i); + for (const auto& i : uris) { + std::shared_ptr<ServerStat> ss = getServerStats(i); if(!ss) - return *i; + return i; } return A2STR::NIL; } @@ -324,9 +321,8 @@ std::string AdaptiveURISelector::getFirstToTestUri { int counter; int power; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { - std::shared_ptr<ServerStat> ss = getServerStats(*i); + for (const auto& u : uris) { + std::shared_ptr<ServerStat> ss = getServerStats(u); if(!ss) continue; counter = ss->getCounter(); @@ -336,7 +332,7 @@ std::string AdaptiveURISelector::getFirstToTestUri /* We test the mirror another time if it has not been * tested since 2^counter days */ if(ss->getLastUpdated().difference() > power*24*60*60) { - return *i; + return u; } } return A2STR::NIL; @@ -359,9 +355,8 @@ int AdaptiveURISelector::getNbTestedServers (const std::deque<std::string>& uris) const { int counter = 0; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { - std::shared_ptr<ServerStat> ss = getServerStats(*i); + for(const auto& u : uris) { + std::shared_ptr<ServerStat> ss = getServerStats(u); if(!ss) ++counter; } diff --git a/src/AnnounceList.cc b/src/AnnounceList.cc index 4c1e1b32..83affe81 100644 --- a/src/AnnounceList.cc +++ b/src/AnnounceList.cc @@ -61,12 +61,11 @@ AnnounceList::~AnnounceList() {} void AnnounceList::reconfigure (const std::vector<std::vector<std::string> >& announceList) { - for(std::vector<std::vector<std::string> >::const_iterator itr = - announceList.begin(), eoi = announceList.end(); itr != eoi; ++itr) { - if((*itr).empty()) { + for (const auto& vec: announceList) { + if(vec.empty()) { continue; } - std::deque<std::string> urls((*itr).begin(), (*itr).end()); + std::deque<std::string> urls(vec.begin(), vec.end()); std::shared_ptr<AnnounceTier> tier(new AnnounceTier(urls)); tiers_.push_back(tier); } @@ -207,15 +206,13 @@ void AnnounceList::setCurrentTier } void AnnounceList::moveToStoppedAllowedTier() { - std::deque<std::shared_ptr<AnnounceTier> >::iterator itr = - find_wrap_if(tiers_.begin(), tiers_.end(), - currentTier_, - FindStoppedAllowedTier()); + auto itr = find_wrap_if(tiers_.begin(), tiers_.end(), currentTier_, + FindStoppedAllowedTier()); setCurrentTier(itr); } void AnnounceList::moveToCompletedAllowedTier() { - std::deque<std::shared_ptr<AnnounceTier> >::iterator itr = + auto itr = find_wrap_if(tiers_.begin(), tiers_.end(), currentTier_, FindCompletedAllowedTier()); @@ -223,9 +220,8 @@ void AnnounceList::moveToCompletedAllowedTier() { } void AnnounceList::shuffle() { - for(std::deque<std::shared_ptr<AnnounceTier> >::const_iterator itr = - tiers_.begin(), eoi = tiers_.end(); itr != eoi; ++itr) { - std::deque<std::string>& urls = (*itr)->urls; + for (const auto& tier: tiers_) { + auto& urls = tier->urls; std::random_shuffle(urls.begin(), urls.end(), *SimpleRandomizer::getInstance()); } diff --git a/src/AppleTLSContext.cc b/src/AppleTLSContext.cc index 315d051e..e4a45768 100644 --- a/src/AppleTLSContext.cc +++ b/src/AppleTLSContext.cc @@ -105,7 +105,7 @@ namespace { CFStringRef cerr = SecCopyErrorMessageString(err, nullptr); if (cerr) { size_t len = CFStringGetLength(cerr) * 4; - char *buf = new char[len]; + auto buf = new char[len]; if (CFStringGetCString(cerr, buf, len, kCFStringEncodingUTF8)) { rv = buf; } diff --git a/src/AsyncNameResolver.cc b/src/AsyncNameResolver.cc index 048f7377..d9c73062 100644 --- a/src/AsyncNameResolver.cc +++ b/src/AsyncNameResolver.cc @@ -151,12 +151,11 @@ ares_addr_node* parseAsyncDNSServers(const std::string& serversOpt) root.next = nullptr; ares_addr_node* tail = &root; ares_addr_node* node = nullptr; - for(std::vector<std::string>::const_iterator i = servers.begin(), - eoi = servers.end(); i != eoi; ++i) { + for (const auto& s: servers) { if(node == nullptr) { node = new ares_addr_node(); } - size_t len = net::getBinAddr(&node->addr, (*i).c_str()); + size_t len = net::getBinAddr(&node->addr, s.c_str()); if(len != 0) { node->next = nullptr; node->family = (len == 4 ? AF_INET : AF_INET6); diff --git a/src/BtBitfieldMessage.cc b/src/BtBitfieldMessage.cc index a0437c91..9cfa3bd1 100644 --- a/src/BtBitfieldMessage.cc +++ b/src/BtBitfieldMessage.cc @@ -108,7 +108,7 @@ unsigned char* BtBitfieldMessage::createMessage() { * total: 5+bitfieldLength bytes */ const size_t msgLength = 5+bitfieldLength_; - unsigned char* msg = new unsigned char[msgLength]; + auto msg = new unsigned char[msgLength]; bittorrent::createPeerMessageString(msg, msgLength, 1+bitfieldLength_, ID); memcpy(msg+5, bitfield_, bitfieldLength_); return msg; diff --git a/src/BtDependency.cc b/src/BtDependency.cc index 4e8a9565..46058f20 100644 --- a/src/BtDependency.cc +++ b/src/BtDependency.cc @@ -128,28 +128,23 @@ bool BtDependency::resolve() } else { std::vector<std::shared_ptr<FileEntry> > destFiles; destFiles.reserve(fileEntries.size()); - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { - (*i)->setRequested(false); - destFiles.push_back(*i); + for(auto & e : fileEntries) { + e->setRequested(false); + destFiles.push_back(e); } std::sort(destFiles.begin(), destFiles.end(), EntryCmp()); // Copy file path in dependant_'s FileEntries to newly created // context's FileEntries to endorse the path structure of // dependant_. URIs and singleHostMultiConnection are also copied. - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator s = - dependantFileEntries.begin(), eoi = dependantFileEntries.end(); - s != eoi; ++s){ - std::vector<std::shared_ptr<FileEntry> >::const_iterator d = - std::lower_bound(destFiles.begin(), destFiles.end(), *s, - EntryCmp()); + for(const auto& e: dependantFileEntries){ + const auto d = std::lower_bound(destFiles.begin(), destFiles.end(), e, + EntryCmp()); if(d == destFiles.end() || - (*d)->getOriginalName() != (*s)->getOriginalName()) { + (*d)->getOriginalName() != e->getOriginalName()) { throw DL_ABORT_EX - (fmt("No entry %s in torrent file", - (*s)->getOriginalName().c_str())); + (fmt("No entry %s in torrent file", e->getOriginalName().c_str())); } else { - copyValues(*d, *s); + copyValues(*d, e); } } } diff --git a/src/BtExtendedMessage.cc b/src/BtExtendedMessage.cc index 6ecf4790..273ea289 100644 --- a/src/BtExtendedMessage.cc +++ b/src/BtExtendedMessage.cc @@ -68,7 +68,7 @@ unsigned char* BtExtendedMessage::createMessage() */ std::string payload = extensionMessage_->getPayload(); msgLength_ = 6+payload.size(); - unsigned char* msg = new unsigned char[msgLength_]; + auto msg = new unsigned char[msgLength_]; bittorrent::createPeerMessageString(msg, msgLength_, 2+payload.size(), ID); *(msg+5) = extensionMessage_->getExtensionMessageID(); memcpy(msg+6, payload.data(), payload.size()); diff --git a/src/BtHandshakeMessage.cc b/src/BtHandshakeMessage.cc index cbec38ff..2462d37b 100644 --- a/src/BtHandshakeMessage.cc +++ b/src/BtHandshakeMessage.cc @@ -89,7 +89,7 @@ BtHandshakeMessage::create(const unsigned char* data, size_t dataLength) unsigned char* BtHandshakeMessage::createMessage() { - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; msg[0] = pstrlen_; memcpy(msg+1, pstr_, PSTR_LENGTH); memcpy(msg+20, reserved_, RESERVED_LENGTH); diff --git a/src/BtKeepAliveMessage.cc b/src/BtKeepAliveMessage.cc index 3cb5baee..998426b6 100644 --- a/src/BtKeepAliveMessage.cc +++ b/src/BtKeepAliveMessage.cc @@ -45,7 +45,7 @@ unsigned char* BtKeepAliveMessage::createMessage() * len --- 0, 4bytes * total: 4bytes */ - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; memset(msg, 0, MESSAGE_LENGTH); return msg; } diff --git a/src/BtLeecherStateChoke.cc b/src/BtLeecherStateChoke.cc index 9f8ca9dc..6533320e 100644 --- a/src/BtLeecherStateChoke.cc +++ b/src/BtLeecherStateChoke.cc @@ -146,9 +146,8 @@ void BtLeecherStateChoke::plannedOptimisticUnchoke std::for_each(peerEntries.begin(), peerEntries.end(), std::mem_fn(&PeerEntry::disableOptUnchoking)); - std::vector<PeerEntry>::iterator i = - std::partition(peerEntries.begin(), peerEntries.end(), - PeerFilter(true, true)); + auto i = std::partition(peerEntries.begin(), peerEntries.end(), + PeerFilter(true, true)); if(i != peerEntries.begin()) { std::random_shuffle(peerEntries.begin(), i, *SimpleRandomizer::getInstance()); @@ -160,9 +159,8 @@ void BtLeecherStateChoke::plannedOptimisticUnchoke void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries) { - std::vector<PeerEntry>::iterator rest = - std::partition(peerEntries.begin(), peerEntries.end(), - std::mem_fn(&PeerEntry::isRegularUnchoker)); + auto rest = std::partition(peerEntries.begin(), peerEntries.end(), + std::mem_fn(&PeerEntry::isRegularUnchoker)); std::sort(peerEntries.begin(), rest); @@ -170,29 +168,28 @@ void BtLeecherStateChoke::regularUnchoke(std::vector<PeerEntry>& peerEntries) int count = 3; bool fastOptUnchoker = false; - std::vector<PeerEntry>::iterator peerIter = peerEntries.begin(); + auto peerIter = peerEntries.begin(); for(;peerIter != rest && count; ++peerIter, --count) { - (*peerIter).disableChokingRequired(); + peerIter->disableChokingRequired(); A2_LOG_INFO(fmt("RU: %s, dlspd=%d", (*peerIter).getPeer()->getIPAddress().c_str(), (*peerIter).getDownloadSpeed())); - if((*peerIter).getPeer()->optUnchoking()) { + if(peerIter->getPeer()->optUnchoking()) { fastOptUnchoker = true; - (*peerIter).disableOptUnchoking(); + peerIter->disableOptUnchoking(); } } if(fastOptUnchoker) { std::random_shuffle(peerIter, peerEntries.end(), *SimpleRandomizer::getInstance()); - for(std::vector<PeerEntry>::iterator i = peerIter, - eoi = peerEntries.end(); i != eoi; ++i) { - if((*i).getPeer()->peerInterested()) { - (*i).enableOptUnchoking(); - A2_LOG_INFO(fmt("OU: %s", (*i).getPeer()->getIPAddress().c_str())); + for (auto& p : peerEntries) { + if(p.getPeer()->peerInterested()) { + p.enableOptUnchoking(); + A2_LOG_INFO(fmt("OU: %s", p.getPeer()->getIPAddress().c_str())); break; } else { - (*i).disableChokingRequired(); - A2_LOG_INFO(fmt("OU: %s", (*i).getPeer()->getIPAddress().c_str())); + p.disableChokingRequired(); + A2_LOG_INFO(fmt("OU: %s", p.getPeer()->getIPAddress().c_str())); } } } diff --git a/src/BtPieceMessage.cc b/src/BtPieceMessage.cc index 96b092dc..ef08a131 100644 --- a/src/BtPieceMessage.cc +++ b/src/BtPieceMessage.cc @@ -125,7 +125,7 @@ void BtPieceMessage::doReceivedAction() if(piece->getWrDiskCacheEntry()) { // Write Disk Cache enabled. Unfortunately, it incurs extra data // copy. - unsigned char* dataCopy = new unsigned char[blockLength_]; + auto dataCopy = new unsigned char[blockLength_]; memcpy(dataCopy, data_+9, blockLength_); piece->updateWrCache(getPieceStorage()->getWrDiskCache(), dataCopy, 0, blockLength_, blockLength_, offset); diff --git a/src/BtPortMessage.cc b/src/BtPortMessage.cc index 5e61c0eb..1c400cc8 100644 --- a/src/BtPortMessage.cc +++ b/src/BtPortMessage.cc @@ -106,7 +106,7 @@ unsigned char* BtPortMessage::createMessage() * port --- port number, 2bytes * total: 7bytes */ - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; bittorrent::createPeerMessageString(msg, MESSAGE_LENGTH, 3, ID); bittorrent::setShortIntParam(&msg[5], port_); return msg; diff --git a/src/BtSeederStateChoke.cc b/src/BtSeederStateChoke.cc index b247ed08..b372e69f 100644 --- a/src/BtSeederStateChoke.cc +++ b/src/BtSeederStateChoke.cc @@ -124,8 +124,8 @@ void BtSeederStateChoke::unchoke std::sort(peers.begin(), peers.end()); - std::vector<PeerEntry>::iterator r = peers.begin(); - for(std::vector<PeerEntry>::iterator eoi = peers.end(); + auto r = peers.begin(); + for(auto eoi = peers.end(); r != eoi && count; ++r, --count) { (*r).getPeer()->chokingRequired(false); A2_LOG_INFO(fmt("RU: %s, ulspd=%d", diff --git a/src/BtSetup.cc b/src/BtSetup.cc index 438df6be..00e34f9e 100644 --- a/src/BtSetup.cc +++ b/src/BtSetup.cc @@ -229,10 +229,9 @@ void BtSetup::setup(std::vector<std::unique_ptr<Command>>& commands, } else { std::vector<std::pair<sockaddr_union, socklen_t> > ifAddrs; getInterfaceAddress(ifAddrs, lpdInterface, AF_INET, AI_NUMERICHOST); - for(std::vector<std::pair<sockaddr_union, socklen_t> >::const_iterator - i = ifAddrs.begin(), eoi = ifAddrs.end(); i != eoi; ++i) { + for (const auto& i : ifAddrs) { char host[NI_MAXHOST]; - if(inetNtop(AF_INET, &(*i).first.in.sin_addr, host, + if(inetNtop(AF_INET, &i.first.in.sin_addr, host, sizeof(host)) == 0 && receiver->init(host)) { initialized = true; diff --git a/src/ConsoleStatCalc.cc b/src/ConsoleStatCalc.cc index 4a29af8e..262e8b8f 100644 --- a/src/ConsoleStatCalc.cc +++ b/src/ConsoleStatCalc.cc @@ -142,7 +142,7 @@ void printProgressCompact(std::ostream& o, const DownloadEngine* e, e->getRequestGroupMan()->getRequestGroups(); size_t cnt = 0; const size_t MAX_ITEM = 5; - for(RequestGroupList::const_iterator i = groups.begin(), + for(auto i = groups.begin(), eoi = groups.end(); i != eoi && cnt < MAX_ITEM; ++i, ++cnt) { const std::shared_ptr<RequestGroup>& rg = *i; TransferStat stat = rg->calculateStat(); diff --git a/src/Context.cc b/src/Context.cc index 27ca9a3f..4919a378 100644 --- a/src/Context.cc +++ b/src/Context.cc @@ -115,20 +115,19 @@ void showFiles (const std::vector<std::string>& uris, const std::shared_ptr<Option>& op) { ProtocolDetector dt; - for(std::vector<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { + for(const auto & uri : uris) { printf(">>> "); - printf(MSG_SHOW_FILES, (*i).c_str()); + printf(MSG_SHOW_FILES, (uri).c_str()); printf("\n"); try { #ifdef ENABLE_BITTORRENT - if(dt.guessTorrentFile(*i)) { - showTorrentFile(*i); + if(dt.guessTorrentFile(uri)) { + showTorrentFile(uri); } else #endif // ENABLE_BITTORRENT #ifdef ENABLE_METALINK - if(dt.guessMetalinkFile(*i)) { - showMetalinkFile(*i, op); + if(dt.guessMetalinkFile(uri)) { + showMetalinkFile(uri, op); } else #endif // ENABLE_METALINK { @@ -235,7 +234,7 @@ Context::Context(bool standalone, // command-line. If they are left, because op is used as a template // for new RequestGroup(such as created in RPC command), they causes // unintentional effect. - for(std::shared_ptr<Option> i = op; i; i = i->getParent()) { + for(auto i = op; i; i = i->getParent()) { i->remove(PREF_OUT); i->remove(PREF_FORCE_SEQUENTIAL); i->remove(PREF_INPUT_FILE); diff --git a/src/CookieStorage.cc b/src/CookieStorage.cc index c21c4e6d..e6f3fb09 100644 --- a/src/CookieStorage.cc +++ b/src/CookieStorage.cc @@ -434,18 +434,17 @@ std::vector<const Cookie*> CookieStorage::criteriaFind } auto labels = splitDomainLabel(requestHost); auto node = rootNode_.get(); - for(auto i = labels.rbegin(), eoi = labels.rend(); i != eoi; ++i) { + for (auto i = labels.rbegin(), eoi = labels.rend(); i != eoi; ++i) { auto nextNode = node->findNext(*i); - if(nextNode) { - nextNode->setLastAccessTime(now); - if(nextNode->getInLru()) { - updateLru(nextNode, now); - } - nextNode->findCookie(res, requestHost, requestPath, now, secure); - node = nextNode; - } else { + if(!nextNode) { break; } + nextNode->setLastAccessTime(now); + if(nextNode->getInLru()) { + updateLru(nextNode, now); + } + nextNode->findCookie(res, requestHost, requestPath, now, secure); + node = nextNode; } auto divs = std::vector<CookiePathDivider>{}; std::transform(std::begin(res), std::end(res), std::back_inserter(divs), diff --git a/src/DHTAutoSaveCommand.cc b/src/DHTAutoSaveCommand.cc index 3e30e341..7cd22fca 100644 --- a/src/DHTAutoSaveCommand.cc +++ b/src/DHTAutoSaveCommand.cc @@ -97,11 +97,9 @@ void DHTAutoSaveCommand::save() std::vector<std::shared_ptr<DHTNode> > nodes; std::vector<std::shared_ptr<DHTBucket> > buckets; routingTable_->getBuckets(buckets); - for(std::vector<std::shared_ptr<DHTBucket> >::const_iterator i = buckets.begin(), - eoi = buckets.end(); i != eoi; ++i) { - const std::shared_ptr<DHTBucket>& bucket = *i; + for (const auto& b : buckets) { std::vector<std::shared_ptr<DHTNode> > goodNodes; - bucket->getGoodNodes(goodNodes); + b->getGoodNodes(goodNodes); nodes.insert(nodes.end(), goodNodes.begin(), goodNodes.end()); } diff --git a/src/DHTBucket.cc b/src/DHTBucket.cc index 7bebf4c7..feab6c57 100644 --- a/src/DHTBucket.cc +++ b/src/DHTBucket.cc @@ -110,7 +110,7 @@ bool DHTBucket::isInRange(const unsigned char* nodeID, bool DHTBucket::addNode(const std::shared_ptr<DHTNode>& node) { notifyUpdate(); - std::deque<std::shared_ptr<DHTNode> >::iterator itr = + auto itr = std::find_if(nodes_.begin(), nodes_.end(), derefEqual(node)); if(itr == nodes_.end()) { if(nodes_.size() < K) { @@ -144,7 +144,7 @@ void DHTBucket::cacheNode(const std::shared_ptr<DHTNode>& node) void DHTBucket::dropNode(const std::shared_ptr<DHTNode>& node) { if(!cachedNodes_.empty()) { - std::deque<std::shared_ptr<DHTNode> >::iterator itr = + auto itr = std::find_if(nodes_.begin(), nodes_.end(), derefEqual(node)); if(itr != nodes_.end()) { nodes_.erase(itr); @@ -156,7 +156,7 @@ void DHTBucket::dropNode(const std::shared_ptr<DHTNode>& node) void DHTBucket::moveToHead(const std::shared_ptr<DHTNode>& node) { - std::deque<std::shared_ptr<DHTNode> >::iterator itr = + auto itr = std::find_if(nodes_.begin(), nodes_.end(), derefEqual(node)); if(itr != nodes_.end()) { nodes_.erase(itr); @@ -166,7 +166,7 @@ void DHTBucket::moveToHead(const std::shared_ptr<DHTNode>& node) void DHTBucket::moveToTail(const std::shared_ptr<DHTNode>& node) { - std::deque<std::shared_ptr<DHTNode> >::iterator itr = + auto itr = std::find_if(nodes_.begin(), nodes_.end(), derefEqual(node)); if(itr != nodes_.end()) { nodes_.erase(itr); @@ -196,12 +196,11 @@ std::shared_ptr<DHTBucket> DHTBucket::split() rMax, rMin, localNode_)); std::deque<std::shared_ptr<DHTNode> > lNodes; - for(std::deque<std::shared_ptr<DHTNode> >::iterator i = nodes_.begin(), - eoi = nodes_.end(); i != eoi; ++i) { - if(rBucket->isInRange(*i)) { - assert(rBucket->addNode(*i)); + for(auto & elem : nodes_) { + if(rBucket->isInRange(elem)) { + assert(rBucket->addNode(elem)); } else { - lNodes.push_back(*i); + lNodes.push_back(elem); } } nodes_ = lNodes; @@ -231,7 +230,7 @@ std::shared_ptr<DHTNode> DHTBucket::getNode(const unsigned char* nodeID, const s std::shared_ptr<DHTNode> node(new DHTNode(nodeID)); node->setIPAddress(ipaddr); node->setPort(port); - std::deque<std::shared_ptr<DHTNode> >::const_iterator itr = + auto itr = std::find_if(nodes_.begin(), nodes_.end(), derefEqual(node)); if(itr == nodes_.end() || (*itr)->getIPAddress() != ipaddr || (*itr)->getPort() != port) { @@ -275,7 +274,7 @@ bool DHTBucket::containsQuestionableNode() const std::shared_ptr<DHTNode> DHTBucket::getLRUQuestionableNode() const { - std::deque<std::shared_ptr<DHTNode> >::const_iterator i = + auto i = std::find_if(nodes_.begin(), nodes_.end(), FindQuestionableNode()); if(i == nodes_.end()) { return nullptr; diff --git a/src/DHTBucketRefreshTask.cc b/src/DHTBucketRefreshTask.cc index 827693c0..a6fe610b 100644 --- a/src/DHTBucketRefreshTask.cc +++ b/src/DHTBucketRefreshTask.cc @@ -56,23 +56,23 @@ void DHTBucketRefreshTask::startup() { std::vector<std::shared_ptr<DHTBucket> > buckets; getRoutingTable()->getBuckets(buckets); - for(std::vector<std::shared_ptr<DHTBucket> >::iterator i = buckets.begin(), - eoi = buckets.end(); i != eoi; ++i) { - if(forceRefresh_ || (*i)->needsRefresh()) { - (*i)->notifyUpdate(); - unsigned char targetID[DHT_ID_LENGTH]; - (*i)->getRandomNodeID(targetID); - std::shared_ptr<DHTNodeLookupTask> task(new DHTNodeLookupTask(targetID)); - task->setRoutingTable(getRoutingTable()); - task->setMessageDispatcher(getMessageDispatcher()); - task->setMessageFactory(getMessageFactory()); - task->setTaskQueue(getTaskQueue()); - task->setLocalNode(getLocalNode()); - - A2_LOG_INFO(fmt("Dispating bucket refresh. targetID=%s", - util::toHex(targetID, DHT_ID_LENGTH).c_str())); - getTaskQueue()->addPeriodicTask1(task); + for (auto& b : buckets) { + if(!forceRefresh_ && ! b->needsRefresh()) { + continue; } + b->notifyUpdate(); + unsigned char targetID[DHT_ID_LENGTH]; + b->getRandomNodeID(targetID); + std::shared_ptr<DHTNodeLookupTask> task(new DHTNodeLookupTask(targetID)); + task->setRoutingTable(getRoutingTable()); + task->setMessageDispatcher(getMessageDispatcher()); + task->setMessageFactory(getMessageFactory()); + task->setTaskQueue(getTaskQueue()); + task->setLocalNode(getLocalNode()); + + A2_LOG_INFO(fmt("Dispating bucket refresh. targetID=%s", + util::toHex(targetID, DHT_ID_LENGTH).c_str())); + getTaskQueue()->addPeriodicTask1(task); } setFinished(true); } diff --git a/src/DHTConnectionImpl.cc b/src/DHTConnectionImpl.cc index 6ff05140..f0ac2e2d 100644 --- a/src/DHTConnectionImpl.cc +++ b/src/DHTConnectionImpl.cc @@ -63,9 +63,8 @@ bool DHTConnectionImpl::bind } std::random_shuffle(ports.begin(), ports.end(), *SimpleRandomizer::getInstance()); - for(std::vector<uint16_t>::const_iterator i = ports.begin(), - eoi = ports.end(); i != eoi; ++i) { - port = *i; + for (const auto& p : ports) { + port = p; if(bind(port, addr)) { return true; } diff --git a/src/DHTMessageFactoryImpl.cc b/src/DHTMessageFactoryImpl.cc index 5e64e564..81407c80 100644 --- a/src/DHTMessageFactoryImpl.cc +++ b/src/DHTMessageFactoryImpl.cc @@ -428,8 +428,8 @@ DHTMessageFactoryImpl::createGetPeersReplyMessage std::vector<std::shared_ptr<Peer>> peers; size_t clen = bittorrent::getCompactLength(family_); if(valuesList) { - for(auto i = valuesList->begin(), eoi = valuesList->end(); i != eoi; ++i) { - const String* data = downcast<String>(*i); + for(auto & elem : *valuesList) { + const String* data = downcast<String>(elem); if(data && data->s().size() == clen) { auto addr = bittorrent::unpackcompact(data->uc(), family_); if(addr.first.empty()) { diff --git a/src/DHTPeerAnnounceEntry.cc b/src/DHTPeerAnnounceEntry.cc index bec96191..ad9c6b52 100644 --- a/src/DHTPeerAnnounceEntry.cc +++ b/src/DHTPeerAnnounceEntry.cc @@ -51,7 +51,7 @@ DHTPeerAnnounceEntry::~DHTPeerAnnounceEntry() {} void DHTPeerAnnounceEntry::addPeerAddrEntry(const PeerAddrEntry& entry) { - std::vector<PeerAddrEntry>::iterator i = + auto i = std::find(peerAddrEntries_.begin(), peerAddrEntries_.end(), entry); if(i == peerAddrEntries_.end()) { peerAddrEntries_.push_back(entry); @@ -98,9 +98,8 @@ bool DHTPeerAnnounceEntry::empty() const void DHTPeerAnnounceEntry::getPeers (std::vector<std::shared_ptr<Peer> >& peers) const { - for(std::vector<PeerAddrEntry>::const_iterator i = peerAddrEntries_.begin(), - eoi = peerAddrEntries_.end(); i != eoi; ++i) { - std::shared_ptr<Peer> peer(new Peer((*i).getIPAddress(), (*i).getPort())); + for (const auto& p: peerAddrEntries_) { + std::shared_ptr<Peer> peer(new Peer(p.getIPAddress(), p.getPort())); peers.push_back(peer); } } diff --git a/src/DHTPeerAnnounceStorage.cc b/src/DHTPeerAnnounceStorage.cc index cdd0c754..c71f5fc0 100644 --- a/src/DHTPeerAnnounceStorage.cc +++ b/src/DHTPeerAnnounceStorage.cc @@ -139,18 +139,15 @@ void DHTPeerAnnounceStorage::handleTimeout() void DHTPeerAnnounceStorage::announcePeer() { A2_LOG_DEBUG("Now announcing peer."); - for(DHTPeerAnnounceEntrySet::iterator i = - entries_.begin(), eoi = entries_.end(); i != eoi; ++i) { - if((*i)->getLastUpdated(). - difference(global::wallclock()) >= DHT_PEER_ANNOUNCE_INTERVAL) { - (*i)->notifyUpdate(); - std::shared_ptr<DHTTask> task = - taskFactory_->createPeerAnnounceTask((*i)->getInfoHash()); - taskQueue_->addPeriodicTask2(task); - A2_LOG_DEBUG - (fmt("Added 1 peer announce: infoHash=%s", - util::toHex((*i)->getInfoHash(), DHT_ID_LENGTH).c_str())); + for (auto& e: entries_) { + if(e->getLastUpdated().difference(global::wallclock()) < DHT_PEER_ANNOUNCE_INTERVAL) { + continue; } + e->notifyUpdate(); + auto task = taskFactory_->createPeerAnnounceTask(e->getInfoHash()); + taskQueue_->addPeriodicTask2(task); + A2_LOG_DEBUG(fmt("Added 1 peer announce: infoHash=%s", + util::toHex(e->getInfoHash(), DHT_ID_LENGTH).c_str())); } } diff --git a/src/DHTTokenTracker.cc b/src/DHTTokenTracker.cc index 7139f517..3cec3aa1 100644 --- a/src/DHTTokenTracker.cc +++ b/src/DHTTokenTracker.cc @@ -91,8 +91,8 @@ bool DHTTokenTracker::validateToken(const std::string& token, const unsigned char* infoHash, const std::string& ipaddr, uint16_t port) const { - for(int i = 0; i < 2; ++i) { - if(generateToken(infoHash, ipaddr, port, secret_[i]) == token) { + for(auto & elem : secret_) { + if(generateToken(infoHash, ipaddr, port, elem) == token) { return true; } } diff --git a/src/DNSCache.cc b/src/DNSCache.cc index 6097df1d..01b4e4b0 100644 --- a/src/DNSCache.cc +++ b/src/DNSCache.cc @@ -91,8 +91,7 @@ bool DNSCache::CacheEntry::add(const std::string& addr) std::vector<DNSCache::AddrEntry>::iterator DNSCache::CacheEntry::find (const std::string& addr) { - for(std::vector<AddrEntry>::iterator i = addrEntries_.begin(), - eoi = addrEntries_.end(); i != eoi; ++i) { + for(auto i = addrEntries_.begin(), eoi = addrEntries_.end(); i != eoi; ++i) { if((*i).addr_ == addr) { return i; } @@ -103,8 +102,7 @@ std::vector<DNSCache::AddrEntry>::iterator DNSCache::CacheEntry::find std::vector<DNSCache::AddrEntry>::const_iterator DNSCache::CacheEntry::find (const std::string& addr) const { - for(std::vector<AddrEntry>::const_iterator i = addrEntries_.begin(), - eoi = addrEntries_.end(); i != eoi; ++i) { + for(auto i = addrEntries_.begin(), eoi = addrEntries_.end(); i != eoi; ++i) { if((*i).addr_ == addr) { return i; } @@ -119,10 +117,9 @@ bool DNSCache::CacheEntry::contains(const std::string& addr) const const std::string& DNSCache::CacheEntry::getGoodAddr() const { - for(std::vector<AddrEntry>::const_iterator i = addrEntries_.begin(), - eoi = addrEntries_.end(); i != eoi; ++i) { - if((*i).good_) { - return (*i).addr_; + for(auto & elem : addrEntries_) { + if(elem.good_) { + return (elem).addr_; } } return A2STR::NIL; @@ -130,9 +127,9 @@ const std::string& DNSCache::CacheEntry::getGoodAddr() const void DNSCache::CacheEntry::markBad(const std::string& addr) { - std::vector<AddrEntry>::iterator i = find(addr); + auto i = find(addr); if(i != addrEntries_.end()) { - (*i).good_ = false; + i->good_ = false; } } diff --git a/src/DNSCache.h b/src/DNSCache.h index ed4de417..a639843c 100644 --- a/src/DNSCache.h +++ b/src/DNSCache.h @@ -83,10 +83,9 @@ private: template<typename OutputIterator> void getAllGoodAddrs(OutputIterator out) const { - for(std::vector<AddrEntry>::const_iterator i = addrEntries_.begin(), - eoi = addrEntries_.end(); i != eoi; ++i) { - if((*i).good_) { - *out++ = (*i).addr_; + for(auto & elem : addrEntries_) { + if(elem.good_) { + *out++ = elem.addr_; } } } diff --git a/src/DefaultBtAnnounce.cc b/src/DefaultBtAnnounce.cc index af1630ca..b2eeef39 100644 --- a/src/DefaultBtAnnounce.cc +++ b/src/DefaultBtAnnounce.cc @@ -363,11 +363,8 @@ void DefaultBtAnnounce::processUDPTrackerResponse incomplete_ = reply->leechers; A2_LOG_DEBUG(fmt("Incomplete:%d", reply->leechers)); if(!btRuntime_->isHalt() && btRuntime_->lessThanMinPeers()) { - for(std::vector<std::pair<std::string, uint16_t> >::iterator i = - reply->peers.begin(), eoi = reply->peers.end(); i != eoi; - ++i) { - peerStorage_->addPeer(std::shared_ptr<Peer>(new Peer((*i).first, - (*i).second))); + for(auto & elem : reply->peers) { + peerStorage_->addPeer(std::make_shared<Peer>(elem.first, elem.second)); } } } diff --git a/src/DefaultBtRequestFactory.cc b/src/DefaultBtRequestFactory.cc index 8d62ef32..129b697d 100644 --- a/src/DefaultBtRequestFactory.cc +++ b/src/DefaultBtRequestFactory.cc @@ -150,10 +150,9 @@ void DefaultBtRequestFactory::doChokedAction() } void DefaultBtRequestFactory::removeAllTargetPiece() { - for(std::deque<std::shared_ptr<Piece> >::iterator itr = pieces_.begin(), - eoi = pieces_.end(); itr != eoi; ++itr) { - dispatcher_->doAbortOutstandingRequestAction(*itr); - pieceStorage_->cancelPiece(*itr, cuid_); + for(auto & elem : pieces_) { + dispatcher_->doAbortOutstandingRequestAction(elem); + pieceStorage_->cancelPiece(elem, cuid_); } pieces_.clear(); } diff --git a/src/DefaultPeerStorage.cc b/src/DefaultPeerStorage.cc index f550c5e0..c0f6f88e 100644 --- a/src/DefaultPeerStorage.cc +++ b/src/DefaultPeerStorage.cc @@ -116,7 +116,7 @@ void DefaultPeerStorage::addPeer(const std::vector<std::shared_ptr<Peer> >& peer { size_t added = 0; size_t addMax = std::min(maxPeerListSize_, MAX_PEER_LIST_UPDATE); - for(std::vector<std::shared_ptr<Peer> >::const_iterator itr = peers.begin(), + for(auto itr = peers.begin(), eoi = peers.end(); itr != eoi && added < addMax; ++itr) { const std::shared_ptr<Peer>& peer = *itr; if(isPeerAlreadyAdded(peer)) { @@ -148,7 +148,7 @@ void DefaultPeerStorage::addDroppedPeer(const std::shared_ptr<Peer>& peer) { // Make sure that duplicated peers exist in droppedPeers_. If // exists, erase older one. - for(std::deque<std::shared_ptr<Peer> >::iterator i = droppedPeers_.begin(), + for(auto i = droppedPeers_.begin(), eoi = droppedPeers_.end(); i != eoi; ++i) { if((*i)->getIPAddress() == peer->getIPAddress() && (*i)->getPort() == peer->getPort()) { @@ -183,21 +183,23 @@ bool DefaultPeerStorage::isPeerAvailable() { bool DefaultPeerStorage::isBadPeer(const std::string& ipaddr) { - std::map<std::string, time_t>::iterator i = badPeers_.find(ipaddr); + auto i = badPeers_.find(ipaddr); if(i == badPeers_.end()) { return false; - } else if(global::wallclock().getTime() >= (*i).second) { + } + + if(global::wallclock().getTime() >= (*i).second) { badPeers_.erase(i); return false; - } else { - return true; } + + return true; } void DefaultPeerStorage::addBadPeer(const std::string& ipaddr) { if(lastBadPeerCleaned_.difference(global::wallclock()) >= 3600) { - for(std::map<std::string, time_t>::iterator i = badPeers_.begin(), + for(auto i = badPeers_.begin(), eoi = badPeers_.end(); i != eoi;) { if(global::wallclock().getTime() >= (*i).second) { A2_LOG_DEBUG(fmt("Purge %s from bad peer", (*i).first.c_str())); diff --git a/src/DefaultPieceStorage.cc b/src/DefaultPieceStorage.cc index 7e52b0e2..84941d0b 100644 --- a/src/DefaultPieceStorage.cc +++ b/src/DefaultPieceStorage.cc @@ -247,11 +247,10 @@ void unsetExcludedIndexes(BitfieldMan& bitfield, void DefaultPieceStorage::createFastIndexBitfield (BitfieldMan& bitfield, const std::shared_ptr<Peer>& peer) { - for(std::set<size_t>::const_iterator itr = - peer->getPeerAllowedIndexSet().begin(), - eoi = peer->getPeerAllowedIndexSet().end(); itr != eoi; ++itr) { - if(!bitfieldMan_->isBitSet(*itr) && peer->hasPiece(*itr)) { - bitfield.setBit(*itr); + const auto& is = peer->getPeerAllowedIndexSet(); + for(const auto& i: is) { + if(!bitfieldMan_->isBitSet(i) && peer->hasPiece(i)) { + bitfield.setBit(i); } } } @@ -567,9 +566,8 @@ int64_t DefaultPieceStorage::getFilteredCompletedLength() int64_t DefaultPieceStorage::getInFlightPieceCompletedLength() const { int64_t len = 0; - for(UsedPieceSet::const_iterator i = usedPieces_.begin(), - eoi = usedPieces_.end(); i != eoi; ++i) { - len += (*i)->getCompletedLength(); + for(auto & elem : usedPieces_) { + len += elem->getCompletedLength(); } return len; } @@ -577,10 +575,9 @@ int64_t DefaultPieceStorage::getInFlightPieceCompletedLength() const int64_t DefaultPieceStorage::getInFlightPieceFilteredCompletedLength() const { int64_t len = 0; - for(UsedPieceSet::const_iterator i = usedPieces_.begin(), - eoi = usedPieces_.end(); i != eoi; ++i) { - if(bitfieldMan_->isFilterBitSet((*i)->getIndex())) { - len += (*i)->getCompletedLength(); + for(auto & elem : usedPieces_) { + if(bitfieldMan_->isFilterBitSet(elem->getIndex())) { + len += elem->getCompletedLength(); } } return len; @@ -592,10 +589,8 @@ void DefaultPieceStorage::setupFileFilter() const std::vector<std::shared_ptr<FileEntry> >& fileEntries = downloadContext_->getFileEntries(); bool allSelected = true; - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries.begin(), eoi = fileEntries.end(); - i != eoi; ++i) { - if(!(*i)->isRequested()) { + for(auto & e : fileEntries) { + if(!e->isRequested()) { allSelected = false; break; } @@ -603,10 +598,9 @@ void DefaultPieceStorage::setupFileFilter() if(allSelected) { return; } - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { - if((*i)->isRequested()) { - bitfieldMan_->addFilter((*i)->getOffset(), (*i)->getLength()); + for(auto & e: fileEntries) { + if(e->isRequested()) { + bitfieldMan_->addFilter(e->getOffset(), e->getLength()); } } bitfieldMan_->enableFilter(); @@ -697,12 +691,11 @@ void DefaultPieceStorage::flushWrDiskCacheEntry() // UsedPieceSet is sorted by piece index. It means we can flush // cache by non-decreasing offset, which is good to reduce disk seek // unless the file is heavily fragmented. - for(UsedPieceSet::const_iterator i = usedPieces_.begin(), - eoi = usedPieces_.end(); i != eoi; ++i) { - WrDiskCacheEntry* ce = (*i)->getWrDiskCacheEntry(); + for(auto & piece : usedPieces_) { + auto ce = piece->getWrDiskCacheEntry(); if(ce) { - (*i)->flushWrCache(wrDiskCache_); - (*i)->releaseWrCache(wrDiskCache_); + piece->flushWrCache(wrDiskCache_); + piece->releaseWrCache(wrDiskCache_); } } } @@ -753,8 +746,8 @@ public: void DefaultPieceStorage::removeAdvertisedPiece(time_t elapsed) { - std::deque<HaveEntry>::iterator itr = - std::find_if(haves_.begin(), haves_.end(), FindElapsedHave(elapsed)); + auto itr = std::find_if(haves_.begin(), haves_.end(), + FindElapsedHave(elapsed)); if(itr != haves_.end()) { A2_LOG_DEBUG(fmt(MSG_REMOVED_HAVE_ENTRY, static_cast<unsigned long>(haves_.end()-itr))); diff --git a/src/DownloadContext.cc b/src/DownloadContext.cc index fc5b1681..cb945663 100644 --- a/src/DownloadContext.cc +++ b/src/DownloadContext.cc @@ -101,9 +101,8 @@ DownloadContext::findFileEntryByOffset(int64_t offset) const std::shared_ptr<FileEntry> obj(new FileEntry()); obj->setOffset(offset); - std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - std::upper_bound(fileEntries_.begin(), fileEntries_.end(), obj, - DerefLess<std::shared_ptr<FileEntry> >()); + auto i = std::upper_bound(fileEntries_.begin(), fileEntries_.end(), obj, + DerefLess<std::shared_ptr<FileEntry> >()); if(i != fileEntries_.end() && (*i)->getOffset() == offset) { return *i; } else { @@ -216,10 +215,9 @@ const std::string& DownloadContext::getBasePath() const std::shared_ptr<FileEntry> DownloadContext::getFirstRequestedFileEntry() const { - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries_.begin(), eoi = fileEntries_.end(); i != eoi; ++i) { - if((*i)->isRequested()) { - return *i; + for (auto& e : fileEntries_) { + if(e->isRequested()) { + return e; } } return nullptr; @@ -228,9 +226,8 @@ DownloadContext::getFirstRequestedFileEntry() const size_t DownloadContext::countRequestedFileEntry() const { size_t numFiles = 0; - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries_.begin(), eoi = fileEntries_.end(); i != eoi; ++i) { - if((*i)->isRequested()) { + for (const auto& e: fileEntries_) { + if(e->isRequested()) { ++numFiles; } } diff --git a/src/DownloadEngine.cc b/src/DownloadEngine.cc index 6b200d4d..04c44d24 100644 --- a/src/DownloadEngine.cc +++ b/src/DownloadEngine.cc @@ -304,10 +304,9 @@ void DownloadEngine::poolSocket(const std::string& key, std::multimap<std::string, SocketPoolEntry> newPool; A2_LOG_DEBUG("Scaning SocketPool and erasing timed out entry."); lastSocketPoolScan_ = global::wallclock(); - for(std::multimap<std::string, SocketPoolEntry>::iterator i = - socketPool_.begin(), eoi = socketPool_.end(); i != eoi; ++i) { - if(!(*i).second.isTimeout()) { - newPool.insert(*i); + for(auto & elem : socketPool_) { + if(!elem.second.isTimeout()) { + newPool.insert(elem); } } A2_LOG_DEBUG(fmt("%lu entries removed.", @@ -425,8 +424,7 @@ DownloadEngine::findSocketPoolEntry(const std::string& key) std::pair<std::multimap<std::string, SocketPoolEntry>::iterator, std::multimap<std::string, SocketPoolEntry>::iterator> range = socketPool_.equal_range(key); - for(std::multimap<std::string, SocketPoolEntry>::iterator i = - range.first, eoi = range.second; i != eoi; ++i) { + for(auto i = range.first, eoi = range.second; i != eoi; ++i) { const SocketPoolEntry& e = (*i).second; // We assume that if socket is readable it means peer shutdowns // connection and the socket will receive EOF. So skip it. @@ -444,9 +442,8 @@ DownloadEngine::popPooledSocket const std::string& proxyhost, uint16_t proxyport) { std::shared_ptr<SocketCore> s; - std::multimap<std::string, SocketPoolEntry>::iterator i = - findSocketPoolEntry - (createSockPoolKey(ipaddr, port, A2STR::NIL, proxyhost, proxyport)); + auto i = findSocketPoolEntry(createSockPoolKey(ipaddr, port, A2STR::NIL, + proxyhost, proxyport)); if(i != socketPool_.end()) { s = (*i).second.getSocket(); socketPool_.erase(i); @@ -462,9 +459,8 @@ DownloadEngine::popPooledSocket const std::string& proxyhost, uint16_t proxyport) { std::shared_ptr<SocketCore> s; - std::multimap<std::string, SocketPoolEntry>::iterator i = - findSocketPoolEntry - (createSockPoolKey(ipaddr, port, username, proxyhost, proxyport)); + auto i = findSocketPoolEntry(createSockPoolKey(ipaddr, port, username, + proxyhost, proxyport)); if(i != socketPool_.end()) { s = (*i).second.getSocket(); options = (*i).second.getOptions(); @@ -478,9 +474,8 @@ DownloadEngine::popPooledSocket (const std::vector<std::string>& ipaddrs, uint16_t port) { std::shared_ptr<SocketCore> s; - for(std::vector<std::string>::const_iterator i = ipaddrs.begin(), - eoi = ipaddrs.end(); i != eoi; ++i) { - s = popPooledSocket(*i, port, A2STR::NIL, 0); + for(const auto & ipaddr : ipaddrs) { + s = popPooledSocket(ipaddr, port, A2STR::NIL, 0); if(s) { break; } @@ -495,9 +490,8 @@ DownloadEngine::popPooledSocket const std::string& username) { std::shared_ptr<SocketCore> s; - for(std::vector<std::string>::const_iterator i = ipaddrs.begin(), - eoi = ipaddrs.end(); i != eoi; ++i) { - s = popPooledSocket(options, *i, port, username, A2STR::NIL, 0); + for(const auto & ipaddr : ipaddrs) { + s = popPooledSocket(options, ipaddr, port, username, A2STR::NIL, 0); if(s) { break; } diff --git a/src/FeedbackURISelector.cc b/src/FeedbackURISelector.cc index 903abd0b..d101d7e6 100644 --- a/src/FeedbackURISelector.cc +++ b/src/FeedbackURISelector.cc @@ -61,11 +61,10 @@ std::string FeedbackURISelector::select const std::vector<std::pair<size_t, std::string> >& usedHosts) { if(A2_LOG_DEBUG_ENABLED) { - for(std::vector<std::pair<size_t, std::string> >::const_iterator i = - usedHosts.begin(), eoi = usedHosts.end(); i != eoi; ++i) { + for (const auto& h: usedHosts) { A2_LOG_DEBUG(fmt("UsedHost=%lu, %s", - static_cast<unsigned long>((*i).first), - (*i).second.c_str())); + static_cast<unsigned long>(h.first), + h.second.c_str())); } } if(fileEntry->getRemainingUris().empty()) { @@ -92,27 +91,24 @@ std::string FeedbackURISelector::selectRarer { // pair of host and URI std::vector<std::pair<std::string, std::string> > cands; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { + for (const auto& u: uris) { uri_split_result us; - if(uri_split(&us, (*i).c_str()) == -1) { + if(uri_split(&us, u.c_str()) == -1) { continue; } - std::string host = uri::getFieldString(us, USR_HOST, (*i).c_str()); - std::string protocol = uri::getFieldString(us, USR_SCHEME, (*i).c_str()); - std::shared_ptr<ServerStat> ss = serverStatMan_->find(host, protocol); + auto host = uri::getFieldString(us, USR_HOST, u.c_str()); + auto protocol = uri::getFieldString(us, USR_SCHEME, u.c_str()); + auto ss = serverStatMan_->find(host, protocol); if(ss && ss->isError()) { - A2_LOG_DEBUG(fmt("Error not considered: %s", (*i).c_str())); + A2_LOG_DEBUG(fmt("Error not considered: %s", u.c_str())); continue; } - cands.push_back(std::make_pair(host, *i)); + cands.push_back(std::make_pair(host, u)); } - for(std::vector<std::pair<size_t, std::string> >::const_iterator i = - usedHosts.begin(), eoi = usedHosts.end(); i != eoi; ++i) { - for(std::vector<std::pair<std::string, std::string> >::const_iterator j = - cands.begin(), eoj = cands.end(); j != eoj; ++j) { - if((*i).second == (*j).first) { - return (*j).second; + for (const auto& h: usedHosts) { + for (const auto& c: cands) { + if(h.second == c.first) { + return c.second; } } } @@ -130,27 +126,29 @@ std::string FeedbackURISelector::selectFaster const int SPEED_THRESHOLD = 20*1024; std::vector<std::pair<std::shared_ptr<ServerStat>, std::string> > fastCands; std::vector<std::string> normCands; - for(std::deque<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi && fastCands.size() < NUM_URI; ++i) { + for (const auto& u: uris) { + if (fastCands.size() >= NUM_URI) { + break; + } uri_split_result us; - if(uri_split(&us, (*i).c_str()) == -1) { + if(uri_split(&us, u.c_str()) == -1) { continue; } - std::string host = uri::getFieldString(us, USR_HOST, (*i).c_str()); + auto host = uri::getFieldString(us, USR_HOST, u.c_str()); if(findSecond(usedHosts.begin(), usedHosts.end(), host) != usedHosts.end()) { - A2_LOG_DEBUG(fmt("%s is in usedHosts, not considered", (*i).c_str())); + A2_LOG_DEBUG(fmt("%s is in usedHosts, not considered", u.c_str())); continue; } - std::string protocol = uri::getFieldString(us, USR_SCHEME, (*i).c_str()); - std::shared_ptr<ServerStat> ss = serverStatMan_->find(host, protocol); + auto protocol = uri::getFieldString(us, USR_SCHEME, u.c_str()); + auto ss = serverStatMan_->find(host, protocol); if(!ss) { - normCands.push_back(*i); + normCands.push_back(u); } else if(ss->isOK()) { if(ss->getDownloadSpeed() > SPEED_THRESHOLD) { - fastCands.push_back(std::make_pair(ss, *i)); + fastCands.push_back(std::make_pair(ss, u)); } else { - normCands.push_back(*i); + normCands.push_back(u); } } } diff --git a/src/FileEntry.cc b/src/FileEntry.cc index 8ea635ad..2786619d 100644 --- a/src/FileEntry.cc +++ b/src/FileEntry.cc @@ -382,9 +382,8 @@ public: void FileEntry::extractURIResult (std::deque<URIResult>& res, error_code::Value r) { - std::deque<URIResult>::iterator i = - std::stable_partition(uriResults_.begin(), uriResults_.end(), - FindURIResultByResult(r)); + auto i = std::stable_partition(uriResults_.begin(), uriResults_.end(), + FindURIResultByResult(r)); std::copy(uriResults_.begin(), i, std::back_inserter(res)); uriResults_.erase(uriResults_.begin(), i); } @@ -392,9 +391,8 @@ void FileEntry::extractURIResult void FileEntry::reuseUri(const std::vector<std::string>& ignore) { if(A2_LOG_DEBUG_ENABLED) { - for(std::vector<std::string>::const_iterator i = ignore.begin(), - eoi = ignore.end(); i != eoi; ++i) { - A2_LOG_DEBUG(fmt("ignore host=%s", (*i).c_str())); + for (const auto& i: ignore) { + A2_LOG_DEBUG(fmt("ignore host=%s", i.c_str())); } } std::deque<std::string> uris = spentUris_; @@ -417,8 +415,8 @@ void FileEntry::reuseUri(const std::vector<std::string>& ignore) std::set_difference(uris.begin(), uris.end(), errorUris.begin(), errorUris.end(), std::back_inserter(reusableURIs)); - std::vector<std::string>::iterator insertionPoint = reusableURIs.begin(); - for(std::vector<std::string>::iterator i = reusableURIs.begin(), + auto insertionPoint = reusableURIs.begin(); + for(auto i = reusableURIs.begin(), eoi = reusableURIs.end(); i != eoi; ++i) { uri_split_result us; if(uri_split(&us, (*i).c_str()) == 0 && @@ -485,36 +483,32 @@ InputIterator findRequestByUri bool FileEntry::removeUri(const std::string& uri) { - std::deque<std::string>::iterator itr = - std::find(spentUris_.begin(), spentUris_.end(), uri); + auto itr = std::find(spentUris_.begin(), spentUris_.end(), uri); if(itr == spentUris_.end()) { itr = std::find(uris_.begin(), uris_.end(), uri); if(itr == uris_.end()) { return false; - } else { - uris_.erase(itr); + } + uris_.erase(itr); + return true; + } + spentUris_.erase(itr); + std::shared_ptr<Request> req; + InFlightRequestSet::iterator riter = + findRequestByUri(inFlightRequests_.begin(), inFlightRequests_.end(), uri); + if(riter == inFlightRequests_.end()) { + RequestPool::iterator riter = findRequestByUri(requestPool_.begin(), + requestPool_.end(), uri); + if(riter == requestPool_.end()) { return true; } + req = *riter; + requestPool_.erase(riter); } else { - spentUris_.erase(itr); - std::shared_ptr<Request> req; - InFlightRequestSet::iterator riter = - findRequestByUri(inFlightRequests_.begin(), inFlightRequests_.end(), uri); - if(riter == inFlightRequests_.end()) { - RequestPool::iterator riter = findRequestByUri(requestPool_.begin(), - requestPool_.end(), uri); - if(riter == requestPool_.end()) { - return true; - } else { - req = *riter; - requestPool_.erase(riter); - } - } else { - req = *riter; - } - req->requestRemoval(); - return true; + req = *riter; } + req->requestRemoval(); + return true; } std::string FileEntry::getBasename() const @@ -547,13 +541,12 @@ bool FileEntry::addUri(const std::string& uri) bool FileEntry::insertUri(const std::string& uri, size_t pos) { std::string peUri = util::percentEncodeMini(uri); - if(uri_split(nullptr, peUri.c_str()) == 0) { - pos = std::min(pos, uris_.size()); - uris_.insert(uris_.begin()+pos, peUri); - return true; - } else { + if(uri_split(nullptr, peUri.c_str()) != 0) { return false; } + pos = std::min(pos, uris_.size()); + uris_.insert(uris_.begin()+pos, peUri); + return true; } void FileEntry::setPath(const std::string& path) @@ -599,12 +592,13 @@ void writeFilePath } else { o << uris.front(); } + return; + } + + if(memory) { + o << "[MEMORY]" << File(entry->getPath()).getBasename(); } else { - if(memory) { - o << "[MEMORY]" << File(entry->getPath()).getBasename(); - } else { - o << entry->getPath(); - } + o << entry->getPath(); } } diff --git a/src/GroupId.cc b/src/GroupId.cc index 8d1f1dfc..5e0f71a9 100644 --- a/src/GroupId.cc +++ b/src/GroupId.cc @@ -87,7 +87,7 @@ int GroupId::expandUnique(a2_gid_t& n, const char* hex) } p <<= 64-i*4; a2_gid_t mask = UINT64_MAX-((1LL << (64-i*4))-1); - std::set<a2_gid_t>::const_iterator itr = set_.lower_bound(p); + auto itr = set_.lower_bound(p); if(itr == set_.end()) { return ERR_NOT_FOUND; } diff --git a/src/HandshakeExtensionMessage.cc b/src/HandshakeExtensionMessage.cc index c4944219..69d840b1 100644 --- a/src/HandshakeExtensionMessage.cc +++ b/src/HandshakeExtensionMessage.cc @@ -185,14 +185,13 @@ HandshakeExtensionMessage::create(const unsigned char* data, size_t length) } const Dict* extDict = downcast<Dict>(dict->get("m")); if(extDict) { - for(Dict::ValueType::const_iterator i = extDict->begin(), - eoi = extDict->end(); i != eoi; ++i) { - const Integer* extId = downcast<Integer>((*i).second); + for(auto & elem : *extDict) { + const Integer* extId = downcast<Integer>(elem.second); if(extId) { - int key = keyBtExtension((*i).first.c_str()); + int key = keyBtExtension(elem.first.c_str()); if(key == ExtensionMessageRegistry::MAX_EXTENSION) { A2_LOG_DEBUG(fmt("Unsupported BitTorrent extension %s=%" PRId64, - (*i).first.c_str(), extId->i())); + elem.first.c_str(), extId->i())); } else { msg->setExtension(key, extId->i()); } diff --git a/src/HaveEraseCommand.cc b/src/HaveEraseCommand.cc index e2727909..77727861 100644 --- a/src/HaveEraseCommand.cc +++ b/src/HaveEraseCommand.cc @@ -57,9 +57,8 @@ void HaveEraseCommand::process() { const RequestGroupList& groups = getDownloadEngine()->getRequestGroupMan()->getRequestGroups(); - for(RequestGroupList::const_iterator i = groups.begin(), - eoi = groups.end(); i != eoi; ++i) { - const std::shared_ptr<PieceStorage>& ps = (*i)->getPieceStorage(); + for(auto & group : groups) { + const auto& ps = group->getPieceStorage(); if(ps) { ps->removeAdvertisedPiece(5); } diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc index 33a4ea43..34b47eb2 100644 --- a/src/HttpHeader.cc +++ b/src/HttpHeader.cc @@ -60,7 +60,7 @@ bool HttpHeader::defined(int hdKey) const const std::string& HttpHeader::find(int hdKey) const { - std::multimap<int, std::string>::const_iterator itr = table_.find(hdKey); + auto itr = table_.find(hdKey); if(itr == table_.end()) { return A2STR::NIL; } else { @@ -71,9 +71,7 @@ const std::string& HttpHeader::find(int hdKey) const std::vector<std::string> HttpHeader::findAll(int hdKey) const { std::vector<std::string> v; - std::pair<std::multimap<int, std::string>::const_iterator, - std::multimap<int, std::string>::const_iterator> itrpair = - table_.equal_range(hdKey); + auto itrpair = table_.equal_range(hdKey); while(itrpair.first != itrpair.second) { v.push_back((*itrpair.first).second); ++itrpair.first; @@ -90,7 +88,7 @@ HttpHeader::equalRange(int hdKey) const Range HttpHeader::getRange() const { - const std::string& rangeStr = find(CONTENT_RANGE); + const auto& rangeStr = find(CONTENT_RANGE); if(rangeStr.empty()) { const std::string& clenStr = find(CONTENT_LENGTH); if(clenStr.empty()) { @@ -113,8 +111,7 @@ Range HttpHeader::getRange() const // we expect that rangeStr looks like 'bytes 100-199/100' // but some server returns '100-199/100', omitting bytes-unit sepcifier // 'bytes'. - std::string::const_iterator byteRangeSpec = - std::find(rangeStr.begin(), rangeStr.end(), ' '); + auto byteRangeSpec = std::find(rangeStr.begin(), rangeStr.end(), ' '); if(byteRangeSpec == rangeStr.end()) { // we assume bytes-unit specifier omitted. byteRangeSpec = rangeStr.begin(); @@ -124,8 +121,7 @@ Range HttpHeader::getRange() const ++byteRangeSpec; } } - std::string::const_iterator slash = - std::find(byteRangeSpec, rangeStr.end(), '/'); + auto slash = std::find(byteRangeSpec, rangeStr.end(), '/'); if(slash == rangeStr.end() || slash+1 == rangeStr.end() || (byteRangeSpec+1 == slash && *byteRangeSpec == '*') || (slash+2 == rangeStr.end() && *(slash+1) == '*')) { @@ -134,7 +130,7 @@ Range HttpHeader::getRange() const // not satisfiable) status. return Range(); } - std::string::const_iterator minus = std::find(byteRangeSpec, slash, '-'); + auto minus = std::find(byteRangeSpec, slash, '-'); if(minus == slash) { return Range(); } @@ -218,17 +214,15 @@ bool HttpHeader::fieldContains(int hdKey, const char* value) std::pair<std::multimap<int, std::string>::const_iterator, std::multimap<int, std::string>::const_iterator> range = equalRange(hdKey); - for(std::multimap<int, std::string>::const_iterator i = range.first; - i != range.second; ++i) { + for(auto i = range.first; i != range.second; ++i) { std::vector<Scip> values; util::splitIter((*i).second.begin(), (*i).second.end(), std::back_inserter(values), ',', true // doStrip ); - for(std::vector<Scip>::const_iterator j = values.begin(), - eoj = values.end(); j != eoj; ++j) { - if(util::strieq((*j).first, (*j).second, value)) { + for (const auto& v: values) { + if(util::strieq(v.first, v.second, value)) { return true; } } diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index ea6ea973..32b44b96 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -94,17 +94,16 @@ int64_t HttpRequest::getEndByte() const { if(!segment_ || !request_) { return 0; - } else { - if(request_->isPipeliningEnabled()) { - int64_t endByte = - fileEntry_->gtoloff(segment_->getPosition()+segment_->getLength()-1); - return std::min(endByte, fileEntry_->getLength()-1); - } else if(endOffsetOverride_ > 0) { - return endOffsetOverride_ - 1; - } else { - return 0; - } } + if(request_->isPipeliningEnabled()) { + int64_t endByte = + fileEntry_->gtoloff(segment_->getPosition()+segment_->getLength()-1); + return std::min(endByte, fileEntry_->getLength()-1); + } + if(endOffsetOverride_ > 0) { + return endOffsetOverride_ - 1; + } + return 0; } Range HttpRequest::getRange() const @@ -112,9 +111,8 @@ Range HttpRequest::getRange() const // content-length is always 0 if(!segment_) { return Range(); - } else { - return Range(getStartByte(), getEndByte(), fileEntry_->getLength()); } + return Range(getStartByte(), getEndByte(), fileEntry_->getLength()); } bool HttpRequest::isRangeSatisfied(const Range& range) const @@ -128,9 +126,8 @@ bool HttpRequest::isRangeSatisfied(const Range& range) const ((fileEntry_->getLength() == 0) || (fileEntry_->getLength() == range.entityLength))) { return true; - } else { - return false; } + return false; } namespace { @@ -444,7 +441,7 @@ bool HttpRequest::conditionalRequest() const if(!ifModSinceHeader_.empty()) { return true; } - for(std::vector<std::string>::const_iterator i = headers_.begin(), + for(auto i = headers_.begin(), eoi = headers_.end(); i != eoi; ++i) { if(util::istartsWith(*i, "if-modified-since") || util::istartsWith(*i, "if-none-match")) { diff --git a/src/HttpResponse.cc b/src/HttpResponse.cc index 48eb279b..fa330867 100644 --- a/src/HttpResponse.cc +++ b/src/HttpResponse.cc @@ -124,15 +124,13 @@ std::string HttpResponse::determinFilename() const httpRequest_->getFile().end()); if(file.empty()) { return "index.html"; - } else { - return file; } - } else { - A2_LOG_INFO(fmt(MSG_CONTENT_DISPOSITION_DETECTED, - cuid_, - contentDisposition.c_str())); - return contentDisposition; + return file; } + A2_LOG_INFO(fmt(MSG_CONTENT_DISPOSITION_DETECTED, + cuid_, + contentDisposition.c_str())); + return contentDisposition; } void HttpResponse::retrieveCookie() @@ -299,9 +297,8 @@ bool parseMetalinkHttpLink(MetalinkHttpEntry& result, const std::string& s) std::string::const_iterator> p = util::stripIter(first+1, last); if(p.first == p.second) { return false; - } else { - result.uri.assign(p.first, p.second); } + result.uri.assign(p.first, p.second); last = std::find(last, s.end(), ';'); if(last != s.end()) { ++last; @@ -363,15 +360,13 @@ void HttpResponse::getMetalinKHttpEntries if(option->defined(PREF_METALINK_LOCATION)) { const std::string& loc = option->get(PREF_METALINK_LOCATION); util::split(loc.begin(), loc.end(), std::back_inserter(locs), ',', true); - for(std::vector<std::string>::iterator i = locs.begin(), eoi = locs.end(); - i != eoi; ++i) { - util::lowercase(*i); + for (auto& l: locs) { + util::lowercase(l); } } - for(std::vector<MetalinkHttpEntry>::iterator i = result.begin(), - eoi = result.end(); i != eoi; ++i) { - if(std::find(locs.begin(), locs.end(), (*i).geo) != locs.end()) { - (*i).pri -= 999999; + for (auto& r: result) { + if(std::find(locs.begin(), locs.end(), r.geo) != locs.end()) { + r.pri -= 999999; } } } @@ -409,10 +404,9 @@ void HttpResponse::getDigest(std::vector<Checksum>& result) const } std::sort(result.begin(), result.end(), HashTypeStronger()); std::vector<Checksum> temp; - for(std::vector<Checksum>::iterator i = result.begin(), - eoi = result.end(); i != eoi;) { + for(auto i = result.begin(), eoi = result.end(); i != eoi;) { bool ok = true; - std::vector<Checksum>::iterator j = i+1; + auto j = i+1; for(; j != eoi; ++j) { if((*i).getHashType() != (*j).getHashType()) { break; diff --git a/src/HttpResponseCommand.cc b/src/HttpResponseCommand.cc index bf62f014..ffa88aea 100644 --- a/src/HttpResponseCommand.cc +++ b/src/HttpResponseCommand.cc @@ -194,10 +194,9 @@ bool HttpResponseCommand::executeInternal() getDownloadContext()->setAcceptMetalink(false); std::vector<MetalinkHttpEntry> entries; httpResponse->getMetalinKHttpEntries(entries, getOption()); - for(std::vector<MetalinkHttpEntry>::iterator i = entries.begin(), - eoi = entries.end(); i != eoi; ++i) { - getFileEntry()->addUri((*i).uri); - A2_LOG_DEBUG(fmt("Adding URI=%s", (*i).uri.c_str())); + for(const auto& e : entries) { + getFileEntry()->addUri(e.uri); + A2_LOG_DEBUG(fmt("Adding URI=%s", e.uri.c_str())); } } } @@ -205,16 +204,16 @@ bool HttpResponseCommand::executeInternal() if(httpHeader->defined(HttpHeader::DIGEST)) { std::vector<Checksum> checksums; httpResponse->getDigest(checksums); - for(std::vector<Checksum>::iterator i = checksums.begin(), - eoi = checksums.end(); i != eoi; ++i) { + for(const auto &checksum : checksums) { if(getDownloadContext()->getHashType().empty()) { A2_LOG_DEBUG(fmt("Setting digest: type=%s, digest=%s", - (*i).getHashType().c_str(), - (*i).getDigest().c_str())); - getDownloadContext()->setDigest((*i).getHashType(), (*i).getDigest()); + checksum.getHashType().c_str(), + checksum.getDigest().c_str())); + getDownloadContext()->setDigest(checksum.getHashType(), + checksum.getDigest()); break; } else { - if(checkChecksum(getDownloadContext(), *i)) { + if(checkChecksum(getDownloadContext(), checksum)) { break; } } @@ -281,9 +280,8 @@ bool HttpResponseCommand::executeInternal() httpHeader->defined(HttpHeader::DIGEST)) { std::vector<Checksum> checksums; httpResponse->getDigest(checksums); - for(std::vector<Checksum>::iterator i = checksums.begin(), - eoi = checksums.end(); i != eoi; ++i) { - if(checkChecksum(getDownloadContext(), *i)) { + for(const auto &checksum : checksums) { + if(checkChecksum(getDownloadContext(), checksum)) { break; } } diff --git a/src/IndexBtMessage.cc b/src/IndexBtMessage.cc index f224d304..9e2c9752 100644 --- a/src/IndexBtMessage.cc +++ b/src/IndexBtMessage.cc @@ -47,7 +47,7 @@ unsigned char* IndexBtMessage::createMessage() * piece index --- index, 4bytes * total: 9bytes */ - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; bittorrent::createPeerMessageString(msg, MESSAGE_LENGTH, 5, getId()); bittorrent::setIntParam(&msg[5], index_); return msg; diff --git a/src/LibuvEventPoll.cc b/src/LibuvEventPoll.cc index 43298e43..07d60a1e 100644 --- a/src/LibuvEventPoll.cc +++ b/src/LibuvEventPoll.cc @@ -128,7 +128,7 @@ void LibuvEventPoll::poll(const struct timeval& tv) // timeout == 0 will tick once if (timeout >= 0) { - uv_timer_t* timer = new uv_timer_t; + auto timer = new uv_timer_t; uv_timer_init(loop_, timer); uv_timer_start(timer, timer_callback, timeout, timeout); @@ -147,11 +147,10 @@ void LibuvEventPoll::poll(const struct timeval& tv) // own timeout and ares may create new sockets or closes socket in // their API. So we call ares_process_fd for all ares_channel and // re-register their sockets. - for(KAsyncNameResolverEntrySet::iterator i = nameResolverEntries_.begin(), - eoi = nameResolverEntries_.end(); i != eoi; ++i) { - (*i)->processTimeout(); - (*i)->removeSocketEvents(this); - (*i)->addSocketEvents(this); + for (auto& r: nameResolverEntries_) { + r->processTimeout(); + r->removeSocketEvents(this); + r->addSocketEvents(this); } #endif // ENABLE_ASYNC_DNS @@ -219,8 +218,8 @@ void LibuvEventPoll::pollCallback(KPoll* poll, int status, int events) bool LibuvEventPoll::addEvents(sock_t socket, const LibuvEventPoll::KEvent& event) { - std::shared_ptr<KSocketEntry> socketEntry(new KSocketEntry(socket)); - KSocketEntrySet::iterator i = socketEntries_.lower_bound(socketEntry); + auto socketEntry = std::make_shared<KSocketEntry>(socket); + auto i = socketEntries_.lower_bound(socketEntry); if (i != socketEntries_.end() && **i == *socketEntry) { event.addSelf(*i); @@ -234,7 +233,7 @@ bool LibuvEventPoll::addEvents(sock_t socket, socketEntries_.insert(i, socketEntry); event.addSelf(socketEntry); - KPoll* poll = new KPoll(this, socketEntry.get(), socket); + auto poll = new KPoll(this, socketEntry.get(), socket); polls_[socket] = poll; poll->start(); return true; @@ -302,10 +301,8 @@ bool LibuvEventPoll::deleteEvents(sock_t socket, Command* command, bool LibuvEventPoll::addNameResolver(const std::shared_ptr<AsyncNameResolver>& resolver, Command* command) { - std::shared_ptr<KAsyncNameResolverEntry> entry( - new KAsyncNameResolverEntry(resolver, command)); - KAsyncNameResolverEntrySet::iterator itr = - nameResolverEntries_.lower_bound(entry); + auto entry = std::make_shared<KAsyncNameResolverEntry>(resolver, command); + auto itr = nameResolverEntries_.lower_bound(entry); if (itr != nameResolverEntries_.end() && *(*itr) == *entry) { return false; } @@ -317,9 +314,8 @@ bool LibuvEventPoll::addNameResolver(const std::shared_ptr<AsyncNameResolver>& r bool LibuvEventPoll::deleteNameResolver(const std::shared_ptr<AsyncNameResolver>& resolver, Command* command) { - std::shared_ptr<KAsyncNameResolverEntry> entry( - new KAsyncNameResolverEntry(resolver, command)); - KAsyncNameResolverEntrySet::iterator itr = nameResolverEntries_.find(entry); + auto entry = std::make_shared<KAsyncNameResolverEntry>(resolver, command); + auto itr = nameResolverEntries_.find(entry); if (itr == nameResolverEntries_.end()) { return false; } diff --git a/src/MSEHandshake.cc b/src/MSEHandshake.cc index 33ef8e61..155cc8c5 100644 --- a/src/MSEHandshake.cc +++ b/src/MSEHandshake.cc @@ -107,11 +107,10 @@ MSEHandshake::HANDSHAKE_TYPE MSEHandshake::identifyHandshakeType() A2_LOG_DEBUG(fmt("CUID#%" PRId64 " - This is legacy BitTorrent handshake.", cuid_)); return HANDSHAKE_LEGACY; - } else { - A2_LOG_DEBUG(fmt("CUID#%" PRId64 " - This may be encrypted BitTorrent handshake.", - cuid_)); - return HANDSHAKE_ENCRYPTED; } + A2_LOG_DEBUG(fmt("CUID#%" PRId64 " - This may be encrypted BitTorrent handshake.", + cuid_)); + return HANDSHAKE_ENCRYPTED; } void MSEHandshake::initEncryptionFacility(bool initiator) @@ -430,17 +429,15 @@ bool MSEHandshake::receiveReceiverHashAndPadCLength // pointing to the position of HASH('req2', SKEY) xor HASH('req3', S) unsigned char* rbufptr = rbuf_; std::shared_ptr<DownloadContext> downloadContext; - for(std::vector<std::shared_ptr<DownloadContext> >::const_iterator i = - downloadContexts.begin(), eoi = downloadContexts.end(); - i != eoi; ++i) { + for(auto & ctx : downloadContexts) { unsigned char md[20]; - const unsigned char* infohash = bittorrent::getInfoHash(*i); + const auto infohash = bittorrent::getInfoHash(ctx); createReq23Hash(md, infohash); if(memcmp(md, rbufptr, sizeof(md)) == 0) { A2_LOG_DEBUG(fmt("CUID#%" PRId64 " - info hash found: %s", cuid_, util::toHex(infohash, INFO_HASH_LENGTH).c_str())); - downloadContext = *i; + downloadContext = ctx; break; } } diff --git a/src/MetalinkParserStateV3Impl.cc b/src/MetalinkParserStateV3Impl.cc index 3ebeec5f..f92ae51a 100644 --- a/src/MetalinkParserStateV3Impl.cc +++ b/src/MetalinkParserStateV3Impl.cc @@ -76,8 +76,7 @@ void FilesMetalinkParserState::beginElement { if(checkNsUri(nsUri) && strcmp(localname, "file") == 0) { psm->setFileState(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "name", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "name", METALINK3_NAMESPACE_URI); if(itr != attrs.end()) { std::string name((*itr).value, (*itr).valueLength); if(name.empty() || util::detectDirTraversal(name)) { @@ -113,7 +112,7 @@ void FileMetalinkParserState::beginElement } else if(strcmp(localname, "resources") == 0) { psm->setResourcesState(); int maxConnections; - std::vector<XmlAttr>::const_iterator itr = + auto itr = findAttr(attrs, "maxconnections", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { maxConnections = -1; @@ -198,8 +197,7 @@ void VerificationMetalinkParserState::beginElement #ifdef ENABLE_MESSAGE_DIGEST if(strcmp(localname, "hash") == 0) { psm->setHashState(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { return; } else { @@ -210,8 +208,7 @@ void VerificationMetalinkParserState::beginElement psm->setPiecesState(); uint32_t length; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "length", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "length", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { return; } else { @@ -223,8 +220,7 @@ void VerificationMetalinkParserState::beginElement } std::string type; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { return; } else { @@ -238,16 +234,14 @@ void VerificationMetalinkParserState::beginElement #endif // ENABLE_MESSAGE_DIGEST if(strcmp(localname, "signature") == 0) { psm->setSignatureState(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { return; } else { psm->newSignatureTransaction(); psm->setTypeOfSignature (std::string((*itr).value, (*itr).valueLength)); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "file", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "file", METALINK3_NAMESPACE_URI); if(itr != attrs.end()) { std::string file((*itr).value, (*itr).valueLength); if(!util::detectDirTraversal(file)) { @@ -280,8 +274,7 @@ void PiecesMetalinkParserState::beginElement { if(checkNsUri(nsUri) && strcmp(localname, "hash") == 0) { psm->setPieceHashState(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "piece", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "piece", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { psm->cancelChunkChecksumTransaction(); } else { @@ -343,53 +336,44 @@ void ResourcesMetalinkParserState::beginElement psm->setURLState(); std::string type; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { return; - } else { - type.assign((*itr).value, (*itr).valueLength); } + type.assign((*itr).value, (*itr).valueLength); } std::string location; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "location", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "location", METALINK3_NAMESPACE_URI); if(itr != attrs.end()) { location.assign((*itr).value, (*itr).valueLength); } } int preference; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "preference", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "preference", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { preference = MetalinkResource::getLowestPriority(); - } else { - if(util::parseIntNoThrow - (preference, std::string((*itr).value, (*itr).valueLength)) && - preference >= 0) { - // In Metalink3Spec, highest prefernce value is 100. We - // use Metalink4Spec priority unit system in which 1 is - // higest. - preference = 101-preference; - } else { - preference = MetalinkResource::getLowestPriority(); - } + } + else if(util::parseIntNoThrow(preference, std::string((*itr).value, (*itr).valueLength)) && + preference >= 0) { + // In Metalink3Spec, highest prefernce value is 100. We + // use Metalink4Spec priority unit system in which 1 is + // higest. + preference = 101-preference; + } + else { + preference = MetalinkResource::getLowestPriority(); } } int maxConnections; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "maxconnections", METALINK3_NAMESPACE_URI); + auto itr = findAttr(attrs, "maxconnections", METALINK3_NAMESPACE_URI); if(itr == attrs.end()) { maxConnections = -1; - } else { - if(!util::parseIntNoThrow - (maxConnections, std::string((*itr).value, (*itr).valueLength)) || - maxConnections <= 0) { - maxConnections = -1; - } + } else if(!util::parseIntNoThrow(maxConnections, std::string((*itr).value, (*itr).valueLength)) || + maxConnections <= 0) { + maxConnections = -1; } } psm->newResourceTransaction(); diff --git a/src/MetalinkParserStateV4Impl.cc b/src/MetalinkParserStateV4Impl.cc index 7655c476..cb186b94 100644 --- a/src/MetalinkParserStateV4Impl.cc +++ b/src/MetalinkParserStateV4Impl.cc @@ -60,24 +60,24 @@ void MetalinkMetalinkParserStateV4::beginElement const char* nsUri, const std::vector<XmlAttr>& attrs) { - if(checkNsUri(nsUri) && strcmp(localname, "file") == 0) { - psm->setFileStateV4(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "name", METALINK4_NAMESPACE_URI); - if(itr == attrs.end() || (*itr).valueLength == 0) { - psm->logError("Missing file@name"); - return; - } - std::string name((*itr).value, (*itr).valueLength); - if(util::detectDirTraversal(name)) { - psm->logError("Bad file@name"); - return; - } - psm->newEntryTransaction(); - psm->setFileNameOfEntry(name); - } else { + if(checkNsUri(nsUri) && strcmp(localname, "file") != 0) { psm->setSkipTagState(); + return; + } + + psm->setFileStateV4(); + auto itr = findAttr(attrs, "name", METALINK4_NAMESPACE_URI); + if(itr == attrs.end() || (*itr).valueLength == 0) { + psm->logError("Missing file@name"); + return; + } + std::string name((*itr).value, (*itr).valueLength); + if(util::detectDirTraversal(name)) { + psm->logError("Bad file@name"); + return; } + psm->newEntryTransaction(); + psm->setFileNameOfEntry(name); } void FileMetalinkParserStateV4::beginElement @@ -101,8 +101,7 @@ void FileMetalinkParserStateV4::beginElement psm->setMetaurlStateV4(); std::string name; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "name", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "name", METALINK4_NAMESPACE_URI); if(itr != attrs.end()) { name.assign((*itr).value, (*itr).valueLength); if(name.empty() || util::detectDirTraversal(name)) { @@ -113,33 +112,27 @@ void FileMetalinkParserStateV4::beginElement } int priority; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "priority", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "priority", METALINK4_NAMESPACE_URI); if(itr == attrs.end()) { priority = MetalinkResource::getLowestPriority(); - } else { - if(util::parseIntNoThrow - (priority, std::string((*itr).value, (*itr).valueLength))) { - if(priority < 1 || MetalinkResource::getLowestPriority() < priority) { - psm->logError("metaurl@priority is out of range"); - return; - } - } else { - psm->logError("Bad metaurl@priority"); + } else if(util::parseIntNoThrow(priority, std::string((*itr).value, (*itr).valueLength))) { + if(priority < 1 || MetalinkResource::getLowestPriority() < priority) { + psm->logError("metaurl@priority is out of range"); return; } + } else { + psm->logError("Bad metaurl@priority"); + return; } } std::string mediatype; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "mediatype", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "mediatype", METALINK4_NAMESPACE_URI); if(itr == attrs.end() || (*itr).valueLength == 0) { psm->logError("Missing metaurl@mediatype"); return; - } else { - mediatype.assign((*itr).value, (*itr).valueLength); } + mediatype.assign((*itr).value, (*itr).valueLength); } psm->newMetaurlTransaction(); psm->setPriorityOfMetaurl(priority); @@ -149,29 +142,24 @@ void FileMetalinkParserStateV4::beginElement psm->setURLStateV4(); std::string location; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "location", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "location", METALINK4_NAMESPACE_URI); if(itr != attrs.end()) { location.assign((*itr).value, (*itr).valueLength); } } int priority; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "priority", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "priority", METALINK4_NAMESPACE_URI); if(itr == attrs.end()) { priority = MetalinkResource::getLowestPriority(); - } else { - if(util::parseIntNoThrow - (priority, std::string((*itr).value, (*itr).valueLength))) { - if(priority < 1 || MetalinkResource::getLowestPriority() < priority) { - psm->logError("url@priority is out of range"); - return; - } - } else { - psm->logError("Bad url@priority"); + } else if(util::parseIntNoThrow(priority, std::string((*itr).value, (*itr).valueLength))) { + if(priority < 1 || MetalinkResource::getLowestPriority() < priority) { + psm->logError("url@priority is out of range"); return; } + } else { + psm->logError("Bad url@priority"); + return; } } psm->newResourceTransaction(); @@ -181,40 +169,35 @@ void FileMetalinkParserStateV4::beginElement #ifdef ENABLE_MESSAGE_DIGEST else if(strcmp(localname, "hash") == 0) { psm->setHashStateV4(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK4_NAMESPACE_URI); if(itr == attrs.end() || (*itr).valueLength == 0) { psm->logError("Missing hash@type"); return; - } else { - psm->newChecksumTransaction(); - psm->setTypeOfChecksum(std::string((*itr).value, (*itr).valueLength)); } + psm->newChecksumTransaction(); + psm->setTypeOfChecksum(std::string((*itr).value, (*itr).valueLength)); } else if(strcmp(localname, "pieces") == 0) { psm->setPiecesStateV4(); uint32_t length; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "length", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "length", METALINK4_NAMESPACE_URI); if(itr == attrs.end() || (*itr).valueLength == 0) { psm->logError("Missing pieces@length"); return; - } else if(!util::parseUIntNoThrow - (length, std::string((*itr).value, (*itr).valueLength))) { + } + if(!util::parseUIntNoThrow(length, std::string((*itr).value, (*itr).valueLength))) { psm->logError("Bad pieces@length"); return; } } std::string type; { - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "type", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "type", METALINK4_NAMESPACE_URI); if(itr == attrs.end() || (*itr).valueLength == 0) { psm->logError("Missing pieces@type"); return; - } else { - type.assign((*itr).value, (*itr).valueLength); } + type.assign((*itr).value, (*itr).valueLength); } psm->newChunkChecksumTransactionV4(); psm->setLengthOfChunkChecksumV4(length); @@ -223,8 +206,7 @@ void FileMetalinkParserStateV4::beginElement #endif // ENABLE_MESSAGE_DIGEST else if(strcmp(localname, "signature") == 0) { psm->setSignatureStateV4(); - std::vector<XmlAttr>::const_iterator itr = - findAttr(attrs, "mediatype", METALINK4_NAMESPACE_URI); + auto itr = findAttr(attrs, "mediatype", METALINK4_NAMESPACE_URI); if(itr == attrs.end() || (*itr).valueLength == 0) { psm->logError("Missing signature@mediatype"); return; diff --git a/src/OptionHandlerImpl.cc b/src/OptionHandlerImpl.cc index 75a40354..28caa783 100644 --- a/src/OptionHandlerImpl.cc +++ b/src/OptionHandlerImpl.cc @@ -169,21 +169,22 @@ void NumberOptionHandler::parseArg(Option& option, int64_t number) const { if((min_ == -1 || min_ <= number) && (max_ == -1 || number <= max_)) { option.put(pref_, util::itos(number)); + return; + } + + std::string msg = pref_->k; + msg += " "; + if(min_ == -1 && max_ != -1) { + msg += fmt(_("must be smaller than or equal to %" PRId64 "."), max_); + } else if(min_ != -1 && max_ != -1) { + msg += fmt(_("must be between %" PRId64 " and %" PRId64 "."), + min_, max_); + } else if(min_ != -1 && max_ == -1) { + msg += fmt(_("must be greater than or equal to %" PRId64 "."), min_); } else { - std::string msg = pref_->k; - msg += " "; - if(min_ == -1 && max_ != -1) { - msg += fmt(_("must be smaller than or equal to %" PRId64 "."), max_); - } else if(min_ != -1 && max_ != -1) { - msg += fmt(_("must be between %" PRId64 " and %" PRId64 "."), - min_, max_); - } else if(min_ != -1 && max_ == -1) { - msg += fmt(_("must be greater than or equal to %" PRId64 "."), min_); - } else { - msg += _("must be a number."); - } - throw DL_ABORT_EX(msg); + msg += _("must be a number."); } + throw DL_ABORT_EX(msg); } std::string NumberOptionHandler::createPossibleValuesString() const @@ -405,20 +406,18 @@ ParameterOptionHandler::~ParameterOptionHandler() {} void ParameterOptionHandler::parseArg(Option& option, const std::string& optarg) const { - std::vector<std::string>::const_iterator itr = - std::find(validParamValues_.begin(), validParamValues_.end(), optarg); + auto itr = std::find(validParamValues_.begin(), validParamValues_.end(), optarg); if(itr == validParamValues_.end()) { std::string msg = pref_->k; msg += " "; msg += _("must be one of the following:"); if(validParamValues_.size() == 0) { msg += "''"; - } else { - for(std::vector<std::string>::const_iterator itr = - validParamValues_.begin(), eoi = validParamValues_.end(); - itr != eoi; ++itr) { + } + else { + for (const auto& p: validParamValues_) { msg += "'"; - msg += *itr; + msg += p; msg += "' "; } } diff --git a/src/OptionParser.cc b/src/OptionParser.cc index 154045dc..a1aba666 100644 --- a/src/OptionParser.cc +++ b/src/OptionParser.cc @@ -262,9 +262,8 @@ void OptionParser::parse(Option& option, const KeyVals& options) const void OptionParser::setOptionHandlers (const std::vector<OptionHandler*>& handlers) { - for(std::vector<OptionHandler*>::const_iterator i = - handlers.begin(), eoi = handlers.end(); i != eoi; ++i) { - addOptionHandler(*i); + for (const auto& h: handlers) { + addOptionHandler(h); } } @@ -280,10 +279,9 @@ void OptionParser::addOptionHandler(OptionHandler* handler) void OptionParser::parseDefaultValues(Option& option) const { - for(std::vector<OptionHandler*>::const_iterator i = - handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { - if(*i && !(*i)->getDefaultValue().empty()) { - (*i)->parse(option, (*i)->getDefaultValue()); + for (const auto& h: handlers_) { + if (h && !h->getDefaultValue().empty()) { + h->parse(option, h->getDefaultValue()); } } } @@ -291,10 +289,9 @@ void OptionParser::parseDefaultValues(Option& option) const std::vector<const OptionHandler*> OptionParser::findByTag(uint32_t tag) const { std::vector<const OptionHandler*> result; - for(std::vector<OptionHandler*>::const_iterator i = - handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { - if(*i && !(*i)->isHidden() && (*i)->hasTag(tag)) { - result.push_back(*i); + for (const auto& h: handlers_) { + if(h && !h->isHidden() && h->hasTag(tag)) { + result.push_back(h); } } return result; @@ -304,14 +301,13 @@ std::vector<const OptionHandler*> OptionParser::findByNameSubstring(const std::string& substring) const { std::vector<const OptionHandler*> result; - for(std::vector<OptionHandler*>::const_iterator i = - handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { - if(*i && !(*i)->isHidden()) { - size_t nameLen = strlen((*i)->getName()); - if(std::search((*i)->getName(), (*i)->getName()+nameLen, + for (const auto& h: handlers_) { + if(h && !h->isHidden()) { + size_t nameLen = strlen(h->getName()); + if(std::search(h->getName(), h->getName()+nameLen, substring.begin(), substring.end()) != - (*i)->getName()+nameLen) { - result.push_back(*i); + h->getName()+nameLen) { + result.push_back(h); } } } @@ -321,10 +317,9 @@ OptionParser::findByNameSubstring(const std::string& substring) const std::vector<const OptionHandler*> OptionParser::findAll() const { std::vector<const OptionHandler*> result; - for(std::vector<OptionHandler*>::const_iterator i = - handlers_.begin(), eoi = handlers_.end(); i != eoi; ++i) { - if(*i && !(*i)->isHidden()) { - result.push_back(*i); + for (const auto& h: handlers_) { + if(h && !h->isHidden()) { + result.push_back(h); } } return result; diff --git a/src/PeerConnection.cc b/src/PeerConnection.cc index 3fa0f5d7..cacbc3aa 100644 --- a/src/PeerConnection.cc +++ b/src/PeerConnection.cc @@ -274,7 +274,7 @@ void PeerConnection::reserveBuffer(size_t minSize) { if(bufferCapacity_ < minSize) { bufferCapacity_ = minSize; - unsigned char *buf = new unsigned char[bufferCapacity_]; + auto buf = new unsigned char[bufferCapacity_]; memcpy(buf, resbuf_, resbufLength_); delete [] resbuf_; resbuf_ = buf; diff --git a/src/Piece.cc b/src/Piece.cc index 4c779626..4c3ee4bf 100644 --- a/src/Piece.cc +++ b/src/Piece.cc @@ -362,7 +362,7 @@ void Piece::updateWrCache(WrDiskCache* diskCache, unsigned char* data, } assert(wrCache_); A2_LOG_DEBUG(fmt("updateWrCache entry=%p", wrCache_)); - WrDiskCacheEntry::DataCell* cell = new WrDiskCacheEntry::DataCell(); + auto cell = new WrDiskCacheEntry::DataCell(); cell->goff = goff; cell->data = data; cell->offset = offset; diff --git a/src/PollEventPoll.cc b/src/PollEventPoll.cc index eee58e4c..d95078dd 100644 --- a/src/PollEventPoll.cc +++ b/src/PollEventPoll.cc @@ -168,7 +168,7 @@ bool PollEventPoll::addEvents event.addSelf(socketEntry); if(pollfdCapacity_ == pollfdNum_) { pollfdCapacity_ *= 2; - struct pollfd* newPollfds = new struct pollfd[pollfdCapacity_]; + auto newPollfds = new struct pollfd[pollfdCapacity_]; memcpy(newPollfds, pollfds_, pollfdNum_*sizeof(struct pollfd)); delete [] pollfds_; pollfds_ = newPollfds; diff --git a/src/PriorityPieceSelector.cc b/src/PriorityPieceSelector.cc index 98ff96b7..5f7774c2 100644 --- a/src/PriorityPieceSelector.cc +++ b/src/PriorityPieceSelector.cc @@ -44,8 +44,8 @@ PriorityPieceSelector::PriorityPieceSelector bool PriorityPieceSelector::select (size_t& index, const unsigned char* bitfield, size_t nbits) const { - for(std::vector<size_t>::const_iterator i = prioritizedPieces_.begin(), - eoi = prioritizedPieces_.end(); i != eoi; ++i) { + for(auto i = prioritizedPieces_.begin(), eoi = prioritizedPieces_.end(); + i != eoi; ++i) { if(bitfield::test(bitfield, nbits, *i)) { index = *i; return true; diff --git a/src/RangeBtMessage.cc b/src/RangeBtMessage.cc index eecbcc55..625ee9e5 100644 --- a/src/RangeBtMessage.cc +++ b/src/RangeBtMessage.cc @@ -57,7 +57,7 @@ unsigned char* RangeBtMessage::createMessage() * length -- length, 4bytes * total: 17bytes */ - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; bittorrent::createPeerMessageString(msg, MESSAGE_LENGTH, 13, getId()); bittorrent::setIntParam(&msg[5], index_); bittorrent::setIntParam(&msg[9], begin_); diff --git a/src/RequestGroup.cc b/src/RequestGroup.cc index 93c466df..0977ee51 100644 --- a/src/RequestGroup.cc +++ b/src/RequestGroup.cc @@ -330,7 +330,7 @@ void RequestGroup::createInitialCommand progressInfoFilePtr->setBtRuntime(btRuntime); } - DefaultPeerStorage* peerStoragePtr(new DefaultPeerStorage()); + auto peerStoragePtr(new DefaultPeerStorage()); peerStoragePtr->setBtRuntime(btRuntime); peerStoragePtr->setPieceStorage(pieceStorage_); peerStorage_ = peerStoragePtr; @@ -574,7 +574,7 @@ void RequestGroup::initPieceStorage() #endif // ENABLE_BITTORRENT )) { #ifdef ENABLE_BITTORRENT - DefaultPieceStorage* ps = + auto ps = new DefaultPieceStorage(downloadContext_, option_.get()); std::shared_ptr<PieceStorage> psHolder(ps); if(downloadContext_->hasAttribute(CTX_ATTR_BT)) { @@ -616,7 +616,7 @@ void RequestGroup::initPieceStorage() } tempPieceStorage.swap(psHolder); } else { - UnknownLengthPieceStorage* ps = + auto ps = new UnknownLengthPieceStorage(downloadContext_); std::shared_ptr<PieceStorage> psHolder(ps); if(diskWriterFactory_) { diff --git a/src/RequestGroupMan.cc b/src/RequestGroupMan.cc index d446280b..c25d0088 100644 --- a/src/RequestGroupMan.cc +++ b/src/RequestGroupMan.cc @@ -279,17 +279,16 @@ private: group->getSegmentMan()->getPeerStats().size() == 1; const std::vector<std::shared_ptr<PeerStat> >& peerStats = group->getSegmentMan()->getFastestPeerStats(); - for(std::vector<std::shared_ptr<PeerStat> >::const_iterator i = - peerStats.begin(), eoi = peerStats.end(); i != eoi; ++i) { - if((*i)->getHostname().empty() || (*i)->getProtocol().empty()) { + for(auto & stat : peerStats) { + if(stat->getHostname().empty() || stat->getProtocol().empty()) { continue; } - int speed = (*i)->getAvgDownloadSpeed(); + int speed = stat->getAvgDownloadSpeed(); if (speed == 0) continue; std::shared_ptr<ServerStat> ss = - e_->getRequestGroupMan()->getOrCreateServerStat((*i)->getHostname(), - (*i)->getProtocol()); + e_->getRequestGroupMan()->getOrCreateServerStat(stat->getHostname(), + stat->getProtocol()); ss->increaseCounter(); ss->updateDownloadSpeed(speed); if(singleConnection) { @@ -361,14 +360,13 @@ public: GroupId::toHex(group->getGID()).c_str())); const std::vector<std::shared_ptr<FileEntry> >& files = dctx->getFileEntries(); - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - files.begin(), eoi = files.end(); i != eoi; ++i) { - if(!(*i)->isRequested()) { - if(File((*i)->getPath()).remove()) { - A2_LOG_INFO(fmt(MSG_FILE_REMOVED, (*i)->getPath().c_str())); + for(auto & file : files) { + if(!file->isRequested()) { + if(File(file->getPath()).remove()) { + A2_LOG_INFO(fmt(MSG_FILE_REMOVED, file->getPath().c_str())); } else { A2_LOG_INFO(fmt(MSG_FILE_COULD_NOT_REMOVED, - (*i)->getPath().c_str())); + file->getPath().c_str())); } } } @@ -535,9 +533,8 @@ void RequestGroupMan::save() void RequestGroupMan::closeFile() { - for(RequestGroupList::iterator itr = requestGroups_.begin(), - eoi = requestGroups_.end(); itr != eoi; ++itr) { - (*itr)->closeFile(); + for(auto & elem : requestGroups_) { + elem->closeFile(); } } @@ -548,10 +545,8 @@ RequestGroupMan::DownloadStat RequestGroupMan::getDownloadStat() const int inprogress = 0; int removed = 0; error_code::Value lastError = removedLastErrorResult_; - for(DownloadResultList::const_iterator itr = - downloadResults_.begin(), eoi = downloadResults_.end(); itr != eoi; - ++itr) { - const std::shared_ptr<DownloadResult>& dr = *itr; + for(auto & dr : downloadResults_) { + if(dr->belongsTo != 0) { continue; } @@ -637,10 +632,8 @@ void RequestGroupMan::showDownloadResults(OutputFile& o, bool full) const int err = 0; int inpr = 0; int rm = 0; - for(DownloadResultList::const_iterator itr = - downloadResults_.begin(), eoi = downloadResults_.end(); itr != eoi; - ++itr) { - const std::shared_ptr<DownloadResult>& dr = *itr; + for(auto & dr : downloadResults_) { + if(dr->belongsTo != 0) { continue; } @@ -719,9 +712,8 @@ void RequestGroupMan::formatDownloadResultFull bool head = true; const std::vector<std::shared_ptr<FileEntry> >& fileEntries = downloadResult->fileEntries; - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { - if(!(*i)->isRequested()) { + for(auto & f: fileEntries) { + if(!f->isRequested()) { continue; } std::stringstream o; @@ -731,14 +723,14 @@ void RequestGroupMan::formatDownloadResultFull } else { o << " | | |"; } - if((*i)->getLength() == 0 || downloadResult->bitfield.empty()) { + if(f->getLength() == 0 || downloadResult->bitfield.empty()) { o << " -|"; } else { int64_t completedLength = - bt.getOffsetCompletedLength((*i)->getOffset(), (*i)->getLength()); - o << std::setw(3) << 100*completedLength/(*i)->getLength() << "|"; + bt.getOffsetCompletedLength(f->getOffset(), f->getLength()); + o << std::setw(3) << 100*completedLength/f->getLength() << "|"; } - writeFilePath(o, *i, downloadResult->inMemoryDownload); + writeFilePath(o, f, downloadResult->inMemoryDownload); o << "\n"; out.write(o.str().c_str()); } @@ -787,9 +779,7 @@ bool RequestGroupMan::isSameFileBeingDownloaded(RequestGroup* requestGroup) cons return false; } std::vector<std::string> files; - for(RequestGroupList::const_iterator itr = requestGroups_.begin(), - eoi = requestGroups_.end(); itr != eoi; ++itr) { - const std::shared_ptr<RequestGroup>& rg = *itr; + for(auto & rg : requestGroups_) { if(rg.get() != requestGroup) { const std::vector<std::shared_ptr<FileEntry> >& entries = rg->getDownloadContext()->getFileEntries(); @@ -807,17 +797,15 @@ bool RequestGroupMan::isSameFileBeingDownloaded(RequestGroup* requestGroup) cons void RequestGroupMan::halt() { - for(RequestGroupList::const_iterator i = requestGroups_.begin(), - eoi = requestGroups_.end(); i != eoi; ++i) { - (*i)->setHaltRequested(true); + for(auto & elem : requestGroups_) { + elem->setHaltRequested(true); } } void RequestGroupMan::forceHalt() { - for(RequestGroupList::const_iterator i = requestGroups_.begin(), - eoi = requestGroups_.end(); i != eoi; ++i) { - (*i)->setForceHaltRequested(true); + for(auto & elem : requestGroups_) { + elem->setForceHaltRequested(true); } } diff --git a/src/RpcMethod.cc b/src/RpcMethod.cc index d7a455f3..f7ec08c7 100644 --- a/src/RpcMethod.cc +++ b/src/RpcMethod.cc @@ -102,9 +102,8 @@ void gatherOption // header and index-out option can take array as value const List* oplist = downcast<List>((*first).second); if(oplist) { - for(List::ValueType::const_iterator argiter = oplist->begin(), - eoi = oplist->end(); argiter != eoi; ++argiter) { - const String* opval = downcast<String>(*argiter); + for(auto & elem : *oplist) { + const String* opval = downcast<String>(elem); if(opval) { handler->parse(*option, opval->s()); } diff --git a/src/RpcMethodImpl.cc b/src/RpcMethodImpl.cc index c7ea16e6..34e96da6 100644 --- a/src/RpcMethodImpl.cc +++ b/src/RpcMethodImpl.cc @@ -212,9 +212,8 @@ template<typename OutputIterator> void extractUris(OutputIterator out, const List* src) { if(src) { - for(List::ValueType::const_iterator i = src->begin(), eoi = src->end(); - i != eoi; ++i) { - const String* uri = downcast<String>(*i); + for(auto & elem : *src) { + const String* uri = downcast<String>(elem); if(uri) { out++ = uri->s(); } @@ -1272,27 +1271,24 @@ std::unique_ptr<ValueBase> ChangeUriRpcMethod::process } auto& s = files[index]; size_t delcount = 0; - for(auto i = delUrisParam->begin(), eoi = delUrisParam->end(); - i != eoi; ++i) { - const String* uri = downcast<String>(*i); + for(auto & elem : *delUrisParam) { + const String* uri = downcast<String>(elem); if(uri && s->removeUri(uri->s())) { ++delcount; } } size_t addcount = 0; if(posGiven) { - for(auto i = addUrisParam->begin(), eoi = addUrisParam->end(); - i != eoi; ++i) { - const String* uri = downcast<String>(*i); + for(auto & elem : *addUrisParam) { + const String* uri = downcast<String>(elem); if(uri && s->insertUri(uri->s(), pos)) { ++addcount; ++pos; } } } else { - for(auto i = addUrisParam->begin(), eoi = addUrisParam->end(); - i != eoi; ++i) { - const String* uri = downcast<String>(*i); + for(auto & elem : *addUrisParam) { + const String* uri = downcast<String>(elem); if(uri && s->addUri(uri->s())) { ++addcount; } @@ -1354,8 +1350,8 @@ std::unique_ptr<ValueBase> SystemMulticallRpcMethod::process { const List* methodSpecs = checkRequiredParam<List>(req, 0); auto list = List::g(); - for(auto i = methodSpecs->begin(), eoi = methodSpecs->end(); i != eoi; ++i) { - Dict* methodDict = downcast<Dict>(*i); + for(auto & methodSpec : *methodSpecs) { + Dict* methodDict = downcast<Dict>(methodSpec); if(!methodDict) { list->append(createErrorResponse (DL_ABORT_EX("system.multicall expected struct."), req)); @@ -1453,9 +1449,8 @@ void changeOption if(option.defined(PREF_MAX_CONNECTION_PER_SERVER)) { int maxConn = grOption->getAsInt(PREF_MAX_CONNECTION_PER_SERVER); const std::vector<std::shared_ptr<FileEntry> >& files = dctx->getFileEntries(); - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = files.begin(), - eoi = files.end(); i != eoi; ++i) { - (*i)->setMaxConnectionPerServer(maxConn); + for(auto & file : files) { + (file)->setMaxConnectionPerServer(maxConn); } } if(option.defined(PREF_DIR) || option.defined(PREF_OUT)) { diff --git a/src/RpcMethodImpl.h b/src/RpcMethodImpl.h index fdc5b045..5671d3f9 100644 --- a/src/RpcMethodImpl.h +++ b/src/RpcMethodImpl.h @@ -116,9 +116,8 @@ void toStringList(OutputIterator out, const List* src) if(!src) { return; } - for(List::ValueType::const_iterator i = src->begin(), eoi = src->end(); - i != eoi; ++i) { - const String* s = downcast<String>(*i); + for(auto & elem : *src) { + const String* s = downcast<String>(elem); if(s) { *out++ = s->s(); } diff --git a/src/SegmentMan.cc b/src/SegmentMan.cc index ae418b33..691416c3 100644 --- a/src/SegmentMan.cc +++ b/src/SegmentMan.cc @@ -164,8 +164,7 @@ std::shared_ptr<Segment> SegmentMan::checkoutSegment segment->getWrittenLength())); if(piece->getLength() > 0) { - std::map<size_t, int32_t>::iterator positr = - segmentWrittenLengthMemo_.find(segment->getIndex()); + auto positr = segmentWrittenLengthMemo_.find(segment->getIndex()); if(positr != segmentWrittenLengthMemo_.end()) { const int32_t writtenLength = (*positr).second; A2_LOG_DEBUG(fmt("writtenLength(in memo)=%d, writtenLength=%d", @@ -332,8 +331,7 @@ void SegmentMan::cancelSegment void SegmentMan::cancelAllSegments() { - for(std::deque<std::shared_ptr<SegmentEntry> >::iterator itr = - usedSegmentEntries_.begin(), eoi = usedSegmentEntries_.end(); + for(auto itr = usedSegmentEntries_.begin(), eoi = usedSegmentEntries_.end(); itr != eoi; ++itr) { cancelSegmentInternal((*itr)->cuid, (*itr)->segment); } @@ -393,8 +391,7 @@ void SegmentMan::registerPeerStat(const std::shared_ptr<PeerStat>& peerStat) std::shared_ptr<PeerStat> SegmentMan::getPeerStat(cuid_t cuid) const { - for(std::vector<std::shared_ptr<PeerStat> >::const_iterator i = - peerStats_.begin(), eoi = peerStats_.end(); i != eoi; ++i) { + for(auto i = peerStats_.begin(), eoi = peerStats_.end(); i != eoi; ++i) { if((*i)->getCuid() == cuid) { return *i; } @@ -420,9 +417,8 @@ public: void SegmentMan::updateFastestPeerStat(const std::shared_ptr<PeerStat>& peerStat) { - std::vector<std::shared_ptr<PeerStat> >::iterator i = - std::find_if(fastestPeerStats_.begin(), fastestPeerStats_.end(), - PeerStatHostProtoEqual(peerStat)); + auto i = std::find_if(fastestPeerStats_.begin(), fastestPeerStats_.end(), + PeerStatHostProtoEqual(peerStat)); if(i == fastestPeerStats_.end()) { fastestPeerStats_.push_back(peerStat); } else if((*i)->getAvgDownloadSpeed() < peerStat->getAvgDownloadSpeed()) { diff --git a/src/SelectEventPoll.cc b/src/SelectEventPoll.cc index 7974f3ba..41fe97b3 100644 --- a/src/SelectEventPoll.cc +++ b/src/SelectEventPoll.cc @@ -79,9 +79,7 @@ void SelectEventPoll::SocketEntry::addCommandEvent (Command* command, int events) { CommandEvent cev(command, events); - std::deque<CommandEvent>::iterator i = std::find(commandEvents_.begin(), - commandEvents_.end(), - cev); + auto i = std::find(commandEvents_.begin(), commandEvents_.end(), cev); if(i == commandEvents_.end()) { commandEvents_.push_back(cev); } else { @@ -92,9 +90,7 @@ void SelectEventPoll::SocketEntry::removeCommandEvent (Command* command, int events) { CommandEvent cev(command, events); - std::deque<CommandEvent>::iterator i = std::find(commandEvents_.begin(), - commandEvents_.end(), - cev); + auto i = std::find(commandEvents_.begin(), commandEvents_.end(), cev); if(i == commandEvents_.end()) { // not found } else { diff --git a/src/SinkStreamFilter.cc b/src/SinkStreamFilter.cc index 452caae4..88420cfc 100644 --- a/src/SinkStreamFilter.cc +++ b/src/SinkStreamFilter.cc @@ -80,7 +80,7 @@ ssize_t SinkStreamFilter::transform if(alen < wlen) { size_t len = wlen - alen; size_t capacity = std::max(len, static_cast<size_t>(4096)); - unsigned char* dataCopy = new unsigned char[capacity]; + auto dataCopy = new unsigned char[capacity]; memcpy(dataCopy, inbuf + alen, len); piece->updateWrCache(wrDiskCache_, dataCopy, 0, len, capacity, segment->getPositionToWrite() + alen); diff --git a/src/SocketCore.cc b/src/SocketCore.cc index 6cfc3b75..64867536 100644 --- a/src/SocketCore.cc +++ b/src/SocketCore.cc @@ -1194,8 +1194,7 @@ bool verifyHostname(const std::string& hostname, if(addrLen == 0) { return false; } - for(std::vector<std::string>::const_iterator i = ipAddrs.begin(), - eoi = ipAddrs.end(); i != eoi; ++i) { + for(auto i = ipAddrs.begin(), eoi = ipAddrs.end(); i != eoi; ++i) { if(addrLen == (*i).size() && memcmp(binAddr, (*i).c_str(), addrLen) == 0) { return true; @@ -1205,8 +1204,7 @@ bool verifyHostname(const std::string& hostname, if(dnsNames.empty()) { return util::tlsHostnameMatch(commonName, hostname); } - for(std::vector<std::string>::const_iterator i = dnsNames.begin(), - eoi = dnsNames.end(); i != eoi; ++i) { + for(auto i = dnsNames.begin(), eoi = dnsNames.end(); i != eoi; ++i) { if(util::tlsHostnameMatch(*i, hostname)) { return true; } diff --git a/src/StreamFileAllocationEntry.cc b/src/StreamFileAllocationEntry.cc index d30018a2..dfe1f679 100644 --- a/src/StreamFileAllocationEntry.cc +++ b/src/StreamFileAllocationEntry.cc @@ -73,13 +73,10 @@ void StreamFileAllocationEntry::prepareForNextAction getRequestGroup()->getDownloadContext(); const std::vector<std::shared_ptr<FileEntry> >& fileEntries = dctx->getFileEntries(); - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator i = - fileEntries.begin(), eoi = fileEntries.end(); i != eoi; ++i) { - const FileEntry::InFlightRequestSet& reqs = - (*i)->getInFlightRequests(); - for(FileEntry::InFlightRequestSet::iterator j = - reqs.begin(), eoj = reqs.end(); j != eoj; ++j) { - const std::shared_ptr<PeerStat>& peerStat = (*j)->getPeerStat(); + for(auto & f : fileEntries) { + const auto& reqs = f->getInFlightRequests(); + for(auto & req : reqs) { + const std::shared_ptr<PeerStat>& peerStat = req->getPeerStat(); if(peerStat) { peerStat->downloadStart(); } diff --git a/src/UDPTrackerClient.cc b/src/UDPTrackerClient.cc index 23192e04..237fca7b 100644 --- a/src/UDPTrackerClient.cc +++ b/src/UDPTrackerClient.cc @@ -452,8 +452,8 @@ std::shared_ptr<UDPTrackerRequest> UDPTrackerClient::findInflightRequest bool remove) { std::shared_ptr<UDPTrackerRequest> res; - for(std::deque<std::shared_ptr<UDPTrackerRequest> >::iterator i = - inflightRequests_.begin(), eoi = inflightRequests_.end(); i != eoi; + for(auto i = inflightRequests_.begin(), eoi = inflightRequests_.end(); + i != eoi; ++i) { if((*i)->remoteAddr == remoteAddr && (*i)->remotePort == remotePort && (*i)->transactionId == transactionId) { @@ -470,9 +470,7 @@ std::shared_ptr<UDPTrackerRequest> UDPTrackerClient::findInflightRequest UDPTrackerConnection* UDPTrackerClient::getConnectionId (const std::string& remoteAddr, uint16_t remotePort, const Timer& now) { - std::map<std::pair<std::string, uint16_t>, - UDPTrackerConnection>::iterator i = - connectionIdCache_.find(std::make_pair(remoteAddr, remotePort)); + auto i = connectionIdCache_.find(std::make_pair(remoteAddr, remotePort)); if(i == connectionIdCache_.end()) { return nullptr; } diff --git a/src/UTMetadataRequestTracker.cc b/src/UTMetadataRequestTracker.cc index 4672581f..382f13dc 100644 --- a/src/UTMetadataRequestTracker.cc +++ b/src/UTMetadataRequestTracker.cc @@ -57,9 +57,8 @@ bool UTMetadataRequestTracker::tracks(size_t index) void UTMetadataRequestTracker::remove(size_t index) { - std::vector<RequestEntry>::iterator i = - std::find(trackedRequests_.begin(), trackedRequests_.end(), - RequestEntry(index)); + auto i = std::find(trackedRequests_.begin(), trackedRequests_.end(), + RequestEntry(index)); if(i != trackedRequests_.end()) { trackedRequests_.erase(i); } @@ -109,8 +108,7 @@ size_t UTMetadataRequestTracker::avail() const std::vector<size_t> UTMetadataRequestTracker::getAllTrackedIndex() const { std::vector<size_t> indexes; - for(std::vector<RequestEntry>::const_iterator i = trackedRequests_.begin(), - eoi = trackedRequests_.end(); i != eoi; ++i) { + for(auto i = trackedRequests_.begin(), eoi = trackedRequests_.end(); i != eoi; ++i) { indexes.push_back((*i).index_); } return indexes; diff --git a/src/UnknownLengthPieceStorage.cc b/src/UnknownLengthPieceStorage.cc index 8813e9bb..2a50f2b5 100644 --- a/src/UnknownLengthPieceStorage.cc +++ b/src/UnknownLengthPieceStorage.cc @@ -57,7 +57,7 @@ UnknownLengthPieceStorage::~UnknownLengthPieceStorage() {} void UnknownLengthPieceStorage::initStorage() { - DirectDiskAdaptor* directDiskAdaptor(new DirectDiskAdaptor()); + auto directDiskAdaptor(new DirectDiskAdaptor()); directDiskAdaptor->setTotalLength(downloadContext_->getTotalLength()); directDiskAdaptor->setFileEntries(downloadContext_->getFileEntries().begin(), downloadContext_->getFileEntries().end()); diff --git a/src/ValueBaseStructParserStateMachine.cc b/src/ValueBaseStructParserStateMachine.cc index 705ce014..9050fd99 100644 --- a/src/ValueBaseStructParserStateMachine.cc +++ b/src/ValueBaseStructParserStateMachine.cc @@ -43,25 +43,25 @@ namespace aria2 { namespace { -ValueValueBaseStructParserState* valueState = +auto valueState = new ValueValueBaseStructParserState(); -DictValueBaseStructParserState* dictState = +auto dictState = new DictValueBaseStructParserState(); -DictKeyValueBaseStructParserState* dictKeyState = +auto dictKeyState = new DictKeyValueBaseStructParserState(); -DictDataValueBaseStructParserState* dictDataState = +auto dictDataState = new DictDataValueBaseStructParserState(); -ArrayValueBaseStructParserState* arrayState = +auto arrayState = new ArrayValueBaseStructParserState(); -ArrayDataValueBaseStructParserState* arrayDataState = +auto arrayDataState = new ArrayDataValueBaseStructParserState(); -StringValueBaseStructParserState* stringState = +auto stringState = new StringValueBaseStructParserState(); -NumberValueBaseStructParserState* numberState = +auto numberState = new NumberValueBaseStructParserState(); -BoolValueBaseStructParserState* boolState = +auto boolState = new BoolValueBaseStructParserState(); -NullValueBaseStructParserState* nullState = +auto nullState = new NullValueBaseStructParserState(); } // namespace diff --git a/src/XmlRpcRequestParserStateMachine.cc b/src/XmlRpcRequestParserStateMachine.cc index 73917a49..466e4ef0 100644 --- a/src/XmlRpcRequestParserStateMachine.cc +++ b/src/XmlRpcRequestParserStateMachine.cc @@ -41,53 +41,37 @@ namespace aria2 { namespace rpc { namespace { -InitialXmlRpcRequestParserState* -initialState = new InitialXmlRpcRequestParserState(); +auto initialState = new InitialXmlRpcRequestParserState(); -UnknownElementXmlRpcRequestParserState* -unknownElementState = new UnknownElementXmlRpcRequestParserState(); +auto unknownElementState = new UnknownElementXmlRpcRequestParserState(); -MethodCallXmlRpcRequestParserState* -methodCallState = new MethodCallXmlRpcRequestParserState(); +auto methodCallState = new MethodCallXmlRpcRequestParserState(); -MethodNameXmlRpcRequestParserState* -methodNameState = new MethodNameXmlRpcRequestParserState(); +auto methodNameState = new MethodNameXmlRpcRequestParserState(); -ParamsXmlRpcRequestParserState* -paramsState = new ParamsXmlRpcRequestParserState(); +auto paramsState = new ParamsXmlRpcRequestParserState(); -ParamXmlRpcRequestParserState* -paramState = new ParamXmlRpcRequestParserState(); +auto paramState = new ParamXmlRpcRequestParserState(); -ValueXmlRpcRequestParserState* -valueState = new ValueXmlRpcRequestParserState(); +auto valueState = new ValueXmlRpcRequestParserState(); -IntXmlRpcRequestParserState* -intState = new IntXmlRpcRequestParserState(); +auto intState = new IntXmlRpcRequestParserState(); -StringXmlRpcRequestParserState* -stringState = new StringXmlRpcRequestParserState(); +auto stringState = new StringXmlRpcRequestParserState(); -Base64XmlRpcRequestParserState* -base64State = new Base64XmlRpcRequestParserState(); +auto base64State = new Base64XmlRpcRequestParserState(); -StructXmlRpcRequestParserState* -structState = new StructXmlRpcRequestParserState(); +auto structState = new StructXmlRpcRequestParserState(); -MemberXmlRpcRequestParserState* -memberState = new MemberXmlRpcRequestParserState(); +auto memberState = new MemberXmlRpcRequestParserState(); -NameXmlRpcRequestParserState* -nameState = new NameXmlRpcRequestParserState(); +auto nameState = new NameXmlRpcRequestParserState(); -ArrayXmlRpcRequestParserState* -arrayState = new ArrayXmlRpcRequestParserState(); +auto arrayState = new ArrayXmlRpcRequestParserState(); -DataXmlRpcRequestParserState* -dataState = new DataXmlRpcRequestParserState(); +auto dataState = new DataXmlRpcRequestParserState(); -ArrayValueXmlRpcRequestParserState* -arrayValueState = new ArrayValueXmlRpcRequestParserState(); +auto arrayValueState = new ArrayValueXmlRpcRequestParserState(); } // namespace XmlRpcRequestParserStateMachine::XmlRpcRequestParserStateMachine(): diff --git a/src/ZeroBtMessage.cc b/src/ZeroBtMessage.cc index 582b657c..63834dcb 100644 --- a/src/ZeroBtMessage.cc +++ b/src/ZeroBtMessage.cc @@ -48,7 +48,7 @@ unsigned char* ZeroBtMessage::createMessage() * id --- ?, 1byte * total: 5bytes */ - unsigned char* msg = new unsigned char[MESSAGE_LENGTH]; + auto msg = new unsigned char[MESSAGE_LENGTH]; bittorrent::createPeerMessageString(msg, MESSAGE_LENGTH, 1, getId()); return msg; } diff --git a/src/bittorrent_helper.cc b/src/bittorrent_helper.cc index 3deba170..d4e0d18a 100644 --- a/src/bittorrent_helper.cc +++ b/src/bittorrent_helper.cc @@ -154,9 +154,8 @@ void extractUrlList virtual void visit(const List& v) CXX11_OVERRIDE { - for(List::ValueType::const_iterator itr = v.begin(), eoi = v.end(); - itr != eoi; ++itr) { - const String* uri = downcast<String>(*itr); + for(auto & elem : v) { + const String* uri = downcast<String>(elem); if(uri) { std::string utf8Uri = util::encodeNonUtf8(uri->s()); uris_.push_back(utf8Uri); @@ -235,9 +234,8 @@ void extractFileEntries int64_t offset = 0; // multi-file mode torrent->mode = BT_FILE_MODE_MULTI; - for(List::ValueType::const_iterator itr = filesList->begin(), - eoi = filesList->end(); itr != eoi; ++itr) { - const Dict* fileDict = downcast<Dict>(*itr); + for(auto & f : *filesList) { + const Dict* fileDict = downcast<Dict>(f); if(!fileDict) { continue; } @@ -267,11 +265,10 @@ void extractFileEntries std::vector<std::string> pathelem(pathList->size()+1); pathelem[0] = utf8Name; - std::vector<std::string>::iterator pathelemOutItr = pathelem.begin(); + auto pathelemOutItr = pathelem.begin(); ++pathelemOutItr; - for(List::ValueType::const_iterator itr = pathList->begin(), - eoi = pathList->end(); itr != eoi; ++itr) { - const String* elem = downcast<String>(*itr); + for(auto & p : *pathList) { + const String* elem = downcast<String>(p); if(elem) { (*pathelemOutItr++) = elem->s(); } else { @@ -315,12 +312,11 @@ void extractFileEntries // For each uri in urlList, if it ends with '/', then // concatenate name to it. Specification just says so. std::vector<std::string> uris; - for(std::vector<std::string>::const_iterator i = urlList.begin(), - eoi = urlList.end(); i != eoi; ++i) { - if(!(*i).empty() && (*i)[(*i).size()-1] == '/') { - uris.push_back((*i)+util::percentEncode(utf8Name)); + for(auto & elem : urlList) { + if(!elem.empty() && elem[elem.size()-1] == '/') { + uris.push_back(elem+util::percentEncode(utf8Name)); } else { - uris.push_back(*i); + uris.push_back(elem); } } std::shared_ptr<FileEntry> fileEntry @@ -344,16 +340,14 @@ void extractAnnounce(TorrentAttribute* torrent, const Dict* rootDict) { const List* announceList = downcast<List>(rootDict->get(C_ANNOUNCE_LIST)); if(announceList) { - for(List::ValueType::const_iterator tierIter = announceList->begin(), - eoi = announceList->end(); tierIter != eoi; ++tierIter) { - const List* tier = downcast<List>(*tierIter); + for(auto & elem : *announceList) { + const List* tier = downcast<List>(elem); if(!tier) { continue; } std::vector<std::string> ntier; - for(List::ValueType::const_iterator uriIter = tier->begin(), - eoi2 = tier->end(); uriIter != eoi2; ++uriIter) { - const String* uri = downcast<String>(*uriIter); + for(auto & t : *tier) { + const String* uri = downcast<String>(t); if(uri) { ntier.push_back(util::encodeNonUtf8(util::strip(uri->s()))); } @@ -378,9 +372,8 @@ void extractNodes(TorrentAttribute* torrent, const ValueBase* nodesListSrc) { const List* nodesList = downcast<List>(nodesListSrc); if(nodesList) { - for(List::ValueType::const_iterator i = nodesList->begin(), - eoi = nodesList->end(); i != eoi; ++i) { - const List* addrPairList = downcast<List>(*i); + for(auto & elem : *nodesList) { + const List* addrPairList = downcast<List>(elem); if(!addrPairList || addrPairList->size() != 2) { continue; } @@ -942,9 +935,9 @@ std::unique_ptr<TorrentAttribute> parseMagnet(const std::string& magnet) } const List* trs = downcast<List>(r->get("tr")); if(trs) { - for(auto i = trs->begin(), eoi = trs->end(); i != eoi; ++i) { + for(auto & tr : *trs) { std::vector<std::string> tier; - tier.push_back(util::encodeNonUtf8(downcast<String>(*i)->s())); + tier.push_back(util::encodeNonUtf8(downcast<String>(tr)->s())); attrs->announceList.push_back(tier); } } @@ -973,10 +966,9 @@ std::string metadata2Torrent std::string torrent = "d"; List announceList; - for(auto tierIter = attrs->announceList.begin(), - eoi = attrs->announceList.end(); tierIter != eoi; ++tierIter) { + for(auto & elem : attrs->announceList) { auto tier = List::g(); - for(auto& uri : *tierIter) { + for(auto& uri : elem) { tier->append(uri); } if(!tier->empty()) { @@ -1006,11 +998,9 @@ std::string torrent2Magnet(const TorrentAttribute* attrs) uri += "&dn="; uri += util::percentEncode(attrs->name); } - for(std::vector<std::vector<std::string> >::const_iterator tierIter = - attrs->announceList.begin(), - eoi = attrs->announceList.end(); tierIter != eoi; ++tierIter) { - for(std::vector<std::string>::const_iterator uriIter = (*tierIter).begin(), - eoi2 = (*tierIter).end(); uriIter != eoi2; ++uriIter) { + for(auto & elem : attrs->announceList) { + for(auto uriIter = elem.begin(), + eoi2 = elem.end(); uriIter != eoi2; ++uriIter) { uri += "&tr="; uri += util::percentEncode(*uriIter); } @@ -1036,9 +1026,8 @@ void removeAnnounceUri return; } if(std::find(uris.begin(), uris.end(), "*") == uris.end()) { - for(std::vector<std::vector<std::string> >::iterator i = - attrs->announceList.begin(); i != attrs->announceList.end();) { - for(std::vector<std::string>::iterator j =(*i).begin();j != (*i).end();) { + for(auto i = attrs->announceList.begin(); i != attrs->announceList.end();) { + for(auto j = (*i).begin(); j != (*i).end();) { if(std::find(uris.begin(), uris.end(), *j) == uris.end()) { ++j; } else { @@ -1059,10 +1048,9 @@ void removeAnnounceUri void addAnnounceUri (TorrentAttribute* attrs, const std::vector<std::string>& uris) { - for(std::vector<std::string>::const_iterator i = uris.begin(), - eoi = uris.end(); i != eoi; ++i) { + for(auto & uri : uris) { std::vector<std::string> tier; - tier.push_back(*i); + tier.push_back(uri); attrs->announceList.push_back(tier); } } diff --git a/src/bittorrent_helper.h b/src/bittorrent_helper.h index 890c2a94..60c248b4 100644 --- a/src/bittorrent_helper.h +++ b/src/bittorrent_helper.h @@ -302,9 +302,8 @@ void extractPeer(const ValueBase* peerData, int family, OutputIterator dest) virtual void visit(const List& peerData) CXX11_OVERRIDE { - for(List::ValueType::const_iterator itr = peerData.begin(), - eoi = peerData.end(); itr != eoi; ++itr) { - const Dict* peerDict = downcast<Dict>(*itr); + for(auto & elem : peerData) { + const Dict* peerDict = downcast<Dict>(elem); if(!peerDict) { continue; } @@ -354,9 +353,8 @@ void print(Output& o, const std::shared_ptr<DownloadContext>& dctx) for(std::vector<std::vector<std::string> >::const_iterator tierIter = torrentAttrs->announceList.begin(), eoi = torrentAttrs->announceList.end(); tierIter != eoi; ++tierIter) { - for(std::vector<std::string>::const_iterator i = (*tierIter).begin(), - eoi2 = (*tierIter).end(); i != eoi2; ++i) { - o.printf(" %s", (*i).c_str()); + for(auto & elem : *tierIter) { + o.printf(" %s", elem.c_str()); } o.write("\n"); } diff --git a/src/option_processing.cc b/src/option_processing.cc index dc2e3bbd..73556846 100644 --- a/src/option_processing.cc +++ b/src/option_processing.cc @@ -168,8 +168,8 @@ void showCandidates global::cerr()->printf("\n"); global::cerr()->printf(_("Did you mean:")); global::cerr()->printf("\n"); - for(std::vector<std::pair<int, const Pref*> >::iterator i = cands.begin(), - eoi = cands.end(); i != eoi && (*i).first <= threshold; ++i) { + for(auto i = cands.begin(), eoi = cands.end(); + i != eoi && (*i).first <= threshold; ++i) { global::cerr()->printf("\t--%s\n", (*i).second->k); } } diff --git a/src/paramed_string.h b/src/paramed_string.h index b4b330f5..84953421 100644 --- a/src/paramed_string.h +++ b/src/paramed_string.h @@ -221,9 +221,8 @@ void expand while(first != last) { InputIterator i = first; for(; i != last && *i != '{' && *i != '['; ++i); - for(std::vector<std::string>::iterator j = res.begin(), eoj = res.end(); - j != eoj; ++j) { - (*j).append(first, i); + for(auto & re : res) { + re.append(first, i); } first = i; if(first == last) { diff --git a/src/prefs.cc b/src/prefs.cc index fc7c8e37..bcc3a86d 100644 --- a/src/prefs.cc +++ b/src/prefs.cc @@ -65,7 +65,7 @@ public: Pref* makePref(const char* key) { size_t id = nextId(); - Pref* pref = new Pref(key, id); + auto pref = new Pref(key, id); i2p_.push_back(pref); k2p_[key] = pref; return pref; @@ -81,7 +81,7 @@ public: } const Pref* k2p(const std::string& k) const { - std::map<std::string, const Pref*>::const_iterator i = k2p_.find(k); + auto i = k2p_.find(k); if(i == k2p_.end()) { return i2p_[0]; } else { @@ -96,7 +96,7 @@ private: PrefFactory* getPrefFactory() { - static PrefFactory* pf = new PrefFactory(); + static auto pf = new PrefFactory(); return pf; } diff --git a/src/util.cc b/src/util.cc index 0d6621fe..e0c8b20c 100644 --- a/src/util.cc +++ b/src/util.cc @@ -663,8 +663,7 @@ void computeHeadPieces if(head == 0) { return; } - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator fi = - fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { + for(auto fi = fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { if((*fi)->getLength() == 0) { continue; } @@ -688,8 +687,7 @@ void computeTailPieces if(tail == 0) { return; } - for(std::vector<std::shared_ptr<FileEntry> >::const_iterator fi = - fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { + for(auto fi = fileEntries.begin(), eoi = fileEntries.end(); fi != eoi; ++fi) { if((*fi)->getLength() == 0) { continue; } diff --git a/src/wallclock.cc b/src/wallclock.cc index 4b43b720..6059fce5 100644 --- a/src/wallclock.cc +++ b/src/wallclock.cc @@ -40,7 +40,7 @@ namespace global { Timer& wallclock() { - static Timer* t = new Timer(); + static auto t = new Timer(); return *t; } |
