fixed incorrectly named members of session_status, fixed compilation error in ut_pex, documentation updates

This commit is contained in:
Arvid Norberg 2006-11-28 18:18:37 +00:00
parent d62801280f
commit ce9eed5ea1
18 changed files with 413 additions and 408 deletions

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent manual</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
@ -31,8 +31,8 @@
</li>
</ul>
</div>
<div class="section" id="downloading-and-building">
<h1><a name="downloading-and-building">downloading and building</a></h1>
<div class="section">
<h1><a id="downloading-and-building" name="downloading-and-building">downloading and building</a></h1>
<p>To acquire the latest version of libtorrent, you'll have to grab it from CVS.
You'll find instructions on how to do this <a class="reference" href="http://sourceforge.net/cvs/?group_id=79942">here</a> (see Anonymous CVS access).</p>
<p>The build systems supported &quot;out of the box&quot; in libtorrent are boost-build v2
@ -41,8 +41,8 @@ following these instructions, you can usually get help in the <tt class="docutil
IRC channel on <tt class="docutils literal"><span class="pre">irc.freenode.net</span></tt>.</p>
<p>If you want to build the cvs version on Ubuntu (and possibly other Linux
distros), see <a class="reference" href="ubuntu_build_notes.html">this</a> document.</p>
<div class="section" id="building-with-bbv2">
<h2><a name="building-with-bbv2">building with BBv2</a></h2>
<div class="section">
<h2><a id="building-with-bbv2" name="building-with-bbv2">building with BBv2</a></h2>
<p>The primary reason to use boost-build is that it will automatically build the
dependent boost libraries with the correct compiler settings, in order to
ensure that the build targets are link compatible (see <a class="reference" href="http://boost.org/more/separate_compilation.html">boost guidelines</a>
@ -51,8 +51,8 @@ for some details on this issue).</p>
source package. Having boost installed via some package system is usually not
enough (and even if it is enough, the necessary environment variables are
usually not set by the package installer).</p>
<div class="section" id="step-1-download-boost">
<h3><a name="step-1-download-boost">Step 1: Download boost</a></h3>
<div class="section">
<h3><a id="step-1-download-boost" name="step-1-download-boost">Step 1: Download boost</a></h3>
<p>You'll find boost <a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=7586&amp;package_id=8041&amp;release_id=376197">here</a>.</p>
<p>Extract the archive to some directory where you want it. For the sake of this
guide, let's assume you extract the package to <tt class="docutils literal"><span class="pre">c:\boost_1_33_1</span></tt> (I'm using
@ -62,8 +62,8 @@ in order to build libtorrent.</p>
<p>If you use 1.32, you need to download BBv2 separately, so for now, let's
assume you will use version 1.33.1.</p>
</div>
<div class="section" id="step-2-setup-bbv2">
<h3><a name="step-2-setup-bbv2">Step 2: Setup BBv2</a></h3>
<div class="section">
<h3><a id="step-2-setup-bbv2" name="step-2-setup-bbv2">Step 2: Setup BBv2</a></h3>
<p>First you need to build <tt class="docutils literal"><span class="pre">bjam</span></tt>. You do this by opening a terminal (In
windows, run <tt class="docutils literal"><span class="pre">cmd</span></tt>). Change directory to
<tt class="docutils literal"><span class="pre">c:\boost_1_33_1\tools\build\jam_src</span></tt>. Then run the script called
@ -115,8 +115,8 @@ using darwin : 4.0 : g++-4.0 ;
<p>Note that the spaces around the semi-colons and colons are important!</p>
<p>Also see the <a class="reference" href="http://www.boost.org/doc/html/bbv2/installation.html">official installation instructions</a>.</p>
</div>
<div class="section" id="step-3-building-libtorrent">
<h3><a name="step-3-building-libtorrent">Step 3: Building libtorrent</a></h3>
<div class="section">
<h3><a id="step-3-building-libtorrent" name="step-3-building-libtorrent">Step 3: Building libtorrent</a></h3>
<p>When building libtorrent, the <tt class="docutils literal"><span class="pre">Jamfile</span></tt> expects the environment variable
<tt class="docutils literal"><span class="pre">BOOST_ROOT</span></tt> to be set to the boost installation directory. It uses this to
find the boost libraries it depends on, so they can be built and their headers
@ -240,8 +240,8 @@ logging=none dht-support=on dht-support=logging dht-support=off
</pre>
</div>
</div>
<div class="section" id="building-with-autotools">
<h2><a name="building-with-autotools">building with autotools</a></h2>
<div class="section">
<h2><a id="building-with-autotools" name="building-with-autotools">building with autotools</a></h2>
<p>First of all, you need to install <tt class="docutils literal"><span class="pre">automake</span></tt> and <tt class="docutils literal"><span class="pre">autoconf</span></tt>. Many
unix/linux systems comes with these preinstalled.</p>
<p>The prerequisites for building libtorrent is boost.thread, boost.date_time
@ -252,8 +252,8 @@ boost.integer, boost.iterator, boost.tuple, boost.array, boost.function,
boost.smart_ptr, boost.preprocessor, boost.static_assert.</p>
<p>If you want to build the <tt class="docutils literal"><span class="pre">client_test</span></tt> example, you'll also need boost.regex
and boost.program_options.</p>
<div class="section" id="step-1-generating-the-build-system">
<h3><a name="step-1-generating-the-build-system">Step 1: Generating the build system</a></h3>
<div class="section">
<h3><a id="step-1-generating-the-build-system" name="step-1-generating-the-build-system">Step 1: Generating the build system</a></h3>
<p>No build system is present if libtorrent is checked out from CVS - it
needs to be generated first. If you're building from a released tarball,
you may skip directly to <a class="reference" href="#step-2-running-configure">Step 2: Running configure</a>.</p>
@ -268,8 +268,8 @@ autoconf
</pre>
<p>On darwin/OSX you have to run <tt class="docutils literal"><span class="pre">glibtoolize</span></tt> instead of <tt class="docutils literal"><span class="pre">libtoolize</span></tt>.</p>
</div>
<div class="section" id="step-2-running-configure">
<h3><a name="step-2-running-configure">Step 2: Running configure</a></h3>
<div class="section">
<h3><a id="step-2-running-configure" name="step-2-running-configure">Step 2: Running configure</a></h3>
<p>In your shell, change directory to the libtorrent directory and run
<tt class="docutils literal"><span class="pre">./configure</span></tt>. This will look for libraries and C++ features that libtorrent
is dependent on. If something is missing or can't be found it will print an
@ -317,8 +317,8 @@ checking for main in -lboost_thread... yes
directory contains spaces. Make sure you either rename the directories with
spaces in their names to remove the spaces or move the libtorrent directory.</p>
</div>
<div class="section" id="creating-a-debug-build">
<h3><a name="creating-a-debug-build">Creating a debug build</a></h3>
<div class="section">
<h3><a id="creating-a-debug-build" name="creating-a-debug-build">Creating a debug build</a></h3>
<p>To tell configure to build a debug version (with debug info, asserts
and invariant checks enabled), you have to run the configure script
with the following option:</p>
@ -326,8 +326,8 @@ with the following option:</p>
./configure --enable-debug=yes
</pre>
</div>
<div class="section" id="creating-a-release-build">
<h3><a name="creating-a-release-build">Creating a release build</a></h3>
<div class="section">
<h3><a id="creating-a-release-build" name="creating-a-release-build">Creating a release build</a></h3>
<p>To tell the configure to build a release version (without debug info,
asserts and invariant checks), you have to run the configure script
with the following option:</p>
@ -336,8 +336,8 @@ with the following option:</p>
</pre>
<p>The above option make use of -DNDEBUG, which is used throughout libtorrent.</p>
</div>
<div class="section" id="id6">
<h3><a name="id6">Step 3: Building libtorrent</a></h3>
<div class="section">
<h3><a id="id6" name="id6">Step 3: Building libtorrent</a></h3>
<p>Once the configure script is run successfully, you just type <tt class="docutils literal"><span class="pre">make</span></tt> and
libtorrent, the examples and the tests will be built.</p>
<p>When libtorrent is built it may be a good idea to run the tests, you do this
@ -351,8 +351,8 @@ make
</pre>
</div>
</div>
<div class="section" id="building-with-other-build-systems">
<h2><a name="building-with-other-build-systems">building with other build systems</a></h2>
<div class="section">
<h2><a id="building-with-other-build-systems" name="building-with-other-build-systems">building with other build systems</a></h2>
<p>If you're making your own project file, note that there are two versions of
the file abstraction. There's one <tt class="docutils 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
@ -367,8 +367,8 @@ options &quot;force conformance in for loop scope&quot;, &quot;treat wchar_t as
type&quot; and &quot;Enable Run-Time Type Info&quot; to Yes. For a detailed description
on how to build libtorrent with VS 2005, see <a class="reference" href="vs2005_build_notes.html">this document</a>.</p>
</div>
<div class="section" id="build-configurations">
<h2><a name="build-configurations">build configurations</a></h2>
<div class="section">
<h2><a id="build-configurations" name="build-configurations">build configurations</a></h2>
<p>By default libtorrent is built In debug mode, and will have pretty expensive
invariant checks and asserts built into it. If you want to disable such checks
(you want to do that in a release build) you can see the table below for which

