fixed incorrectly named members of session_status, fixed compilation error in ut_pex, documentation updates
This commit is contained in:
parent
d62801280f
commit
ce9eed5ea1
|
@ -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@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 "out of the box" 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&package_id=8041&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 "force conformance in for loop scope", "treat wchar_t as
|
|||
type" and "Enable Run-Time Type Info" 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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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@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@rasterbar.com">arvid@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 "v". 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
|
||||
|
|
|
@ -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@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 << " " << std::setw(11) << i->size
|
||||
<< " " << i->path.string() << "\n";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
catch (std::exception& 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 <iostream>
|
||||
|
@ -151,7 +151,7 @@ int main(int argc, char* argv[])
|
|||
entry e = bdecode(std::istream_iterator<char>(in)
|
||||
, std::istream_iterator<char>());
|
||||
s.add_torrent(torrent_info(e), "");
|
||||
|
||||
|
||||
// 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 <iostream>
|
||||
|
|
|
@ -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@rasterbar.com Ludvig Strigeus, ludde@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@utorrent.com">ludde@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
|
||||
|
|
|
@ -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@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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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@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@rasterbar.com">arvid@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"><libtorrent/extensions.hpp></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<peer_plugin> 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
|
||||
{
|
||||
|
|
470
docs/manual.html
470
docs/manual.html
File diff suppressed because it is too large
Load Diff
|
@ -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@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>
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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@gmail.com">stan8688@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@asio.cvs.sourceforge.net:/cvsroot/asio co -P as
|
|||
cvs -d:pserver:anonymous@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
|
||||
|
|
|
@ -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@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 "udp://" 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>
|
||||
|
|
|
@ -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 "libtorrent\boost_[version]\tools\build" 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">"-sTOOLS=vc-8_0"</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>
|
||||
|
|
|
@ -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
|
||||
};
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue