summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNils Maier <maierman@web.de>2013-08-21 05:06:53 +0200
committerNils Maier <maierman@web.de>2013-08-21 05:56:17 +0200
commit8526ceeb452d23d7aa73d01c6cb0fc8ae5e0377b (patch)
tree825b4f5d2a0f18331fbbf24773e80ee0b44b50dc /src
parentd8f44ef4f6c5ad86b08658ecba41a84b775b6e69 (diff)
Convert to autos and ranged loops
Diffstat (limited to 'src')
-rw-r--r--src/AdaptiveURISelector.cc27
-rw-r--r--src/AnnounceList.cc20
-rw-r--r--src/AppleTLSContext.cc2
-rw-r--r--src/AsyncNameResolver.cc5
-rw-r--r--src/BtBitfieldMessage.cc2
-rw-r--r--src/BtDependency.cc23
-rw-r--r--src/BtExtendedMessage.cc2
-rw-r--r--src/BtHandshakeMessage.cc2
-rw-r--r--src/BtKeepAliveMessage.cc2
-rw-r--r--src/BtLeecherStateChoke.cc31
-rw-r--r--src/BtPieceMessage.cc2
-rw-r--r--src/BtPortMessage.cc2
-rw-r--r--src/BtSeederStateChoke.cc4
-rw-r--r--src/BtSetup.cc5
-rw-r--r--src/ConsoleStatCalc.cc2
-rw-r--r--src/Context.cc15
-rw-r--r--src/CookieStorage.cc17
-rw-r--r--src/DHTAutoSaveCommand.cc6
-rw-r--r--src/DHTBucket.cc21
-rw-r--r--src/DHTBucketRefreshTask.cc32
-rw-r--r--src/DHTConnectionImpl.cc5
-rw-r--r--src/DHTMessageFactoryImpl.cc4
-rw-r--r--src/DHTPeerAnnounceEntry.cc7
-rw-r--r--src/DHTPeerAnnounceStorage.cc19
-rw-r--r--src/DHTTokenTracker.cc4
-rw-r--r--src/DNSCache.cc17
-rw-r--r--src/DNSCache.h7
-rw-r--r--src/DefaultBtAnnounce.cc7
-rw-r--r--src/DefaultBtRequestFactory.cc7
-rw-r--r--src/DefaultPeerStorage.cc16
-rw-r--r--src/DefaultPieceStorage.cc47
-rw-r--r--src/DownloadContext.cc17
-rw-r--r--src/DownloadEngine.cc30
-rw-r--r--src/FeedbackURISelector.cc54
-rw-r--r--src/FileEntry.cc74
-rw-r--r--src/GroupId.cc2
-rw-r--r--src/HandshakeExtensionMessage.cc9
-rw-r--r--src/HaveEraseCommand.cc5
-rw-r--r--src/HttpHeader.cc24
-rw-r--r--src/HttpRequest.cc27
-rw-r--r--src/HttpResponse.cc32
-rw-r--r--src/HttpResponseCommand.cc24
-rw-r--r--src/IndexBtMessage.cc2
-rw-r--r--src/LibuvEventPoll.cc28
-rw-r--r--src/MSEHandshake.cc15
-rw-r--r--src/MetalinkParserStateV3Impl.cc68
-rw-r--r--src/MetalinkParserStateV4Impl.cc104
-rw-r--r--src/OptionHandlerImpl.cc39
-rw-r--r--src/OptionParser.cc39
-rw-r--r--src/PeerConnection.cc2
-rw-r--r--src/Piece.cc2
-rw-r--r--src/PollEventPoll.cc2
-rw-r--r--src/PriorityPieceSelector.cc4
-rw-r--r--src/RangeBtMessage.cc2
-rw-r--r--src/RequestGroup.cc6
-rw-r--r--src/RequestGroupMan.cc66
-rw-r--r--src/RpcMethod.cc5
-rw-r--r--src/RpcMethodImpl.cc29
-rw-r--r--src/RpcMethodImpl.h5
-rw-r--r--src/SegmentMan.cc14
-rw-r--r--src/SelectEventPoll.cc8
-rw-r--r--src/SinkStreamFilter.cc2
-rw-r--r--src/SocketCore.cc6
-rw-r--r--src/StreamFileAllocationEntry.cc11
-rw-r--r--src/UDPTrackerClient.cc8
-rw-r--r--src/UTMetadataRequestTracker.cc8
-rw-r--r--src/UnknownLengthPieceStorage.cc2
-rw-r--r--src/ValueBaseStructParserStateMachine.cc20
-rw-r--r--src/XmlRpcRequestParserStateMachine.cc48
-rw-r--r--src/ZeroBtMessage.cc2
-rw-r--r--src/bittorrent_helper.cc68
-rw-r--r--src/bittorrent_helper.h10
-rw-r--r--src/option_processing.cc4
-rw-r--r--src/paramed_string.h5
-rw-r--r--src/prefs.cc6
-rw-r--r--src/util.cc6
-rw-r--r--src/wallclock.cc2
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;
}