View File

@ -3,13 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>client_test example program</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document" id="client-test-example-program">
<h1 class="title">client_test example program</h1>
<p>Client test is a, more or less, complete bittorrent client. It lacks most
settings and you can't start or stop torrents once you've started it. All
the settings are hardcoded. The commandline arguments are:</p>
@ -26,7 +27,7 @@ client and has the metadata (.torrent file). The metadata extension in
libtorrent will then download it from that peer (or from those peers if more
than one).</p>
<p>While running, the <tt class="docutils literal"><span class="pre">client_test</span></tt> sample will look something like this:</p>
<div class="image"><img alt="client_test.png" src="client_test.png" /></div>
<img alt="client_test.png" src="client_test.png" />
<p>The commands available in the client are:</p>
<ul class="simple">
<li><tt class="docutils literal"><span class="pre">q</span></tt> quits the client (there will be a delay while the client waits
@ -47,7 +48,7 @@ been requested from which peer. The green background means that it has been
downloaded. It shows that fast peers will prefer to request whole pieces
instead of dowloading parts of pieces. It may make it easier to determine
which peer that sent the corrupt data if a piece fails the hash test.</p>
<div class="image"><img alt="unicode_support.png" src="unicode_support.png" /></div>
<img alt="unicode_support.png" src="unicode_support.png" />
<p>There's unicode support on linux, MacOS X and Windows.</p>
</div>
</body>

View File

@ -3,13 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title></title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document">
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
@ -18,11 +19,11 @@
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="section" id="mainline-dht-extensions">
<h1><a name="mainline-dht-extensions">Mainline DHT extensions</a></h1>
<div class="section">
<h1><a id="mainline-dht-extensions" name="mainline-dht-extensions">Mainline DHT extensions</a></h1>
<p>libtorrent implements a few extensions to the Mainline DHT protocol.</p>
<div class="section" id="client-identification">
<h2><a name="client-identification">client identification</a></h2>
<div class="section">
<h2><a id="client-identification" name="client-identification">client identification</a></h2>
<p>In each DHT packet, an extra key is inserted named &quot;v&quot;. This is a string
describing the client and version used. This can help alot when debugging
and finding errors in client implementations. The string is encoded as four
@ -50,10 +51,10 @@ as a binary number describing the client version.</p>
</tbody>
</table>
</div>
<div class="section" id="ipv6-support">
<h2><a name="ipv6-support">IPv6 support</a></h2>
<div class="section">
<h2><a id="ipv6-support" name="ipv6-support">IPv6 support</a></h2>
<p>The only DHT messages that don't support IPv6 is the <tt class="docutils literal"><span class="pre">nodes</span></tt> reply. It
encodes all the contacts as 6 bytes sequences packed together in sequence in
encodes all the contacts as 6 bytes sequences packed together in sequence in
string. The problem is that IPv6 endpoints cannot be encoded as 6 bytes, but
needs 18 bytes. The extension libtorrent applies is to add another key, called
<tt class="docutils literal"><span class="pre">nodes2</span></tt> which is encoded as a list of strings. Each string represents one

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent Examples</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
@ -30,14 +30,14 @@
</li>
</ul>
</div>
<div class="section" id="examples">
<h1><a name="examples">examples</a></h1>
<div class="section">
<h1><a id="examples" name="examples">examples</a></h1>
<p>Except for the example programs in this manual, there's also a bigger example
of a (little bit) more complete client, <tt class="docutils literal"><span class="pre">client_test</span></tt>. There are separate
instructions for how to use it <a class="reference" href="client_test.html">here</a> if you'd like to try it. Note that building
<tt class="docutils literal"><span class="pre">client_test</span></tt> also requires boost.regex and boost.program_options library.</p>
<div class="section" id="dump-torrent">
<h2><a name="dump-torrent">dump_torrent</a></h2>
<div class="section">
<h2><a id="dump-torrent" name="dump-torrent">dump_torrent</a></h2>
<p>This is an example of a program that will take a torrent-file as a parameter and
print information about it to std out:</p>
<pre class="literal-block">
@ -103,7 +103,7 @@ int main(int argc, char* argv[])
std::cout &lt;&lt; &quot; &quot; &lt;&lt; std::setw(11) &lt;&lt; i-&gt;size
&lt;&lt; &quot; &quot; &lt;&lt; i-&gt;path.string() &lt;&lt; &quot;\n&quot;;
}
}
catch (std::exception&amp; e)
{
@ -114,8 +114,8 @@ int main(int argc, char* argv[])
}
</pre>
</div>
<div class="section" id="simple-client">
<h2><a name="simple-client">simple client</a></h2>
<div class="section">
<h2><a id="simple-client" name="simple-client">simple client</a></h2>
<p>This is a simple client. It doesn't have much output to keep it simple:</p>
<pre class="literal-block">
#include &lt;iostream&gt;
@ -151,7 +151,7 @@ int main(int argc, char* argv[])
entry e = bdecode(std::istream_iterator&lt;char&gt;(in)
, std::istream_iterator&lt;char&gt;());
s.add_torrent(torrent_info(e), &quot;&quot;);
// wait for the user to end
char a;
std::cin.unsetf(std::ios_base::skipws);
@ -165,8 +165,8 @@ int main(int argc, char* argv[])
}
</pre>
</div>
<div class="section" id="make-torrent">
<h2><a name="make-torrent">make_torrent</a></h2>
<div class="section">
<h2><a id="make-torrent" name="make-torrent">make_torrent</a></h2>
<p>Shows how to create a torrent from a directory tree:</p>
<pre class="literal-block">
#include &lt;iostream&gt;

