forked from premiere/premiere-libtorrent
added verbose logging to metadata transfer plugin
This commit is contained in:
parent
5486e17b15
commit
d4dd2d2a31
|
@ -305,6 +305,11 @@ namespace libtorrent { namespace
|
||||||
// abort if the peer doesn't support the metadata extension
|
// abort if the peer doesn't support the metadata extension
|
||||||
if (m_message_index == 0) return;
|
if (m_message_index == 0) return;
|
||||||
|
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " ==> METADATA_REQUEST [ start: " << start << " | size: " << size << " ]\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
buffer::interval i = m_pc.allocate_send_buffer(9);
|
buffer::interval i = m_pc.allocate_send_buffer(9);
|
||||||
|
|
||||||
detail::write_uint32(1 + 1 + 3, i.begin);
|
detail::write_uint32(1 + 1 + 3, i.begin);
|
||||||
|
@ -335,8 +340,18 @@ namespace libtorrent { namespace
|
||||||
std::pair<int, int> offset
|
std::pair<int, int> offset
|
||||||
= req_to_offset(req, (int)m_tp.metadata().left());
|
= req_to_offset(req, (int)m_tp.metadata().left());
|
||||||
|
|
||||||
|
// TODO: don't allocate send buffer for the metadata part
|
||||||
|
// just tag it on as a separate buffer like ut_metadata
|
||||||
buffer::interval i = m_pc.allocate_send_buffer(15 + offset.second);
|
buffer::interval i = m_pc.allocate_send_buffer(15 + offset.second);
|
||||||
|
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " ==> METADATA [ start: " << req.first
|
||||||
|
<< " | size: " << req.second
|
||||||
|
<< " | offset: " << offset.first
|
||||||
|
<< " | byte_size: " << offset.second
|
||||||
|
<< " ]\n";
|
||||||
|
#endif
|
||||||
// yes, we have metadata, send it
|
// yes, we have metadata, send it
|
||||||
detail::write_uint32(11 + offset.second, i.begin);
|
detail::write_uint32(11 + offset.second, i.begin);
|
||||||
detail::write_uint8(bt_peer_connection::msg_extended, i.begin);
|
detail::write_uint8(bt_peer_connection::msg_extended, i.begin);
|
||||||
|
@ -353,6 +368,10 @@ namespace libtorrent { namespace
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " ==> DONT HAVE METADATA\n";
|
||||||
|
#endif
|
||||||
buffer::interval i = m_pc.allocate_send_buffer(4 + 3);
|
buffer::interval i = m_pc.allocate_send_buffer(4 + 3);
|
||||||
// we don't have the metadata, reply with
|
// we don't have the metadata, reply with
|
||||||
// don't have-message
|
// don't have-message
|
||||||
|
@ -389,6 +408,13 @@ namespace libtorrent { namespace
|
||||||
int start = detail::read_uint8(body.begin);
|
int start = detail::read_uint8(body.begin);
|
||||||
int size = detail::read_uint8(body.begin) + 1;
|
int size = detail::read_uint8(body.begin) + 1;
|
||||||
|
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " <== METADATA_REQUEST [ start: " << start
|
||||||
|
<< " | size: " << size
|
||||||
|
<< " ]\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
if (length != 3)
|
if (length != 3)
|
||||||
{
|
{
|
||||||
// invalid metadata request
|
// invalid metadata request
|
||||||
|
@ -407,6 +433,14 @@ namespace libtorrent { namespace
|
||||||
int offset = detail::read_int32(body.begin);
|
int offset = detail::read_int32(body.begin);
|
||||||
int data_size = length - 9;
|
int data_size = length - 9;
|
||||||
|
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " <== METADATA [ total_size: " << total_size
|
||||||
|
<< " | offset: " << offset
|
||||||
|
<< " | data_size: " << data_size
|
||||||
|
<< " ]\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
if (total_size > 500 * 1024)
|
if (total_size > 500 * 1024)
|
||||||
{
|
{
|
||||||
m_pc.disconnect("metadata size larger than 500 kB");
|
m_pc.disconnect("metadata size larger than 500 kB");
|
||||||
|
@ -445,6 +479,10 @@ namespace libtorrent { namespace
|
||||||
if (m_waiting_metadata_request)
|
if (m_waiting_metadata_request)
|
||||||
m_tp.cancel_metadata_request(m_last_metadata_request);
|
m_tp.cancel_metadata_request(m_last_metadata_request);
|
||||||
m_waiting_metadata_request = false;
|
m_waiting_metadata_request = false;
|
||||||
|
#ifdef TORRENT_VERBOSE_LOGGING
|
||||||
|
(*m_pc.m_logger) << time_now_string()
|
||||||
|
<< " <== DONT HAVE METADATA\n";
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue