mirror of https://github.com/aria2/aria2
Set Peer::chokingRequired(true) for all active peers
parent
12b903f312
commit
22a91dfe12
|
@ -133,9 +133,12 @@ void BtSeederStateChoke::unchoke(
|
||||||
|
|
||||||
auto r = std::begin(peers);
|
auto r = std::begin(peers);
|
||||||
for (; r != std::end(peers) && count; ++r, --count) {
|
for (; r != std::end(peers) && count; ++r, --count) {
|
||||||
(*r).getPeer()->chokingRequired(false);
|
auto& peer = (*r).getPeer();
|
||||||
A2_LOG_INFO(fmt("RU: %s, ulspd=%d", (*r).getPeer()->getIPAddress().c_str(),
|
|
||||||
(*r).getUploadSpeed()));
|
peer->chokingRequired(false);
|
||||||
|
|
||||||
|
A2_LOG_INFO(fmt("RU: %s:%u, ulspd=%d", peer->getIPAddress().c_str(),
|
||||||
|
peer->getPort(), (*r).getUploadSpeed()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (round_ < 2) {
|
if (round_ < 2) {
|
||||||
|
@ -143,8 +146,13 @@ void BtSeederStateChoke::unchoke(
|
||||||
std::mem_fn(&PeerEntry::disableOptUnchoking));
|
std::mem_fn(&PeerEntry::disableOptUnchoking));
|
||||||
if (r != std::end(peers)) {
|
if (r != std::end(peers)) {
|
||||||
std::shuffle(r, std::end(peers), *SimpleRandomizer::getInstance());
|
std::shuffle(r, std::end(peers), *SimpleRandomizer::getInstance());
|
||||||
(*r).getPeer()->optUnchoking(true);
|
|
||||||
A2_LOG_INFO(fmt("POU: %s", (*r).getPeer()->getIPAddress().c_str()));
|
auto& peer = (*r).getPeer();
|
||||||
|
|
||||||
|
peer->optUnchoking(true);
|
||||||
|
|
||||||
|
A2_LOG_INFO(
|
||||||
|
fmt("POU: %s:%u", peer->getIPAddress().c_str(), peer->getPort()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,10 +164,17 @@ void BtSeederStateChoke::executeChoke(const PeerSet& peerSet)
|
||||||
|
|
||||||
std::vector<PeerEntry> peerEntries;
|
std::vector<PeerEntry> peerEntries;
|
||||||
for (const auto& p : peerSet) {
|
for (const auto& p : peerSet) {
|
||||||
if (p->isActive() && p->peerInterested()) {
|
if (!p->isActive()) {
|
||||||
p->chokingRequired(true);
|
continue;
|
||||||
peerEntries.push_back(PeerEntry(p));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p->chokingRequired(true);
|
||||||
|
if (p->peerInterested()) {
|
||||||
|
peerEntries.push_back(PeerEntry(p));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
p->optUnchoking(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
unchoke(peerEntries);
|
unchoke(peerEntries);
|
||||||
|
|
Loading…
Reference in New Issue