View File

@ -3,13 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title></title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com Ludvig Strigeus, ludde&#64;utorrent.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document">
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
@ -19,8 +20,8 @@
Ludvig Strigeus, <a class="last reference" href="mailto:ludde&#64;utorrent.com">ludde&#64;utorrent.com</a></td></tr>
</tbody>
</table>
<div class="section" id="extension-protocol-for-bittorrent">
<h1><a name="extension-protocol-for-bittorrent">extension protocol for bittorrent</a></h1>
<div class="section">
<h1><a id="extension-protocol-for-bittorrent" name="extension-protocol-for-bittorrent">extension protocol for bittorrent</a></h1>
<p>The intention of this protocol is to provide a simple and thin transport
for extensions to the bittorrent protocol. Supporting this protocol makes
it easy to add new extensions without interfering with the standard
@ -80,8 +81,8 @@ message as specified by the handshake.</td>
</tr>
</tbody>
</table>
<div class="section" id="handshake-message">
<h2><a name="handshake-message">handshake message</a></h2>
<div class="section">
<h2><a id="handshake-message" name="handshake-message">handshake message</a></h2>
<p>The payload of the handshake message is a bencoded dictionary. All items
in the dictionary are optional. Any unknown names should be ignored
by the client. All parts of the dictionary are case sensitive.
@ -215,8 +216,8 @@ for the actual extensions to the bittorrent protocol and the extensions
named in the example above (such as <tt class="docutils literal"><span class="pre">p</span></tt>) are just examples of possible
extensions.</p>
</div>
<div class="section" id="rationale">
<h2><a name="rationale">rationale</a></h2>
<div class="section">
<h2><a id="rationale" name="rationale">rationale</a></h2>
<p>The reason why the extension messages' IDs would be defined in the handshake
is to avoid having a global registry of message IDs. Instead the names of the
extension messages requires unique names, which is much easier to do without

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent manual</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
@ -28,8 +28,8 @@
<li><a class="reference" href="#license" id="id9" name="id9">license</a></li>
</ul>
</div>
<div class="section" id="introduction">
<h1><a name="introduction">introduction</a></h1>
<div class="section">
<h1><a id="introduction" name="introduction">introduction</a></h1>
<p>libtorrent is a C++ library that aims to be a good alternative to all the
other bittorrent implementations around. It is a
library and not a full featured client, although it comes with a working
@ -41,8 +41,8 @@ example client.</p>
<li>to be very easy to use</li>
</ul>
</div>
<div class="section" id="features">
<h1><a name="features">features</a></h1>
<div class="section">
<h1><a id="features" name="features">features</a></h1>
<p>libtorrent is still being developed, however it is stable. It is an ongoing
project (including this documentation). The current state includes the
following features:</p>
@ -90,8 +90,8 @@ want to download.</li>
being connected</li>
</ul>
</div>
<div class="section" id="portability">
<h1><a name="portability">portability</a></h1>
<div class="section">
<h1><a id="portability" name="portability">portability</a></h1>
<p>libtorrent is portable at least among Windows, MacOS X and other UNIX-systems.
It uses Boost.Thread, Boost.Filesystem, Boost.Date_time and various other
boost libraries as well as <a class="reference" href="http://www.zlib.org">zlib</a> (shipped) and <a class="reference" href="http://asio.sf.net">asio</a> (shipped). At least version
@ -113,8 +113,8 @@ epoll on linux and kqueue on MacOS X and BSD.</p>
<li>msvc6</li>
</ul>
</div>
<div class="section" id="license">
<h1><a name="license">license</a></h1>
<div class="section">
<h1><a id="license" name="license">license</a></h1>
<p>libtorrent is released under the <a class="reference" href="http://www.opensource.org/licenses/bsd-license.php">BSD-license</a>.</p>
<p>This means that you can use the library in your project without having to
release its source code. The only requirement is that you give credit

