added feature to not count downloaded bytes from web seeds in stats
This commit is contained in:
parent
89ca5a157a
commit
4c6be42b74
|
@ -1,3 +1,4 @@
|
|||
* added feature to not count downloaded bytes from web seeds in stats
|
||||
* added alert for incoming local service discovery messages
|
||||
* added option to set file priorities when adding torrents
|
||||
* removed the session mutex for improved performance
|
||||
|
|
|
@ -245,6 +245,9 @@ namespace libtorrent
|
|||
bool no_download() const { return m_no_download; }
|
||||
void no_download(bool b) { m_no_download = b; }
|
||||
|
||||
bool ignore_stats() const { return m_ignore_stats; }
|
||||
void ignore_stats(bool b) { m_ignore_stats = b; }
|
||||
|
||||
void set_priority(int p)
|
||||
{
|
||||
TORRENT_ASSERT(p > 0);
|
||||
|
@ -1054,6 +1057,10 @@ namespace libtorrent
|
|||
|
||||
// set to true when we've sent the first round of suggests
|
||||
bool m_sent_suggests:1;
|
||||
|
||||
// when this is set, the transfer stats for this connection
|
||||
// is not included in the torrent or session stats
|
||||
bool m_ignore_stats:1;
|
||||
|
||||
template <std::size_t Size>
|
||||
struct handler_storage
|
||||
|
|
|
@ -216,6 +216,7 @@ namespace libtorrent
|
|||
, ignore_resume_timestamps(false)
|
||||
, anonymous_mode(false)
|
||||
, tick_interval(100)
|
||||
, report_web_seed_downloads(true)
|
||||
{}
|
||||
|
||||
// libtorrent version. Used for forward binary compatibility
|
||||
|
@ -834,6 +835,10 @@ namespace libtorrent
|
|||
// the number of milliseconds between internal ticks. Should be no
|
||||
// more than one second (i.e. 1000).
|
||||
int tick_interval;
|
||||
|
||||
// specifies whether downloads from web seeds is reported to the
|
||||
// tracker or not. Defaults to on
|
||||
bool report_web_seed_downloads;
|
||||
};
|
||||
|
||||
#ifndef TORRENT_DISABLE_DHT
|
||||
|
|
|
@ -69,6 +69,9 @@ namespace libtorrent
|
|||
{
|
||||
INVARIANT_CHECK;
|
||||
|
||||
if (!ses.settings().report_web_seed_downloads)
|
||||
ignore_stats(true);
|
||||
|
||||
// we want large blocks as well, so
|
||||
// we can request more bytes at once
|
||||
request_large_blocks(true);
|
||||
|
|
|
@ -148,6 +148,7 @@ namespace libtorrent
|
|||
, m_bitfield_received(false)
|
||||
, m_no_download(false)
|
||||
, m_sent_suggests(false)
|
||||
, m_ignore_stats(false)
|
||||
#ifdef TORRENT_DEBUG
|
||||
, m_in_constructor(true)
|
||||
, m_disconnect_started(false)
|
||||
|
@ -283,6 +284,7 @@ namespace libtorrent
|
|||
, m_bitfield_received(false)
|
||||
, m_no_download(false)
|
||||
, m_sent_suggests(false)
|
||||
, m_ignore_stats(false)
|
||||
#ifdef TORRENT_DEBUG
|
||||
, m_in_constructor(true)
|
||||
, m_disconnect_started(false)
|
||||
|
@ -3237,7 +3239,7 @@ namespace libtorrent
|
|||
if (t)
|
||||
{
|
||||
// make sure we keep all the stats!
|
||||
t->add_stats(statistics());
|
||||
if (!m_ignore_stats) t->add_stats(statistics());
|
||||
|
||||
if (t->has_picker())
|
||||
{
|
||||
|
|
|
@ -1253,6 +1253,19 @@ namespace aux {
|
|||
// if anonymous mode was enabled, clear out the peer ID
|
||||
bool anonymous = (m_settings.anonymous_mode != s.anonymous_mode && s.anonymous_mode);
|
||||
|
||||
if (m_settings.report_web_seed_downloads != s.report_web_seed_downloads)
|
||||
{
|
||||
// if this flag changed, update all web seed connections
|
||||
for (connection_map::iterator i = m_connections.begin()
|
||||
, end(m_connections.end()); i != end; ++i)
|
||||
{
|
||||
int type = (*i)->type();
|
||||
if (type == peer_connection::url_seed_connection
|
||||
|| type == peer_connection::http_seed_connection)
|
||||
(*i)->ignore_stats(!s.report_web_seed_downloads);
|
||||
}
|
||||
}
|
||||
|
||||
m_settings = s;
|
||||
|
||||
// enable anonymous mode. We don't want to accept any incoming
|
||||
|
|
|
@ -5770,7 +5770,10 @@ namespace libtorrent
|
|||
{
|
||||
peer_connection* p = *i;
|
||||
++i;
|
||||
m_stat += p->statistics();
|
||||
|
||||
if (!p->ignore_stats())
|
||||
m_stat += p->statistics();
|
||||
|
||||
// updates the peer connection's ul/dl bandwidth
|
||||
// resource requests
|
||||
#ifndef BOOST_NO_EXCEPTIONS
|
||||
|
|
|
@ -70,6 +70,9 @@ namespace libtorrent
|
|||
{
|
||||
INVARIANT_CHECK;
|
||||
|
||||
if (!ses.settings().report_web_seed_downloads)
|
||||
ignore_stats(true);
|
||||
|
||||
// we want large blocks as well, so
|
||||
// we can request more bytes at once
|
||||
request_large_blocks(true);
|
||||
|
|
Loading…
Reference in New Issue