lt sync 1746
This commit is contained in:
parent
1ae6dbf871
commit
9afc4ce936
|
@ -123,6 +123,7 @@ public:
|
|||
{
|
||||
m_remote_endpoint = endpoint_type();
|
||||
m_sock.close();
|
||||
m_resolver.cancel();
|
||||
}
|
||||
|
||||
void close(asio::error_code& ec)
|
||||
|
|
|
@ -115,6 +115,7 @@ namespace libtorrent
|
|||
#ifndef TORRENT_DISABLE_DHT
|
||||
, use_dht_as_fallback(true)
|
||||
#endif
|
||||
, free_torrent_hashes(true)
|
||||
{}
|
||||
|
||||
// this is the user agent that will be sent to the tracker
|
||||
|
@ -281,6 +282,12 @@ namespace libtorrent
|
|||
// tracker is online
|
||||
bool use_dht_as_fallback;
|
||||
#endif
|
||||
|
||||
// if this is true, the piece hashes will be freed, in order
|
||||
// to save memory, once the torrent is seeding. This will
|
||||
// make the get_torrent_info() function to return an incomplete
|
||||
// torrent object that cannot be passed back to add_torrent()
|
||||
bool free_torrent_hashes;
|
||||
};
|
||||
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
|
|
|
@ -1272,7 +1272,13 @@ namespace libtorrent
|
|||
{
|
||||
INVARIANT_CHECK;
|
||||
|
||||
TORRENT_ASSERT(m_sent_handshake && m_sent_bitfield);
|
||||
// Don't require the bitfield to have been sent at this point
|
||||
// the case where m_sent_bitfield may not be true is if the
|
||||
// torrent doesn't have any metadata, and a peer is timimg out.
|
||||
// then the keep-alive message will be sent before the bitfield
|
||||
// this is a violation to the original protocol, but necessary
|
||||
// for the metadata extension.
|
||||
TORRENT_ASSERT(m_sent_handshake);
|
||||
|
||||
char msg[] = {0,0,0,0};
|
||||
send_buffer(msg, sizeof(msg));
|
||||
|
@ -2477,6 +2483,11 @@ namespace libtorrent
|
|||
|
||||
TORRENT_ASSERT(!m_rc4_encrypted || m_RC4_handler.get());
|
||||
#endif
|
||||
if (!in_handshake())
|
||||
{
|
||||
TORRENT_ASSERT(m_sent_handshake);
|
||||
}
|
||||
|
||||
if (!m_in_constructor)
|
||||
peer_connection::check_invariant();
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ int distance_exp(node_id const& n1, node_id const& n2)
|
|||
// return the bit-number of the first bit
|
||||
// that differs
|
||||
int bit = byte * 8;
|
||||
for (int b = 7; b > 0; --b)
|
||||
for (int b = 7; b >= 0; --b)
|
||||
if (t >= (1 << b)) return bit + b;
|
||||
return bit;
|
||||
}
|
||||
|
|
|
@ -2317,6 +2317,8 @@ namespace detail
|
|||
void session_impl::stop_lsd()
|
||||
{
|
||||
mutex_t::scoped_lock l(m_mutex);
|
||||
if (m_lsd.get())
|
||||
m_lsd->close();
|
||||
m_lsd = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1153,7 +1153,8 @@ namespace libtorrent
|
|||
if (is_seed())
|
||||
{
|
||||
m_picker.reset();
|
||||
m_torrent_file->seed_free();
|
||||
if (m_ses.settings().free_torrent_hashes)
|
||||
m_torrent_file->seed_free();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2347,7 +2348,8 @@ namespace libtorrent
|
|||
if (is_seed())
|
||||
{
|
||||
m_picker.reset();
|
||||
m_torrent_file->seed_free();
|
||||
if (m_ses.settings().free_torrent_hashes)
|
||||
m_torrent_file->seed_free();
|
||||
}
|
||||
|
||||
if (!m_connections_initialized)
|
||||
|
|
Loading…
Reference in New Issue