View File

@ -3,12 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title></title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document">
<div id="librarySidebar"><ul class="simple">
<li><a class="reference" href="http://sourceforge.net/project/showfiles.php?group_id=79942">download</a></li>
<li><a class="reference" href="features.html">features</a></li>
@ -42,8 +44,8 @@
<li><a class="reference" href="bittorrent.pdf">Introduction, slides</a></li>
</ul>
</div>
<div id="libraryBody"><div class="section" id="libtorrent">
<h1><a name="libtorrent">libtorrent</a></h1>
<div id="libraryBody"><div class="section">
<h1><a id="libtorrent" name="libtorrent">libtorrent</a></h1>
<p>libtorrent is a C++ library that aims to be a good alternative to all the
other bittorrent implementations around. It is a
library and not a full featured client, although it comes with a working
@ -54,8 +56,8 @@ library and not a full featured client, although it comes with a working
<li>to be memory efficient</li>
<li>to be very easy to use</li>
</ul>
<div class="section" id="donate">
<h2><a name="donate">Donate</a></h2>
<div class="section">
<h2><a id="donate" name="donate">Donate</a></h2>
<p>Support the development of libtorrent</p>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_xclick">
@ -67,13 +69,13 @@ library and not a full featured client, although it comes with a working
<input type="image" src="https://www.paypal.com/images/x-click-but04.gif"
border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form></div>
<div class="section" id="feedback">
<h2><a name="feedback">Feedback</a></h2>
<div class="section">
<h2><a id="feedback" name="feedback">Feedback</a></h2>
<p>There's a <a class="reference" href="http://lists.sourceforge.net/lists/listinfo/libtorrent-discuss">mailing list</a>, general libtorrent discussion.</p>
<p>You can usually find me as hydri in <tt class="docutils literal"><span class="pre">#libtorrent</span></tt> on <tt class="docutils literal"><span class="pre">irc.freenode.net</span></tt>.</p>
</div>
<div class="section" id="acknowledgements">
<h2><a name="acknowledgements">Acknowledgements</a></h2>
<div class="section">
<h2><a id="acknowledgements" name="acknowledgements">Acknowledgements</a></h2>
<p>Written by Arvid Norberg. Copyright (c) 2003-2006</p>
<p>Contributions by Magnus Jonsson, Daniel Wallin and Cory Nelson</p>
<p>Thanks to Reimond Retz for bugfixes, suggestions and testing</p>

View File

@ -3,13 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title></title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document">
<table class="docinfo" frame="void" rules="none">
<col class="docinfo-name" />
<col class="docinfo-content" />
@ -18,10 +19,10 @@
<td>Arvid Norberg, <a class="last reference" href="mailto:arvid&#64;rasterbar.com">arvid&#64;rasterbar.com</a></td></tr>
</tbody>
</table>
<div class="section" id="libtorrent-plugins">
<h1><a name="libtorrent-plugins">libtorrent plugins</a></h1>
<div class="section">
<h1><a id="libtorrent-plugins" name="libtorrent-plugins">libtorrent plugins</a></h1>
<div class="contents topic" id="table-of-contents">
<p class="topic-title first"><a name="contents">Contents</a></p>
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
<ul class="simple">
<li><a class="reference" href="#libtorrent-plugins" id="id1" name="id1">libtorrent plugins</a><ul>
<li><a class="reference" href="#a-word-of-caution" id="id2" name="id2">a word of caution</a></li>
@ -50,8 +51,8 @@ to fit a particular (closed) network.</p>
<li>send extension messages and standard bittorrent messages.</li>
<li>override or block the handling of standard bittorrent messages.</li>
</ul>
<div class="section" id="a-word-of-caution">
<h2><a name="a-word-of-caution">a word of caution</a></h2>
<div class="section">
<h2><a id="a-word-of-caution" name="a-word-of-caution">a word of caution</a></h2>
<p>Writing your own plugin is a very easy way to introduce serious bugs such as
dead locks and race conditions. Since a plugin has access to internal
structures it is also quite easy to sabotage libtorrent's operation.</p>
@ -66,16 +67,16 @@ callback). See <a class="reference" href="http://www.boost.org/doc/html/mutex.ht
another thread, use an internal queue, and do the actual sending in <tt class="docutils literal"><span class="pre">tick()</span></tt>.</p>
</div>
</div>
<div class="section" id="plugin-interface">
<h1><a name="plugin-interface">plugin interface</a></h1>
<div class="section">
<h1><a id="plugin-interface" name="plugin-interface">plugin interface</a></h1>
<p>The plugin interface consists of two base classes that the plugin may
implement. These are called <tt class="docutils literal"><span class="pre">torrent_plugin</span></tt> and <tt class="docutils literal"><span class="pre">peer_plugin</span></tt>. They are
both found in the <tt class="docutils literal"><span class="pre">&lt;libtorrent/extensions.hpp&gt;</span></tt> header.</p>
<p>These plugins are instantiated for each torrent and possibly each peer,
respectively.</p>
</div>
<div class="section" id="torrent-plugin">
<h1><a name="torrent-plugin">torrent_plugin</a></h1>
<div class="section">
<h1><a id="torrent-plugin" name="torrent-plugin">torrent_plugin</a></h1>
<p>The synopsis for <tt class="docutils literal"><span class="pre">torrent_plugin</span></tt> follows:</p>
<pre class="literal-block">
struct torrent_plugin
@ -95,8 +96,8 @@ struct torrent_plugin
<p>This is the base class for a torrent_plugin. Your derived class is (if added
as an extension) instantiated for each torrent in the session. The callback
hook functions are defined as follows.</p>
<div class="section" id="new-connection">
<h2><a name="new-connection">new_connection()</a></h2>
<div class="section">
<h2><a id="new-connection" name="new-connection">new_connection()</a></h2>
<pre class="literal-block">
boost::shared_ptr&lt;peer_plugin&gt; new_connection(peer_connection*);
</pre>
@ -113,8 +114,8 @@ held by the torrent object. So, it is generally a good idea to not keep a
use <tt class="docutils literal"><span class="pre">weak_ptr</span></tt>.</p>
<p>If this function throws an exception, the connection will be closed.</p>
</div>
<div class="section" id="on-piece-pass-on-piece-fail">
<h2><a name="on-piece-pass-on-piece-fail">on_piece_pass() on_piece_fail()</a></h2>
<div class="section">
<h2><a id="on-piece-pass-on-piece-fail" name="on-piece-pass-on-piece-fail">on_piece_pass() on_piece_fail()</a></h2>
<pre class="literal-block">
void on_piece_pass(int index);
void on_piece_failed(int index);
@ -124,16 +125,16 @@ check, respectively. The <tt class="docutils literal"><span class="pre">index</s
It is possible to access the list of peers that participated in sending the
piece through the <tt class="docutils literal"><span class="pre">torrent</span></tt> and the <tt class="docutils literal"><span class="pre">piece_picker</span></tt>.</p>
</div>
<div class="section" id="tick">
<h2><a name="tick">tick()</a></h2>
<div class="section">
<h2><a id="tick" name="tick">tick()</a></h2>
<pre class="literal-block">
void tick();
</pre>
<p>This hook is called approximately once per second. It is a way of making it
easy for plugins to do timed events, for sending messages or whatever.</p>
</div>
<div class="section" id="on-pause-on-resume">
<h2><a name="on-pause-on-resume">on_pause() on_resume()</a></h2>
<div class="section">
<h2><a id="on-pause-on-resume" name="on-pause-on-resume">on_pause() on_resume()</a></h2>
<pre class="literal-block">
bool on_pause();
bool on_resume();
@ -150,8 +151,8 @@ standard handler, you have to keep your own state on whether you want standard
behavior or overridden behavior.</p>
</div>
</div>
<div class="section" id="peer-plugin">
<h1><a name="peer-plugin">peer_plugin</a></h1>
<div class="section">
<h1><a id="peer-plugin" name="peer-plugin">peer_plugin</a></h1>
<pre class="literal-block">
struct peer_plugin
{

File diff suppressed because it is too large Load Diff

View File

@ -3,13 +3,14 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>projects using libtorrent</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
<div class="document" id="projects-using-libtorrent">
<h1 class="title">projects using libtorrent</h1>
<p>These are some of the public projects that uses libtorrent. If you want your
project listed here, let <a class="reference" href="mailto:arvid&#64;rasterbar.com">me</a> know.</p>
<table border="1" class="docutils">
@ -24,7 +25,7 @@ which collectively generates
animations and lets the users
vote which one to live on.</p>
</td>
<td><div class="image first last"><img alt="electric_sheep_thumb.jpg" class="first last" src="electric_sheep_thumb.jpg" /></div>
<td><img alt="electric_sheep_thumb.jpg" class="first last" src="electric_sheep_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>qBittorrent</strong></p>
@ -33,7 +34,7 @@ client available for linux (likely
portable to most other desktops as
well). Written by Christophe Dumez.</p>
</td>
<td><div class="image first last"><img alt="qbittorrent_thumb.jpg" class="first last" src="qbittorrent_thumb.jpg" /></div>
<td><img alt="qbittorrent_thumb.jpg" class="first last" src="qbittorrent_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>btg</strong></p>
@ -47,26 +48,26 @@ connects to the daemon. One GUI
Written by Michael Wojciechowski
and Johan Ström.</p>
</td>
<td><div class="image first last"><img alt="btg_thumb.jpg" class="first last" src="btg_thumb.jpg" /></div>
<td><img alt="btg_thumb.jpg" class="first last" src="btg_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>BitRocket</strong></p>
<p class="last"><a class="reference" href="http://www.bitrocket.org/">BitRocket</a> is a MacOS X bittorrent client.</p>
</td>
<td><div class="image first last"><img alt="bitrocket_thumb.png" class="first last" src="bitrocket_thumb.png" /></div>
<td><img alt="bitrocket_thumb.png" class="first last" src="bitrocket_thumb.png" />
</td>
</tr>
<tr><td><p class="first"><strong>Instant Media</strong></p>
<p class="last"><a class="reference" href="http://www.im.com/">IM</a> is a client for downloading Internet TV.</p>
</td>
<td><div class="image first last"><img alt="im_thumb.jpg" class="first last" src="im_thumb.jpg" /></div>
<td><img alt="im_thumb.jpg" class="first last" src="im_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>MooPolice</strong></p>
<p class="last"><a class="reference" href="http://www.moopolice.de">MooPolice</a> is a windows bittorrent
client with a quite unique look.</p>
</td>
<td><div class="image first last"><img alt="moopolice_thumb.gif" class="first last" src="moopolice_thumb.gif" /></div>
<td><img alt="moopolice_thumb.gif" class="first last" src="moopolice_thumb.gif" />
</td>
</tr>
<tr><td><p class="first"><strong>BitsCast</strong></p>
@ -75,13 +76,13 @@ video feed downloader, bittorrent
feed downloader. See <a class="reference" href="http://www.bitscast.com/software/">BitsCast</a>
homepage for more info.</p>
</td>
<td><div class="image first last"><img alt="bitscast_thumb.png" class="first last" src="bitscast_thumb.png" /></div>
<td><img alt="bitscast_thumb.png" class="first last" src="bitscast_thumb.png" />
</td>
</tr>
<tr><td><p class="first"><strong>BitSlug</strong></p>
<p class="last"><a class="reference" href="http://bitslug.sourceforge.net/">BitSlug</a> is a MacOSX cocoa client.</p>
</td>
<td><div class="image first last"><img alt="bitslug_thumb.png" class="first last" src="bitslug_thumb.png" /></div>
<td><img alt="bitslug_thumb.png" class="first last" src="bitslug_thumb.png" />
</td>
</tr>
<tr><td><p class="first"><strong>BitBuddy</strong></p>
@ -89,7 +90,7 @@ homepage for more info.</p>
client by Daniel Wang, quite
similar to BitComet GUI-wise.</p>
</td>
<td><div class="image first last"><img alt="bitbuddy_thumb.jpg" class="first last" src="bitbuddy_thumb.jpg" /></div>
<td><img alt="bitbuddy_thumb.jpg" class="first last" src="bitbuddy_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>Arctic Torrent</strong></p>
@ -97,15 +98,15 @@ similar to BitComet GUI-wise.</p>
bittorrent client for windows.
Written by Cory Nelson.</p>
</td>
<td><div class="image first last"><img alt="arctic_thumb.png" class="first last" src="arctic_thumb.png" /></div>
<td><img alt="arctic_thumb.png" class="first last" src="arctic_thumb.png" />
</td>
</tr>
<tr><td><p class="first"><strong>deluge torrent</strong></p>
<p class="last"><a class="reference" href="http://code.google.com/p/deluge-torrent/">deluge Torrent</a> is a more full-featured yet still lightweight bittorrent
<p class="last"><a class="reference" href="http://deluge-torrent.org/">deluge Torrent</a> is a more full-featured yet still lightweight bittorrent
client. It has the ability to automatically resume partial downloads and
background to the system tray.</p>
</td>
<td><div class="image first last"><img alt="gtorrent_thumb.jpg" class="first last" src="gtorrent_thumb.jpg" /></div>
<td><img alt="gtorrent_thumb.jpg" class="first last" src="gtorrent_thumb.jpg" />
</td>
</tr>
<tr><td><p class="first"><strong>ZipTorrent</strong></p>
@ -113,7 +114,7 @@ background to the system tray.</p>
bittorrent client with
decentralized search facility.</p>
</td>
<td><div class="image first last"><img alt="ziptorrent_thumb.gif" class="first last" src="ziptorrent_thumb.gif" /></div>
<td><img alt="ziptorrent_thumb.gif" class="first last" src="ziptorrent_thumb.gif" />
</td>
</tr>
<tr><td><p class="first"><strong>Jamplayer</strong></p>

View File

@ -114,7 +114,7 @@ project listed here, let me_ know.
.. _BitSlug: http://bitslug.sourceforge.net/
.. _BitBuddy: http://www.btvampire.com
.. _`Arctic Torrent`: http://www.int64.org/arctic.html
.. _`deluge Torrent`: http://code.google.com/p/deluge-torrent/
.. _`deluge Torrent`: http://deluge-torrent.org/
.. _ZipTorrent: http://www.ziptorrent.com/
.. _FireANT: http://antisnottv.net/
.. _eDonkey2000: http://www.edonkey2000.com/

View File

@ -3,11 +3,10 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>Building libtorrent on Ubuntu 6.06</title>
<meta name="date" content="Nov 6, 2006" />
<meta name="author" content="Xi Stan" />
<meta name="author" content="Francois Dermu" />
<meta name="authors" content="Xi Stan Francois Dermu" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body>
@ -19,16 +18,15 @@
<tbody valign="top">
<tr><th class="docinfo-name">Date:</th>
<td>Nov 6, 2006</td></tr>
<tr><th class="docinfo-name">Author:</th>
<td>Xi Stan</td></tr>
<tr><th class="docinfo-name">Author:</th>
<td>Francois Dermu</td></tr>
<tr><th class="docinfo-name">Authors:</th>
<td>Xi Stan
<br />Francois Dermu</td></tr>
<tr><th class="docinfo-name">Contact:</th>
<td><a class="first last reference" href="mailto:stan8688&#64;gmail.com">stan8688&#64;gmail.com</a></td></tr>
</tbody>
</table>
<div class="section" id="prerequisites">
<h1><a name="prerequisites">Prerequisites</a></h1>
<div class="section">
<h1><a id="prerequisites" name="prerequisites">Prerequisites</a></h1>
<p>To build libtorrent, you need the following libraries:</p>
<ul class="simple">
<li><a class="reference" href="http://www.rasterbar.com/products/libtorrent/index.html">http://www.rasterbar.com/products/libtorrent/index.html</a></li>
@ -36,8 +34,8 @@
<li><a class="reference" href="http://asio.sourceforge.net/">http://asio.sourceforge.net/</a></li>
</ul>
</div>
<div class="section" id="step-1-acquire-the-source-code-from-cvs">
<h1><a name="step-1-acquire-the-source-code-from-cvs">Step 1: Acquire the source code from cvs</a></h1>
<div class="section">
<h1><a id="step-1-acquire-the-source-code-from-cvs" name="step-1-acquire-the-source-code-from-cvs">Step 1: Acquire the source code from cvs</a></h1>
<p>Create a directory for the project:</p>
<pre class="literal-block">
mkdir ${HOME}/work
@ -60,8 +58,8 @@ cvs -z3 -d:pserver:anonymous&#64;asio.cvs.sourceforge.net:/cvsroot/asio co -P as
cvs -d:pserver:anonymous&#64;asio.cvs.sourceforge.net:/cvsroot/asio login
</pre>
</div>
<div class="section" id="step-2-building-boost">
<h1><a name="step-2-building-boost">Step 2: Building boost</a></h1>
<div class="section">
<h1><a id="step-2-building-boost" name="step-2-building-boost">Step 2: Building boost</a></h1>
<p>To build boost, first build boost-build and then use that to build
the libraries themselves:</p>
<pre class="literal-block">
@ -87,18 +85,18 @@ libboost_date_time-gcc-1_31.a
libboost_date_time-gcc-mt-1_31.a
</pre>
</div>
<div class="section" id="step-3-copy-asio-into-the-libtorrent-directory">
<h1><a name="step-3-copy-asio-into-the-libtorrent-directory">Step 3: Copy asio into the libtorrent directory</a></h1>
<div class="section">
<h1><a id="step-3-copy-asio-into-the-libtorrent-directory" name="step-3-copy-asio-into-the-libtorrent-directory">Step 3: Copy asio into the libtorrent directory</a></h1>
<p>Skip this step if you're using a released tarball.</p>
<p>Execute the following command:</p>
<pre class="literal-block">
cp -R ${BASE_DIR}/asio/include/asio* ${BASE_DIR}/libtorrent/include/libtorrent
</pre>
</div>
<div class="section" id="step-4-building-libtorrent">
<h1><a name="step-4-building-libtorrent">Step 4: Building libtorrent</a></h1>
<div class="section" id="building-with-autotools">
<h2><a name="building-with-autotools">building with autotools</a></h2>
<div class="section">
<h1><a id="step-4-building-libtorrent" name="step-4-building-libtorrent">Step 4: Building libtorrent</a></h1>
<div class="section">
<h2><a id="building-with-autotools" name="building-with-autotools">building with autotools</a></h2>
<p>First of all, you need to install automake and autoconf. Many unix/linux systems
comes with these preinstalled. The prerequisites for building libtorrent are
boost.thread, boost.date_time and boost.filesystem. Those are the <em>compiled</em> boost
@ -108,8 +106,8 @@ boost.lexical_cast, boost.integer, boost.iterator, boost.tuple, boost.array,
boost.function, boost.smart_ptr, boost.preprocessor, boost.static_assert.</p>
<p>If you want to build the client_test example, you'll also need boost.regex and boost.program_options.</p>
</div>
<div class="section" id="generating-the-build-system">
<h2><a name="generating-the-build-system">generating the build system</a></h2>
<div class="section">
<h2><a id="generating-the-build-system" name="generating-the-build-system">generating the build system</a></h2>
<p>No build system is present if libtorrent is checked out from CVS - it needs to be
generated first. If you're building from a released tarball, you may skip directly
to <a class="reference" href="#running-configure">running configure</a>.</p>
@ -127,8 +125,8 @@ autoconf
</pre>
<p>On darwin/OSX you have to run glibtoolize instead of libtoolize.</p>
</div>
<div class="section" id="running-configure">
<h2><a name="running-configure">running configure</a></h2>
<div class="section">
<h2><a id="running-configure" name="running-configure">running configure</a></h2>
<p>To use the auto tools to build libtorrent, execute the following commands:</p>
<pre class="literal-block">
cd ${BASE_DIR}/libtorrent

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>Bittorrent udp-tracker protocol extension</title>
<meta name="author" content="Arvid Norberg, arvid&#64;rasterbar.com" />
<link rel="stylesheet" href="style.css" type="text/css" />
@ -35,8 +35,8 @@
<li><a class="reference" href="#credits" id="id10" name="id10">credits</a></li>
</ul>
</div>
<div class="section" id="introduction">
<h1><a name="introduction">introduction</a></h1>
<div class="section">
<h1><a id="introduction" name="introduction">introduction</a></h1>
<p>A tracker with the protocol &quot;udp://&quot; in its URI
is supposed to be contacted using this protocol.</p>
<p>This protocol is supported by
@ -50,8 +50,8 @@ are specified with ANSI-C standard types.</p>
the request. If no reply has been received after 60 seconds, stop
retrying.</p>
</div>
<div class="section" id="connecting">
<h1><a name="connecting">connecting</a></h1>
<div class="section">
<h1><a id="connecting" name="connecting">connecting</a></h1>
<p>Client sends packet:</p>
<table border="1" class="docutils">
<colgroup>
@ -120,8 +120,8 @@ anymore.</td>
</tbody>
</table>
</div>
<div class="section" id="announcing">
<h1><a name="announcing">announcing</a></h1>
<div class="section">
<h1><a id="announcing" name="announcing">announcing</a></h1>
<p>Client sends packet:</p>
<table border="1" class="docutils">
<colgroup>
@ -282,8 +282,8 @@ seeding.</td>
</tbody>
</table>
</div>
<div class="section" id="scraping">
<h1><a name="scraping">scraping</a></h1>
<div class="section">
<h1><a id="scraping" name="scraping">scraping</a></h1>
<p>Client sends packet:</p>
<table border="1" class="docutils">
<colgroup>
@ -401,8 +401,8 @@ leechers.</td>
</tbody>
</table>
</div>
<div class="section" id="errors">
<h1><a name="errors">errors</a></h1>
<div class="section">
<h1><a id="errors" name="errors">errors</a></h1>
<p>In case of a tracker error,</p>
<p>server replies packet:</p>
<table border="1" class="docutils">
@ -436,8 +436,8 @@ describing the error.</td>
</tbody>
</table>
</div>
<div class="section" id="actions">
<h1><a name="actions">actions</a></h1>
<div class="section">
<h1><a id="actions" name="actions">actions</a></h1>
<p>The action fields has the following encoding:</p>
<blockquote>
<ul class="simple">
@ -448,8 +448,8 @@ describing the error.</td>
</ul>
</blockquote>
</div>
<div class="section" id="extensions">
<h1><a name="extensions">extensions</a></h1>
<div class="section">
<h1><a id="extensions" name="extensions">extensions</a></h1>
<p>The extensions field is a bitmask. The following
bits are assigned:</p>
<blockquote>
@ -457,8 +457,8 @@ bits are assigned:</p>
<li>1 = <a class="reference" href="#authentication">authentication</a>.</li>
</ul>
</blockquote>
<div class="section" id="authentication">
<h2><a name="authentication">authentication</a></h2>
<div class="section">
<h2><a id="authentication" name="authentication">authentication</a></h2>
<p>The packet will have an authentication part
appended to it. It has the following format:</p>
<table border="1" class="docutils">
@ -497,8 +497,8 @@ from the 20 bytes hash calculated.</td>
</table>
</div>
</div>
<div class="section" id="credits">
<h1><a name="credits">credits</a></h1>
<div class="section">
<h1><a id="credits" name="credits">credits</a></h1>
<p>Protocol designed by Olaf van der Spek</p>
</div>
</div>

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.3.9: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
<title>libtorrent setup for VS.NET 2005 Development</title>
<meta name="author" content="THOMAS GODDARD" />
<link rel="stylesheet" href="style.css" type="text/css" />
@ -21,16 +21,16 @@
<td>www.thomasgoddard.com</td></tr>
</tbody>
</table>
<div class="section" id="prerequisites">
<h1><a name="prerequisites">Prerequisites</a></h1>
<div class="section">
<h1><a id="prerequisites" name="prerequisites">Prerequisites</a></h1>
<ol class="arabic simple">
<li>Download boost from boost.org</li>
<li>Download libtorrent</li>
<li>Extract both to a folder called libtorrent</li>
</ol>
</div>
<div class="section" id="compiling-boost-for-vs-net-2005">
<h1><a name="compiling-boost-for-vs-net-2005">Compiling boost for VS.NET 2005</a></h1>
<div class="section">
<h1><a id="compiling-boost-for-vs-net-2005" name="compiling-boost-for-vs-net-2005">Compiling boost for VS.NET 2005</a></h1>
<ol class="arabic simple">
<li>Copy bjam.exe to libtorrent\boost_[version]\tools\build</li>
<li>Add the path &quot;libtorrent\boost_[version]\tools\build&quot; to the windows path environment variable</li>
@ -44,16 +44,16 @@
<li>Type: <tt class="docutils literal"><span class="pre">bjam</span> <span class="pre">&quot;-sTOOLS=vc-8_0&quot;</span> <span class="pre">install</span></tt> and hit enter</li>
<li>Be patient and wait for it to finish</li>
</ol>
<div class="section" id="troubleshooting">
<h2><a name="troubleshooting">Troubleshooting</a></h2>
<div class="section">
<h2><a id="troubleshooting" name="troubleshooting">Troubleshooting</a></h2>
<ul class="simple">
<li>Make sure to CD to the root of the boost directory before running the install.</li>
<li>For additional details and information on using Visual Studio 2005 Express addition, see the Boost Getting Started Guide.</li>
</ul>
</div>
</div>
<div class="section" id="setting-up-and-compiling-libtorrent-with-vs-net-2005">
<h1><a name="setting-up-and-compiling-libtorrent-with-vs-net-2005">Setting up and compiling libtorrent with VS.NET 2005</a></h1>
<div class="section">
<h1><a id="setting-up-and-compiling-libtorrent-with-vs-net-2005" name="setting-up-and-compiling-libtorrent-with-vs-net-2005">Setting up and compiling libtorrent with VS.NET 2005</a></h1>
<ol class="arabic">
<li><p class="first">Create a new vs.net 2005 MFC project and solution file in the root of the libtorrent folder where you extracted all of the libtorrent files.</p>
</li>
@ -98,8 +98,8 @@ libboost_date_time-vc80-mt.lib
<li><p class="first">Set the Runtime Library to Multi-threaded Debug DLL (/MDd) under the code generation section.</p>
</li>
</ol>
<div class="section" id="id1">
<h2><a name="id1">Troubleshooting</a></h2>
<div class="section">
<h2><a id="id1" name="id1">Troubleshooting</a></h2>
<dl class="docutils">
<dt>Error: error LNK2005:already defined etc...</dt>
<dd>Make sure you use the Multi-threaded Debug DLL (/MDd)</dd>

View File

@ -56,9 +56,9 @@ namespace libtorrent
int num_peers;
#ifndef TORRENT_DISABLE_DHT
int m_dht_nodes;
int m_dht_node_cache;
int m_dht_torrents;
int dht_nodes;
int dht_node_cache;
int dht_torrents;
#endif
};

