*** empty log message ***

This commit is contained in:
Arvid Norberg 2004-11-30 11:17:32 +00:00
parent 705e40fda6
commit bc774ff491
9 changed files with 39 additions and 29 deletions

View File

@ -103,9 +103,9 @@ namespace libtorrent
struct file_logger: libtorrent::logger
{
public:
file_logger(const char* filename)
: m_file(boost::filesystem::complete(filename))
{ assert(filename); }
file_logger(boost::filesystem::path const& filename)
: m_file(boost::filesystem::complete("libtorrent_logs" / filename))
{}
virtual void log(const char* text) { assert(text); m_file << text; }
boost::filesystem::ofstream m_file;

View File

@ -150,7 +150,7 @@ namespace libtorrent
// marked as being downloaded. If the user of this function
// decides to download a piece, it must mark it as being downloaded
// itself, by using the mark_as_downloading() member function.
// THIS IS DONE BY THE peer_connection::request_piece() MEMBER FUNCTION!
// THIS IS DONE BY THE peer_connection::send_request() MEMBER FUNCTION!
void pick_pieces(const std::vector<bool>& pieces,
std::vector<piece_block>& interesting_blocks,
int num_pieces) const;

View File

@ -256,7 +256,7 @@ namespace libtorrent
#ifndef NDEBUG
void check_invariant(const char *place = 0);
boost::shared_ptr<logger> create_log(std::string name);
boost::shared_ptr<logger> create_log(std::string const& name);
boost::shared_ptr<logger> m_logger;
#endif
};

View File

@ -82,6 +82,8 @@ namespace libtorrent
, total_payload_upload(0)
, download_rate(0)
, upload_rate(0)
, download_payload_rate(0)
, upload_payload_rate(0)
, num_peers(0)
, pieces(0)
, total_done(0)
@ -203,10 +205,9 @@ namespace libtorrent
// kind of similar to get_torrent_info() but this
// is low level, returning the exact info-part of
// the .torrent file. This when hashed, this buffer
// will produce the same hash as the info hash.
// the reference is valid only as long as the torrent
// is running.
// the .torrent file. When hashed, this buffer
// will produce the info hash. The reference is valid
// only as long as the torrent is running.
std::vector<char> const& metadata() const;
// forces this torrent to reannounce

View File

@ -30,9 +30,9 @@ POSSIBILITY OF SUCH DAMAGE.
*/
#include <vector>
#include <iostream>
#include <iomanip>
#include <vector>
#include <limits>
#include "libtorrent/peer_connection.hpp"
@ -783,7 +783,7 @@ namespace libtorrent
return;
}
if (m_requests.size() > 40)
if (m_requests.size() > 100)
{
// don't allow clients to abuse our
// memory consumption.
@ -804,7 +804,7 @@ namespace libtorrent
}
// make sure this request
// is legal and taht the peer
// is legal and that the peer
// is not choked
if (r.piece >= 0
&& r.piece < m_torrent->torrent_file().num_pieces()
@ -2154,8 +2154,9 @@ namespace libtorrent
// only add new piece-chunks if the send buffer is small enough
// otherwise there will be no end to how large it will be!
// TODO: the buffer size should probably be dependent on the transfer speed
while (!m_requests.empty()
&& ((int)m_send_buffer.size() < m_torrent->block_size())
&& ((int)m_send_buffer.size() < m_torrent->block_size() * 6)
&& !m_choked)
{
assert(m_torrent->valid_metadata());

View File

@ -64,7 +64,7 @@ namespace
enum
{
// the limits of the download queue size
max_request_queue = 16,
max_request_queue = 100,
min_request_queue = 2,
// the amount of free upload allowed before
@ -84,13 +84,14 @@ namespace
, std::vector<peer_connection*> ignore = std::vector<peer_connection*>())
{
// this will make the number of requests linearly dependent
// on the rate in which we download from the peer. 2.5kB/s and
// less will make the desired queue size 2 and at about 70 kB/s
// it will reach the maximum of 16 requests.
// matlab expression to plot:
// x = 1:100:100000; plot(x, round(min(max(x ./ 5000 + 1.5, 4), 16)));
// on the rate in which we download from the peer.
// we want the queue to represent:
const int queue_time = 5; // seconds
// (if the latency is more than this, the download will stall)
// so, the queue size is 5 * down_rate / 16 kiB (16 kB is the size of each request)
// the minimum request size is 2 and the maximum is 100
int desired_queue_size = static_cast<int>(c.statistics().download_rate() / 5000.f + 1.5f);
int desired_queue_size = static_cast<int>(5.f * c.statistics().download_rate() / (16 * 1024));
if (desired_queue_size > max_request_queue) desired_queue_size = max_request_queue;
if (desired_queue_size < min_request_queue) desired_queue_size = min_request_queue;
@ -571,6 +572,8 @@ namespace libtorrent
void policy::pulse()
{
if (m_torrent->is_paused()) return;
using namespace boost::posix_time;
// TODO: we must also remove peers that

View File

@ -778,12 +778,11 @@ namespace libtorrent { namespace detail
}
#ifndef NDEBUG
boost::shared_ptr<logger> session_impl::create_log(std::string name)
boost::shared_ptr<logger> session_impl::create_log(std::string const& name)
{
name = "libtorrent_log_" + name + ".log";
// current options are file_logger and cout_logger
// current options are file_logger, cout_logger and null_logger
#if defined(TORRENT_VERBOSE_LOGGING)
return boost::shared_ptr<logger>(new file_logger(name.c_str()));
return boost::shared_ptr<logger>(new file_logger(name + ".log"));
#else
return boost::shared_ptr<logger>(new null_logger());
#endif

View File

@ -598,7 +598,6 @@ namespace libtorrent
m_policy->connection_closed(*p);
m_connections.erase(i);
}
peer_connection& torrent::connect_to_peer(const address& a)
@ -1098,7 +1097,10 @@ namespace libtorrent
if (m_have_metadata.empty())
m_have_metadata.resize(256, false);
std::pair<int, int> req = offset_to_req(std::make_pair(offset, size), total_size);
std::pair<int, int> req = offset_to_req(std::make_pair(offset, size)
, total_size);
assert(req.first + req.second <= m_have_metadata.size());
std::fill(
m_have_metadata.begin() + req.first
@ -1120,7 +1122,7 @@ namespace libtorrent
{
std::fill(
m_have_metadata.begin()
, m_have_metadata.end() + req.first + req.second
, m_have_metadata.begin() + req.first + req.second
, false);
return false;
}

View File

@ -336,12 +336,16 @@ namespace libtorrent
void tracker_manager::tick()
{
tracker_connections_t::iterator i;
for (i = m_connections.begin(); i != m_connections.end(); ++i)
for (i = m_connections.begin(); i != m_connections.end();)
{
boost::shared_ptr<tracker_connection>& c = *i;
try
{
if (!c->tick()) continue;
if (!c->tick())
{
++i;
continue;
}
}
catch (const std::exception& e)
{