*** empty log message ***

This commit is contained in:
Arvid Norberg
2004-01-05 01:30:34 +00:00
parent e2baa0a646
commit b637368c65
2 changed files with 54 additions and 35 deletions

View File

@@ -192,7 +192,7 @@ int main(int argc, char* argv[])
// limit upload rate to 100 kB/s // limit upload rate to 100 kB/s
ses.set_upload_rate_limit(100 * 1024); ses.set_upload_rate_limit(100 * 1024);
ses.set_http_settings(settings); ses.set_http_settings(settings);
ses.set_severity_level(alert::info); ses.set_severity_level(alert::debug);
for (int i = 0; i < argc-1; ++i) for (int i = 0; i < argc-1; ++i)
{ {
@@ -244,7 +244,7 @@ int main(int argc, char* argv[])
a = ses.pop_alert(); a = ses.pop_alert();
while (a.get()) while (a.get())
{ {
if (events.size() >= 6) events.pop_front(); if (events.size() >= 10) events.pop_front();
events.push_front(a->msg()); events.push_front(a->msg());
a = ses.pop_alert(); a = ses.pop_alert();
} }

View File

@@ -240,7 +240,7 @@ namespace libtorrent
, m_send_buffer.begin() + pos); , m_send_buffer.begin() + pos);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> HANDSHAKE\n"; (*m_logger) << " ==> HANDSHAKE\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
@@ -343,7 +343,7 @@ namespace libtorrent
if (m_recv_pos < m_packet_size) return; if (m_recv_pos < m_packet_size) return;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " <== INTERESTED\n"; (*m_logger) << " <== INTERESTED\n";
#endif #endif
m_peer_interested = true; m_peer_interested = true;
m_torrent->get_policy().interested(*this); m_torrent->get_policy().interested(*this);
@@ -388,13 +388,13 @@ namespace libtorrent
throw protocol_error("have message with higher index than the number of pieces"); throw protocol_error("have message with higher index than the number of pieces");
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " <== HAVE [ piece: " << index << "]\n"; (*m_logger) << " <== HAVE [ piece: " << index << "]\n";
#endif #endif
if (m_have_piece[index]) if (m_have_piece[index])
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " oops.. we already knew that: " << index << "\n"; (*m_logger) << " oops.. we already knew that: " << index << "\n";
#endif #endif
} }
else else
@@ -419,7 +419,7 @@ namespace libtorrent
if (m_recv_pos < m_packet_size) return; if (m_recv_pos < m_packet_size) return;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " <== BITFIELD\n"; (*m_logger) << " <== BITFIELD\n";
#endif #endif
// build a vector of all pieces // build a vector of all pieces
std::vector<int> piece_list; std::vector<int> piece_list;
@@ -489,21 +489,31 @@ namespace libtorrent
&& r.start >= 0 && r.start >= 0
&& r.start < m_torrent->torrent_file().piece_size(r.piece) && r.start < m_torrent->torrent_file().piece_size(r.piece)
&& r.length > 0 && r.length > 0
&& r.length + r.start < m_torrent->torrent_file().piece_size(r.piece) && r.length + r.start <= m_torrent->torrent_file().piece_size(r.piece)
&& m_peer_interested) && m_peer_interested)
{ {
// if we have choked the client // if we have choked the client
// ignore the request // ignore the request
if (m_choked) return; if (m_choked)
return;
m_requests.push_back(r); m_requests.push_back(r);
send_buffer_updated(); send_buffer_updated();
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " <== REQUEST [ piece: " << r.piece << " | s: " << r.start << " | l: " << r.length << " ]\n"; (*m_logger) << " <== REQUEST [ piece: " << r.piece << " | s: " << r.start << " | l: " << r.length << " ]\n";
#endif #endif
} }
else else
{ {
#ifndef NDEBUG
(*m_logger) << " <== INVALID REQUEST [ "
"piece: " << r.piece << " | "
"s: " << r.start << " | "
"l: " << r.length << " | "
"i: " << m_peer_interested << " | "
"t: " << (int)m_torrent->torrent_file().piece_size(r.piece) << " | "
"n: " << m_torrent->torrent_file().num_pieces() << " ]\n";
#endif
// TODO: log this illegal request // TODO: log this illegal request
} }
} }
@@ -796,7 +806,7 @@ namespace libtorrent
detail::write_int(block_size, ptr); detail::write_int(block_size, ptr);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> CANCEL [ piece: " << block.piece_index << " | s: " << block_offset << " | l: " << block_size << " | " << block.block_index << " ]\n"; (*m_logger) << " ==> CANCEL [ piece: " << block.piece_index << " | s: " << block_offset << " | l: " << block_size << " | " << block.block_index << " ]\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
@@ -837,7 +847,7 @@ namespace libtorrent
detail::write_int(block_size, ptr); detail::write_int(block_size, ptr);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> REQUEST [ piece: " << block.piece_index << " | s: " << block_offset << " | l: " << block_size << " | " << block.block_index << " ]\n"; (*m_logger) << " ==> REQUEST [ piece: " << block.piece_index << " | s: " << block_offset << " | l: " << block_size << " | " << block.block_index << " ]\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
@@ -846,7 +856,7 @@ namespace libtorrent
void peer_connection::send_bitfield() void peer_connection::send_bitfield()
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> BITFIELD\n"; (*m_logger) << " ==> BITFIELD\n";
#endif #endif
const int packet_size = (m_have_piece.size() + 7) / 8 + 5; const int packet_size = (m_have_piece.size() + 7) / 8 + 5;
const int old_size = m_send_buffer.size(); const int old_size = m_send_buffer.size();
@@ -866,7 +876,7 @@ namespace libtorrent
void peer_connection::send_extensions() void peer_connection::send_extensions()
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> EXTENSIONS\n"; (*m_logger) << " ==> EXTENSIONS\n";
#endif #endif
assert(m_supports_extensions); assert(m_supports_extensions);
@@ -905,7 +915,7 @@ namespace libtorrent
m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg)); m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg));
m_choked = true; m_choked = true;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> CHOKE\n"; (*m_logger) << " ==> CHOKE\n";
#endif #endif
m_requests.clear(); m_requests.clear();
send_buffer_updated(); send_buffer_updated();
@@ -918,7 +928,7 @@ namespace libtorrent
m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg)); m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg));
m_choked = false; m_choked = false;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> UNCHOKE\n"; (*m_logger) << " ==> UNCHOKE\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
} }
@@ -930,7 +940,7 @@ namespace libtorrent
m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg)); m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg));
m_interesting = true; m_interesting = true;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> INTERESTED\n"; (*m_logger) << " ==> INTERESTED\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
} }
@@ -942,7 +952,7 @@ namespace libtorrent
m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg)); m_send_buffer.insert(m_send_buffer.end(), msg, msg+sizeof(msg));
m_interesting = false; m_interesting = false;
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> NOT_INTERESTED\n"; (*m_logger) << " ==> NOT_INTERESTED\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
} }
@@ -955,7 +965,7 @@ namespace libtorrent
detail::write_int(index, ptr); detail::write_int(index, ptr);
m_send_buffer.insert(m_send_buffer.end(), msg, msg + packet_size); m_send_buffer.insert(m_send_buffer.end(), msg, msg + packet_size);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> HAVE [ piece: " << index << " ]\n"; (*m_logger) << " ==> HAVE [ piece: " << index << " ]\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
} }
@@ -1021,7 +1031,7 @@ namespace libtorrent
// connection closed // connection closed
if (received == 0) if (received == 0)
{ {
throw network_error(0); throw protocol_error("connection closed by remote host");
} }
// an error // an error
@@ -1052,18 +1062,22 @@ namespace libtorrent
m_packet_size = reinterpret_cast<unsigned char&>(m_recv_buffer[0]); m_packet_size = reinterpret_cast<unsigned char&>(m_recv_buffer[0]);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " protocol length: " << m_packet_size << "\n"; (*m_logger) << " protocol length: " << m_packet_size << "\n";
#endif #endif
m_state = read_protocol_string; m_state = read_protocol_string;
m_recv_buffer.resize(m_packet_size); m_recv_buffer.resize(m_packet_size);
m_recv_pos = 0; m_recv_pos = 0;
if (m_packet_size == 0) if (m_packet_size != 19)
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << "incorrect protocol length\n"; (*m_logger) << "incorrect protocol length\n";
#endif #endif
throw network_error(0); std::stringstream s;
s << "received incorrect protocol length ("
<< m_packet_size
<< ") should be 19.";
throw protocol_error(s.str());
} }
break; break;
@@ -1074,7 +1088,7 @@ namespace libtorrent
if (m_recv_pos < m_packet_size) break; if (m_recv_pos < m_packet_size) break;
assert(m_recv_pos == m_packet_size); assert(m_recv_pos == m_packet_size);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " protocol: '" << std::string(m_recv_buffer.begin(), m_recv_buffer.end()) << "'\n"; (*m_logger) << " protocol: '" << std::string(m_recv_buffer.begin(), m_recv_buffer.end()) << "'\n";
#endif #endif
const char protocol_string[] = "BitTorrent protocol"; const char protocol_string[] = "BitTorrent protocol";
const int protocol_len = sizeof(protocol_string) - 1; const int protocol_len = sizeof(protocol_string) - 1;
@@ -1083,7 +1097,11 @@ namespace libtorrent
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << "incorrect protocol name\n"; (*m_logger) << "incorrect protocol name\n";
#endif #endif
throw network_error(0); std::stringstream s;
s << "got invalid protocol name: '"
<< std::string(m_recv_buffer.begin(), m_recv_buffer.end())
<< "'";
throw protocol_error(s.str());
} }
m_state = read_info_hash; m_state = read_info_hash;
@@ -1123,9 +1141,9 @@ namespace libtorrent
{ {
// we couldn't find the torrent! // we couldn't find the torrent!
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " couldn't find a torrent with the given info_hash\n"; (*m_logger) << " couldn't find a torrent with the given info_hash\n";
#endif #endif
throw network_error(0); throw protocol_error("got info-hash that is not in our session");
} }
// assume the other end has no pieces // assume the other end has no pieces
@@ -1144,9 +1162,9 @@ namespace libtorrent
if (!std::equal(m_recv_buffer.begin()+8, m_recv_buffer.begin() + 28, (const char*)m_torrent->torrent_file().info_hash().begin())) if (!std::equal(m_recv_buffer.begin()+8, m_recv_buffer.begin() + 28, (const char*)m_torrent->torrent_file().info_hash().begin()))
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " received invalid info_hash\n"; (*m_logger) << " received invalid info_hash\n";
#endif #endif
throw network_error(0); throw protocol_error("invalid info-hash in handshake");
} }
} }
@@ -1157,7 +1175,7 @@ namespace libtorrent
m_recv_pos = 0; m_recv_pos = 0;
m_recv_buffer.resize(20); m_recv_buffer.resize(20);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " info_hash received\n"; (*m_logger) << " info_hash received\n";
#endif #endif
break; break;
} }
@@ -1233,10 +1251,10 @@ namespace libtorrent
if (m_packet_size > 1024*1024 || m_packet_size < 0) if (m_packet_size > 1024*1024 || m_packet_size < 0)
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " packet too large (packet_size > 1 Megabyte), abort\n"; (*m_logger) << " packet too large (packet_size > 1 Megabyte), abort\n";
#endif #endif
// packet too large // packet too large
throw network_error(0); throw protocol_error("packet > 1 MB");
} }
if (m_packet_size == 0) if (m_packet_size == 0)
@@ -1336,14 +1354,14 @@ namespace libtorrent
, r.start , r.start
, r.length); , r.length);
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> PIECE [ piece: " << r.piece << " | s: " << r.start << " | l: " << r.length << " ]\n"; (*m_logger) << " ==> PIECE [ piece: " << r.piece << " | s: " << r.start << " | l: " << r.length << " ]\n";
#endif #endif
m_payloads.push_back(range(send_buffer_offset+13, r.length)); m_payloads.push_back(range(send_buffer_offset+13, r.length));
} }
else else
{ {
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() (*m_logger)
<< " *** WARNING [ illegal piece request idx: " << r.piece << " *** WARNING [ illegal piece request idx: " << r.piece
<< " | s: " << r.start << " | s: " << r.start
<< " | l: " << r.length << " | l: " << r.length
@@ -1457,6 +1475,7 @@ namespace libtorrent
if (m_socket->is_writable()) if (m_socket->is_writable())
{ {
std::cout << "ERROR\n"; std::cout << "ERROR\n";
assert(false);
} }
} }
#endif #endif
@@ -1473,7 +1492,7 @@ namespace libtorrent
m_send_buffer.insert(m_send_buffer.end(), noop, noop+4); m_send_buffer.insert(m_send_buffer.end(), noop, noop+4);
m_last_sent = boost::posix_time::second_clock::local_time(); m_last_sent = boost::posix_time::second_clock::local_time();
#ifndef NDEBUG #ifndef NDEBUG
(*m_logger) << m_socket->sender().as_string() << " ==> NOP\n"; (*m_logger) << " ==> NOP\n";
#endif #endif
send_buffer_updated(); send_buffer_updated();
} }