View File

@ -204,8 +204,8 @@ namespace libtorrent { namespace dht
void dht_tracker::dht_status(session_status& s)
{
boost::tie(s.m_dht_nodes, s.m_dht_node_cache) = m_dht.size();
s.m_dht_torrents = m_dht.data_size();
boost::tie(s.dht_nodes, s.dht_node_cache) = m_dht.size();
s.dht_torrents = m_dht.data_size();
}
void dht_tracker::connection_timeout(asio::error_code const& e)

View File

@ -1496,9 +1496,9 @@ namespace libtorrent { namespace detail
}
else
{
s.m_dht_nodes = 0;
s.m_dht_node_cache = 0;
s.m_dht_torrents = 0;
s.dht_nodes = 0;
s.dht_node_cache = 0;
s.dht_torrents = 0;
}
#endif
@ -1839,7 +1839,7 @@ namespace libtorrent { namespace detail
const entry& ad = (*i)["adler32"];
// crc's didn't match, don't use the resume data
if (ad.integer() != adler)
if (ad.integer() != entry::integer_type(adler))
{
error = "checksum mismatch on piece " + boost::lexical_cast<std::string>(p.index);
return;

View File

@ -80,8 +80,8 @@ namespace libtorrent { namespace
m_1_minute = 0;
std::list<tcp::endpoint> cs;
for (torrent::peer_iterator i = m_torrent.m_connections.begin()
, end(m_torrent.m_connections.end()); i != end; ++i)
for (torrent::peer_iterator i = m_torrent.begin()
, end(m_torrent.end()); i != end; ++i)
{
if (!i->second->is_local()) continue;
cs.push_back(i->first);