bandwidth manager fix
This commit is contained in:
parent
91531deb6d
commit
d355a42af8
|
@ -225,8 +225,14 @@ struct bandwidth_manager
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TORRENT_ASSERT(peer->max_assignable_bandwidth(m_channel) > 0);
|
|
||||||
boost::shared_ptr<Torrent> t = peer->associated_torrent().lock();
|
boost::shared_ptr<Torrent> t = peer->associated_torrent().lock();
|
||||||
|
|
||||||
|
if (peer->max_assignable_bandwidth(m_channel) == 0)
|
||||||
|
{
|
||||||
|
t->expire_bandwidth(m_channel, blk);
|
||||||
|
peer->assign_bandwidth(m_channel, 0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_queue.push_back(bw_queue_entry<PeerConnection>(peer, blk, non_prioritized));
|
m_queue.push_back(bw_queue_entry<PeerConnection>(peer, blk, non_prioritized));
|
||||||
if (!non_prioritized)
|
if (!non_prioritized)
|
||||||
{
|
{
|
||||||
|
@ -389,6 +395,7 @@ private:
|
||||||
if (max_assignable == 0)
|
if (max_assignable == 0)
|
||||||
{
|
{
|
||||||
t->expire_bandwidth(m_channel, qe.max_block_size);
|
t->expire_bandwidth(m_channel, qe.max_block_size);
|
||||||
|
qe.peer->assign_bandwidth(m_channel, 0);
|
||||||
TORRENT_ASSERT(amount == limit - m_current_quota);
|
TORRENT_ASSERT(amount == limit - m_current_quota);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,7 +217,7 @@ bool rpc_manager::incoming(msg const& m)
|
||||||
{
|
{
|
||||||
#ifdef TORRENT_DHT_VERBOSE_LOGGING
|
#ifdef TORRENT_DHT_VERBOSE_LOGGING
|
||||||
TORRENT_LOG(rpc) << "Reply with incorrect address and valid transaction id: "
|
TORRENT_LOG(rpc) << "Reply with incorrect address and valid transaction id: "
|
||||||
<< tid << " from " << m.addr;
|
<< tid << " from " << m.addr << " expected: " << o->target_addr;
|
||||||
#endif
|
#endif
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1836,7 +1836,7 @@ namespace detail
|
||||||
t.abort();
|
t.abort();
|
||||||
|
|
||||||
if ((!t.is_paused() || t.should_request())
|
if ((!t.is_paused() || t.should_request())
|
||||||
&& !t.torrent_file().trackers().empty())
|
&& !t.trackers().empty())
|
||||||
{
|
{
|
||||||
tracker_request req = t.generate_tracker_request();
|
tracker_request req = t.generate_tracker_request();
|
||||||
TORRENT_ASSERT(req.event == tracker_request::stopped);
|
TORRENT_ASSERT(req.event == tracker_request::stopped);
|
||||||
|
|
|
@ -2760,6 +2760,8 @@ namespace libtorrent
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
disconnect_all();
|
disconnect_all();
|
||||||
|
if (!m_paused)
|
||||||
|
m_just_paused = true;
|
||||||
m_paused = true;
|
m_paused = true;
|
||||||
// tell the tracker that we stopped
|
// tell the tracker that we stopped
|
||||||
m_event = tracker_request::stopped;
|
m_event = tracker_request::stopped;
|
||||||
|
|
Loading…
Reference in New Issue