*** empty log message ***
This commit is contained in:
@@ -135,13 +135,13 @@ boost.filesystem, boost.date_time and various other boost libraries as well as z
|
|||||||
<li>Windows 2000 vc7.1</li>
|
<li>Windows 2000 vc7.1</li>
|
||||||
<li>Linux x86 (debian) GCC 3.0.4, GCC 3.2.3</li>
|
<li>Linux x86 (debian) GCC 3.0.4, GCC 3.2.3</li>
|
||||||
<li>Windows 2000, msvc6 sp5 (does not support 64-bit values due to problems with operator<<(ostream&, __int64))</li>
|
<li>Windows 2000, msvc6 sp5 (does not support 64-bit values due to problems with operator<<(ostream&, __int64))</li>
|
||||||
|
<li>Cygwin GCC 3.3.1</li>
|
||||||
</ul>
|
</ul>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>Fails on:</p>
|
<p>Fails on:</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>Linux x86 (Debian) GCC 2.95.4 (<tt class="literal"><span class="pre">std::ios_base</span></tt> is missing)</li>
|
<li>GCC 2.95.4 (<tt class="literal"><span class="pre">std::ios_base</span></tt> is missing)</li>
|
||||||
<li>Cygwin GCC 3.3.1 (compiles but crashes)</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<p>libtorrent is released under the <a class="reference" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
|
<p>libtorrent is released under the <a class="reference" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
|
||||||
@@ -166,6 +166,14 @@ bjam <toolset>
|
|||||||
"force conformance in for loop scope" and "treat wchar_t as built-in type" to Yes.</p>
|
"force conformance in for loop scope" and "treat wchar_t as built-in type" to Yes.</p>
|
||||||
<p>If you're building in developer studio 6, you will probably have to use the previous
|
<p>If you're building in developer studio 6, you will probably have to use the previous
|
||||||
version of boost, <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=178835">boost 1.30.2</a>.</p>
|
version of boost, <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=178835">boost 1.30.2</a>.</p>
|
||||||
|
<p>There are two versions of the socket code, one that works with unix systems (and bsd-sockets) and
|
||||||
|
one that uses winsock. If you're building in windows, the file <tt class="literal"><span class="pre">socket_win.cpp</span></tt> is supposed to
|
||||||
|
be included in the build while <tt class="literal"><span class="pre">socket_bsd.cpp</span></tt> is supposed to be excluded.</p>
|
||||||
|
<p>The file abstraction has the same kind of separation. There's one <tt class="literal"><span class="pre">file_win.cpp</span></tt> which
|
||||||
|
relies on windows file API that supports files larger than 2 Gigabytes. This does not work
|
||||||
|
in vc6 for some reason, possibly because it may require windows NT and above. The other file,
|
||||||
|
<tt class="literal"><span class="pre">file.cpp</span></tt> is the default implementation that simply relies on the standard library's fstream,
|
||||||
|
and as a result does not support files larger than 2 Gigabytes.</p>
|
||||||
<div class="section" id="release-and-debug-builds">
|
<div class="section" id="release-and-debug-builds">
|
||||||
<h2><a name="release-and-debug-builds">release and debug builds</a></h2>
|
<h2><a name="release-and-debug-builds">release and debug builds</a></h2>
|
||||||
<p>The <tt class="literal"><span class="pre">Jamfile</span></tt> can build both a release and debug version of libtorrent. In debug mode,
|
<p>The <tt class="literal"><span class="pre">Jamfile</span></tt> can build both a release and debug version of libtorrent. In debug mode,
|
||||||
|
@@ -116,6 +116,16 @@ version of boost, `boost 1.30.2`__.
|
|||||||
|
|
||||||
__ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=178835
|
__ http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041&release_id=178835
|
||||||
|
|
||||||
|
There are two versions of the socket code, one that works with unix systems (and bsd-sockets) and
|
||||||
|
one that uses winsock. If you're building in windows, the file ``socket_win.cpp`` is supposed to
|
||||||
|
be included in the build while ``socket_bsd.cpp`` is supposed to be excluded.
|
||||||
|
|
||||||
|
The file abstraction has the same kind of separation. There's one ``file_win.cpp`` which
|
||||||
|
relies on windows file API that supports files larger than 2 Gigabytes. This does not work
|
||||||
|
in vc6 for some reason, possibly because it may require windows NT and above. The other file,
|
||||||
|
``file.cpp`` is the default implementation that simply relies on the standard library's fstream,
|
||||||
|
and as a result does not support files larger than 2 Gigabytes.
|
||||||
|
|
||||||
release and debug builds
|
release and debug builds
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
|
@@ -401,7 +401,7 @@ int main(int argc, char* argv[])
|
|||||||
// << static_cast<const char*>((i->flags & peer_info::supports_extensions)?"e":"_")
|
// << static_cast<const char*>((i->flags & peer_info::supports_extensions)?"e":"_")
|
||||||
// << static_cast<const char*>((i->flags & peer_info::local_connection)?"l":"r")
|
// << static_cast<const char*>((i->flags & peer_info::local_connection)?"l":"r")
|
||||||
<< "\n";
|
<< "\n";
|
||||||
/*
|
|
||||||
if (i->downloading_piece_index >= 0)
|
if (i->downloading_piece_index >= 0)
|
||||||
{
|
{
|
||||||
out.width(5);
|
out.width(5);
|
||||||
@@ -413,9 +413,9 @@ int main(int argc, char* argv[])
|
|||||||
, 50);
|
, 50);
|
||||||
out << "\n";
|
out << "\n";
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
out << "___________________________________\n";
|
out << "___________________________________\n";
|
||||||
|
|
||||||
i->get_download_queue(queue);
|
i->get_download_queue(queue);
|
||||||
@@ -436,7 +436,7 @@ int main(int argc, char* argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
out << "___________________________________\n";
|
out << "___________________________________\n";
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (std::deque<std::string>::iterator i = events.begin();
|
for (std::deque<std::string>::iterator i = events.begin();
|
||||||
|
@@ -187,6 +187,8 @@ namespace libtorrent
|
|||||||
bool verify_piece(const peer_request& p) const;
|
bool verify_piece(const peer_request& p) const;
|
||||||
|
|
||||||
const stat& statistics() const { return m_statistics; }
|
const stat& statistics() const { return m_statistics; }
|
||||||
|
void add_stat(size_type downloaded, size_type uploaded)
|
||||||
|
{ m_statistics.add_stat(downloaded, uploaded); }
|
||||||
|
|
||||||
// is called once every second by the main loop
|
// is called once every second by the main loop
|
||||||
void second_tick();
|
void second_tick();
|
||||||
|
@@ -124,6 +124,12 @@ namespace libtorrent
|
|||||||
size_type total_protocol_upload() const { return m_total_upload_protocol; }
|
size_type total_protocol_upload() const { return m_total_upload_protocol; }
|
||||||
size_type total_protocol_download() const { return m_total_download_protocol; }
|
size_type total_protocol_download() const { return m_total_download_protocol; }
|
||||||
|
|
||||||
|
void add_stat(size_type downloaded, size_type uploaded)
|
||||||
|
{
|
||||||
|
m_total_download_payload += downloaded;
|
||||||
|
m_total_upload_payload += uploaded;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
|
@@ -153,7 +153,13 @@ namespace libtorrent
|
|||||||
|
|
||||||
// TODO: there must be a way to get resume data and
|
// TODO: there must be a way to get resume data and
|
||||||
// shut down the torrent in one atomic operation
|
// shut down the torrent in one atomic operation
|
||||||
entry write_resume_data();
|
entry write_resume_data() const;
|
||||||
|
|
||||||
|
// TODO: support pause/resume
|
||||||
|
// that will not delete the torrent or its
|
||||||
|
// policy. If those are deleted all share
|
||||||
|
// ratios to all clients are lost, we don't
|
||||||
|
// want that.
|
||||||
|
|
||||||
// forces this torrent to reannounce
|
// forces this torrent to reannounce
|
||||||
// (make a rerequest from the tracker)
|
// (make a rerequest from the tracker)
|
||||||
|
@@ -487,6 +487,9 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
using namespace boost::posix_time;
|
using namespace boost::posix_time;
|
||||||
|
|
||||||
|
// TODO: we must also remove peers that
|
||||||
|
// we failed to connect to from this list
|
||||||
|
// to avoid being part of a DDOS-attack
|
||||||
// remove old disconnected peers from the list
|
// remove old disconnected peers from the list
|
||||||
m_peers.erase(
|
m_peers.erase(
|
||||||
std::remove_if(m_peers.begin()
|
std::remove_if(m_peers.begin()
|
||||||
@@ -719,9 +722,12 @@ namespace libtorrent
|
|||||||
}
|
}
|
||||||
|
|
||||||
assert(i->connection == 0);
|
assert(i->connection == 0);
|
||||||
|
c.add_stat(i->prev_amount_download, i->prev_amount_upload);
|
||||||
|
i->prev_amount_download = 0;
|
||||||
|
i->prev_amount_upload = 0;
|
||||||
i->connection = &c;
|
i->connection = &c;
|
||||||
i->connected = boost::posix_time::second_clock::local_time();
|
i->connected = boost::posix_time::second_clock::local_time();
|
||||||
m_last_optimistic_disconnect=boost::posix_time::second_clock::local_time();
|
m_last_optimistic_disconnect = boost::posix_time::second_clock::local_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
void policy::peer_from_tracker(const address& remote, const peer_id& id)
|
void policy::peer_from_tracker(const address& remote, const peer_id& id)
|
||||||
@@ -906,6 +912,9 @@ namespace libtorrent
|
|||||||
assert(p->type==peer::connectable);
|
assert(p->type==peer::connectable);
|
||||||
|
|
||||||
p->connection = &m_torrent->connect_to_peer(p->id);
|
p->connection = &m_torrent->connect_to_peer(p->id);
|
||||||
|
p->connection->add_stat(p->prev_amount_download, p->prev_amount_upload);
|
||||||
|
p->prev_amount_download = 0;
|
||||||
|
p->prev_amount_upload = 0;
|
||||||
p->connected = boost::posix_time::second_clock::local_time();
|
p->connected = boost::posix_time::second_clock::local_time();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -1015,8 +1024,8 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
if (connection != 0)
|
if (connection != 0)
|
||||||
{
|
{
|
||||||
return connection->statistics().total_payload_download()
|
assert(prev_amount_download == 0);
|
||||||
+ prev_amount_download;
|
return connection->statistics().total_payload_download();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1028,8 +1037,8 @@ namespace libtorrent
|
|||||||
{
|
{
|
||||||
if (connection != 0)
|
if (connection != 0)
|
||||||
{
|
{
|
||||||
return connection->statistics().total_payload_upload()
|
assert(prev_amount_upload == 0);
|
||||||
+ prev_amount_upload;
|
return connection->statistics().total_payload_upload();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -225,7 +225,7 @@ namespace libtorrent
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
entry torrent_handle::write_resume_data()
|
entry torrent_handle::write_resume_data() const
|
||||||
{
|
{
|
||||||
std::vector<int> piece_index;
|
std::vector<int> piece_index;
|
||||||
if (m_ses == 0)
|
if (m_ses == 0)
|
||||||
|
Reference in New Issue
Block a user