diff --git a/libtorrent/src/peer_connection.cpp b/libtorrent/src/peer_connection.cpp index 5ffca0da9..6cf29e841 100755 --- a/libtorrent/src/peer_connection.cpp +++ b/libtorrent/src/peer_connection.cpp @@ -1158,6 +1158,18 @@ namespace libtorrent boost::shared_ptr t = m_torrent.lock(); TORRENT_ASSERT(t); + if (!is_choked()) + { + if (m_peer_info && m_peer_info->optimistically_unchoked) + { + m_peer_info->optimistically_unchoked = false; + m_ses.m_optimistic_unchoke_time_scaler = 0; + } + t->choke_peer(*this); + --m_ses.m_num_unchoked; + m_ses.m_unchoke_time_scaler = 0; + } + t->get_policy().not_interested(*this); } diff --git a/libtorrent/src/piece_picker.cpp b/libtorrent/src/piece_picker.cpp index a16be1218..6321413ad 100755 --- a/libtorrent/src/piece_picker.cpp +++ b/libtorrent/src/piece_picker.cpp @@ -1129,7 +1129,7 @@ namespace libtorrent if (new_piece_priority == int(p.piece_priority)) return false; int prev_priority = p.priority(this); - TORRENT_ASSERT(m_dirty | prev_priority < int(m_priority_boundries.size())); + TORRENT_ASSERT(m_dirty || prev_priority < int(m_priority_boundries.size())); bool ret = false; if (new_piece_priority == piece_pos::filter_priority