From 1b0ddc5560ca6fe5ea26ea0c1cea07b8d304c2ea Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Mon, 21 Jan 2013 19:13:24 +0000 Subject: [PATCH] update docs --- docs/building.html | 322 +++++++++++++++++++---------------- docs/client_test.html | 24 +-- docs/contributing.html | 12 +- docs/contributing.rst | 8 + docs/dht_extensions.html | 22 +-- docs/dht_rss.html | 60 +++---- docs/dht_sec.html | 2 +- docs/dht_store.html | 14 +- docs/examples.html | 6 +- docs/extension_protocol.html | 36 ++-- docs/features.html | 16 +- docs/index.html | 4 +- docs/libtorrent_plugins.html | 66 +++---- docs/make_torrent.html | 118 ++++++++----- docs/manual.html | 30 +++- docs/projects.html | 62 +++---- docs/python_binding.html | 26 +-- docs/running_tests.html | 12 +- docs/tuning.html | 56 +++--- docs/utp.html | 10 +- 20 files changed, 493 insertions(+), 413 deletions(-) diff --git a/docs/building.html b/docs/building.html index ced76a025..ae57338d7 100644 --- a/docs/building.html +++ b/docs/building.html @@ -3,7 +3,7 @@ - + libtorrent manual @@ -49,7 +49,7 @@ Author: Arvid Norberg, arvid@rasterbar.com Version: -0.16.0 +1.0.0
@@ -72,8 +72,8 @@ You'll find instructions on how to do this here (see subversion access).

The build systems supported "out of the box" in libtorrent are boost-build v2 (BBv2) and autotools (for unix-like systems). If you still can't build after -following these instructions, you can usually get help in the #libtorrent -IRC channel on irc.freenode.net.

+following these instructions, you can usually get help in the #libtorrent +IRC channel on irc.freenode.net.

Warning

A common mistake when building and linking against libtorrent is @@ -117,20 +117,20 @@ in order to build libtorrent.

Step 2: Setup BBv2

-

First you need to build bjam. You do this by opening a terminal (In -windows, run cmd). Change directory to +

First you need to build bjam. You do this by opening a terminal (In +windows, run cmd). Change directory to c:\boost_1_34_0\tools\jam\src. Then run the script called -build.bat or build.sh on a unix system. This will build bjam and -place it in a directory starting with bin. and then have the name of your -platform. Copy the bjam.exe (or bjam on a unix system) to a place -that's in you shell's PATH. On linux systems a place commonly used may be -/usr/local/bin or on windows c:\windows (you can also add directories -to the search paths by modifying the environment variable called PATH).

-

Now you have bjam installed. bjam can be considered an interpreter -that the boost-build system is implemented on. So boost-build uses bjam. +build.bat or build.sh on a unix system. This will build bjam and +place it in a directory starting with bin. and then have the name of your +platform. Copy the bjam.exe (or bjam on a unix system) to a place +that's in you shell's PATH. On linux systems a place commonly used may be +/usr/local/bin or on windows c:\windows (you can also add directories +to the search paths by modifying the environment variable called PATH).

+

Now you have bjam installed. bjam can be considered an interpreter +that the boost-build system is implemented on. So boost-build uses bjam. So, to complete the installation you need to make two more things. You need to -set the environment variable BOOST_BUILD_PATH. This is the path that tells -bjam where it can find boost-build, your configuration file and all the +set the environment variable BOOST_BUILD_PATH. This is the path that tells +bjam where it can find boost-build, your configuration file and all the toolsets (descriptions used by boost-build to know how to use different compilers on different platforms). Assuming the boost install path above, set it to c:\boost_1_34_0\tools\build\v2.

@@ -158,7 +158,7 @@ commandline used to invoke g++ after the version number, like this:

using gcc : 3.3 : g++-3.3 ; using gcc : 4.0 : g++-4.0 ; -

Another toolset worth mentioning is the darwin toolset (For MacOS X). +

Another toolset worth mentioning is the darwin toolset (For MacOS X). From Tiger (10.4) MacOS X comes with both GCC 3.3 and GCC 4.0. Then you can use the following toolsets:

@@ -170,12 +170,12 @@ using darwin : 4.0 : g++-4.0 ;
 

Step 3: Building libtorrent

-

When building libtorrent, the Jamfile expects the environment variable -BOOST_ROOT to be set to the boost installation directory. It uses this to +

When building libtorrent, the Jamfile expects the environment variable +BOOST_ROOT 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 files found. So, set this to c:\boost_1_34_0. You only need this if you're building against a source distribution of boost.

-

Then the only thing left is simply to invoke bjam. If you want to specify +

Then the only thing left is simply to invoke bjam. If you want to specify a specific toolset to use (compiler) you can just add that to the commandline. For example:

@@ -183,19 +183,25 @@ bjam msvc-7.1 boost=source
 bjam gcc-3.3 boost=source
 bjam darwin-4.0 boost=source
 
-

If you're building against a system installed boost, specify boost=system.

+

If you're building against a system installed boost, specify boost=system.

To build different versions you can also just add the name of the build -variant. Some default build variants in BBv2 are release, debug, -profile.

-

You can build libtorrent as a dll too, by typing link=shared, or -link=static to build a static library.

+variant. Some default build variants in BBv2 are release, debug, +profile.

+

You can build libtorrent as a dll too, by typing link=shared, or +link=static to build a static library.

If you want to explicitly say how to link against the runtime library, you -can set the runtime-link feature on the commandline, either to shared -or static. Most operating systems will only allow linking shared against +can set the runtime-link feature on the commandline, either to shared +or static. Most operating systems will only allow linking shared against the runtime, but on windows you can do both. Example:

 bjam msvc-7.1 link=static runtime-link=static boost=source
 
+
+

Note

+

When building on windows, the path boost-build puts targets in may be too +long. If you get an error message like: "The input line is long", try to +pass --abbreviate-paths on the bjam command line.

+

Warning

If you link statically to the runtime library, you cannot build libtorrent @@ -209,14 +215,14 @@ errors.

option to strip debug symbols. This option is buggy in Apple's GCC, and will make the executable crash on startup. On Mac OS X, instead build your release executables with the debug-symbols=on option, and -later strip your executable with strip.

+later strip your executable with strip.

Note

-

Some linux systems requires linking against librt in order to access +

Some linux systems requires linking against librt in order to access the POSIX clock functions. If you get an error complaining about a missing -symbol clock_gettime, you have to give need-librt=yes on the -bjam command line. This will make libtorrent link against librt.

+symbol clock_gettime, you have to give need-librt=yes on the +bjam command line. This will make libtorrent link against librt.

Note

@@ -226,14 +232,14 @@ on the bjam command line.

The build targets are put in a directory called bin, and under it they are sorted in directories depending on the toolset and build variant used.

To build the examples, just change directory to the examples directory and -invoke bjam from there. To build and run the tests, go to the test -directory and run bjam.

-

Note that if you're building on windows using the msvc toolset, you cannot run it -from a cygwin terminal, you'll have to run it from a cmd terminal. The same goes for +invoke bjam from there. To build and run the tests, go to the test +directory and run bjam.

+

Note that if you're building on windows using the msvc toolset, you cannot run it +from a cygwin terminal, you'll have to run it from a cmd terminal. The same goes for cygwin, if you're building with gcc in cygwin you'll have to run it from a cygwin terminal. Also, make sure the paths are correct in the different environments. In cygwin, the paths -(BOOST_BUILD_PATH and BOOST_ROOT) should be in the typical unix-format (e.g. -/cygdrive/c/boost_1_34_0). In the windows environment, they should have the typical +(BOOST_BUILD_PATH and BOOST_ROOT) should be in the typical unix-format (e.g. +/cygdrive/c/boost_1_34_0). In the windows environment, they should have the typical windows format (c:/boost_1_34_0).

Note

@@ -241,7 +247,7 @@ windows format (c:/boost_1_34_0
-

The Jamfile will define NDEBUG when it's building a release build. +

The Jamfile will define NDEBUG when it's building a release build. For more build configuration flags see Build configurations.

Build features:

@@ -255,74 +261,74 @@ For more build configuration flags see - + - + - + - + - + - + - + @@ -397,41 +403,41 @@ information. - + - + + + + + + +
boost
boost
    -
  • system - default. Tells the Jamfile that +
  • system - default. Tells the Jamfile that boost is installed and should be linked against the system libraries.
  • -
  • source - Specifies that boost is to be built +
  • source - Specifies that boost is to be built from source. The environment variable -BOOST_ROOT must be defined to point to the +BOOST_ROOT must be defined to point to the boost directory.
boost-link
    -
  • static - links statically against the boost +
  • static - links statically against the boost libraries.
  • -
  • shared - links dynamically against the boost +
  • shared - links dynamically against the boost libraries.
logging
logging
    -
  • none - no logging.
  • -
  • default - basic session logging.
  • -
  • verbose - verbose peer wire logging.
  • -
  • errors - like verbose, but limited to errors.
  • +
  • none - no logging.
  • +
  • default - basic session logging.
  • +
  • verbose - verbose peer wire logging.
  • +
  • errors - like verbose, but limited to errors.
dht-support
    -
  • on - build with support for tracker less +
  • on - build with support for tracker less torrents and DHT support.
  • -
  • logging - build with DHT support and verbose +
  • logging - build with DHT support and verbose logging of the DHT protocol traffic.
  • -
  • off - build without DHT support.
  • +
  • off - build without DHT support.
need-librt
    -
  • no - this platform does not need to link +
  • no - this platform does not need to link against librt to have POSIX time functions.
  • -
  • yes - specify this if your linux system +
  • yes - specify this if your linux system requires you to link against librt.a. This is typically the case on x86 64 bit systems.
asserts
asserts
    -
  • auto - asserts are on if in debug mode
  • -
  • on - asserts are on, even in release mode
  • -
  • off - asserts are disabled
  • -
  • production - assertion failures are logged -to asserts.log in the current working +
  • auto - asserts are on if in debug mode
  • +
  • on - asserts are on, even in release mode
  • +
  • off - asserts are disabled
  • +
  • production - assertion failures are logged +to asserts.log in the current working directory, but won't abort the process.
geoip
geoip
    -
  • off - geo ip lookups disabled
  • -
  • static - MaxMind geo ip lookup code linked +
  • off - geo ip lookups disabled
  • +
  • static - MaxMind geo ip lookup code linked in statically. Note that this code is under LGPL license.
  • -
  • shared - The MaxMind geo ip lookup library +
  • shared - The MaxMind geo ip lookup library is expected to be installed on the system and it will be used.
@@ -330,24 +336,24 @@ it will be used.
upnp-logging
    -
  • off - default. Does not log UPnP traffic.
  • -
  • on - creates "upnp.log" with the messages +
  • off - default. Does not log UPnP traffic.
  • +
  • on - creates "upnp.log" with the messages sent to and received from UPnP devices.
encryption
encryption
    -
  • openssl - links against openssl and +
  • openssl - links against openssl and libcrypto to enable https and encrypted bittorrent connections.
  • -
  • gcrypt - links against libgcrypt to enable +
  • gcrypt - links against libgcrypt to enable encrypted bittorrent connections.
  • -
  • tommath - uses a shipped version of +
  • tommath - uses a shipped version of libtommath and a custom rc4 implementation (based on libtomcrypt). This is the default option.
  • -
  • off - turns off support for encrypted +
  • off - turns off support for encrypted connections. The shipped public domain SHA-1 implementation is used.
@@ -355,40 +361,40 @@ implementation is used.
pool-allocators
    -
  • on - default, uses pool allocators for send +
  • on - default, uses pool allocators for send buffers.
  • -
  • off - uses malloc() and free() +
  • off - uses malloc() and free() instead. Might be useful to debug buffer issues with tools like electric fence or libgmalloc.
link
link
    -
  • static - builds libtorrent as a static +
  • static - builds libtorrent as a static library (.a / .lib)
  • -
  • shared - builds libtorrent as a shared +
  • shared - builds libtorrent as a shared library (.so / .dll).
runtime-link
    -
  • static - links statically against the +
  • static - links statically against the run-time library (if available on your platform).
  • -
  • shared - link dynamically against the +
  • shared - link dynamically against the run-time library (default).
variant
variant
    -
  • debug - builds libtorrent with debug +
  • debug - builds libtorrent with debug information and invariant checks.
  • -
  • release - builds libtorrent in release mode +
  • release - builds libtorrent in release mode without invariant checks and with optimization.
  • -
  • profile - builds libtorrent with profile +
  • profile - builds libtorrent with profile information.

This setting will only have an affect on windows. Other platforms are expected to support UTF-8.

    -
  • unicode - The unicode version of the win32 +
  • unicode - The unicode version of the win32 API is used. This is default.
  • -
  • ansi - The ansi version of the win32 API is +
  • ansi - The ansi version of the win32 API is used.
invariant-checks

This setting only affects debug builds (where -NDEBUG is not defined). It defaults to on.

+NDEBUG is not defined). It defaults to on.

    -
  • on - internal invariant checks are enabled.
  • -
  • off - internal invariant checks are +
  • on - internal invariant checks are enabled.
  • +
  • off - internal invariant checks are disabled. The resulting executable will run faster than a regular debug build.
  • -
  • full - turns on extra expensive invariant +
  • full - turns on extra expensive invariant checks.
debug-symbols
    -
  • on - default for debug builds. This setting +
  • on - default for debug builds. This setting is useful for building release builds with symbols.
  • -
  • off - default for release builds.
  • +
  • off - default for release builds.
deprecated-functions
    -
  • on - default. Includes deprecated functions +
  • on - default. Includes deprecated functions of the API (might produce warnings during build when deprecated functions are used).
  • -
  • off - excludes deprecated functions from the +
  • off - excludes deprecated functions from the API. Generates build errors when deprecated functions are used.
@@ -439,45 +445,63 @@ functions are used.
full-stats
    -
  • on - default, collects stats for IP overhead +
  • on - default, collects stats for IP overhead and DHT and trackers. This uses a little bit extra memory for each peer and torrent.
  • -
  • off - only collects the standard stats for +
  • off - only collects the standard stats for upload and download rate.
iconv
iconv
    -
  • auto - use iconv for string conversions for +
  • auto - use iconv for string conversions for linux and mingw and other posix platforms.
  • -
  • on - force use of iconv
  • -
  • off - force not using iconv (disables locale +
  • on - force use of iconv
  • +
  • off - force not using iconv (disables locale awareness except on windows).
asserts
asserts
    -
  • off - disable all asserts
  • -
  • peoduction - enable asserts in release +
  • off - disable all asserts
  • +
  • peoduction - enable asserts in release builds, but don't abort, just log them to -extern char const* libtorrent_assert_log.
  • -
  • on - enable asserts in debug builds (this is +extern char const* libtorrent_assert_log.
  • +
  • on - enable asserts in debug builds (this is the default). On GNU systems, print a stack trace of the assert and some more information.
  • -
  • system use the libc assert macro
  • +
  • system use the libc assert macro
  • +
+
i2p
    +
  • on - build with I2P support
  • +
  • off - build without I2P support
  • +
+
boost-date-time
    +
  • off - don't build asio types that depend +on boost.date_time. libtorrent doesn't use them +but if the client does, you need these to be +built.
  • +
  • on - build asio types that depend on +boost.date_time.
-

The variant feature is implicit, which means you don't need to specify +

The variant feature is implicit, which means you don't need to specify the name of the feature, just the value.

The logs created when building vlog or log mode are put in a directory called -libtorrent_logs in the current working directory.

+libtorrent_logs in the current working directory.

When building the example client on windows, you need to build with -link=static otherwise you may get unresolved external symbols for some +link=static otherwise you may get unresolved external symbols for some boost.program-options symbols.

For more information, see the Boost build v2 documentation, or more specifically the section on builtin features.

@@ -485,7 +509,7 @@ specifically

building with autotools

-

First of all, you need to install automake and autoconf. Many +

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 compiled boost libraries needed. The @@ -493,7 +517,7 @@ headers-only libraries needed include (but is not necessarily limited to) boost.bind, boost.ref, boost.multi_index, boost.optional, boost.lexical_cast, boost.integer, boost.iterator, boost.tuple, boost.array, boost.function, boost.smart_ptr, boost.preprocessor, boost.static_assert.

-

If you want to build the client_test example, you'll also need boost.regex +

If you want to build the client_test example, you'll also need boost.regex and boost.program_options.

Step 1: Generating the build system

@@ -508,7 +532,7 @@ you may skip directly to

Step 2: Running configure

In your shell, change directory to the libtorrent directory and run -./configure. This will look for libraries and C++ features that libtorrent +./configure. 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 error telling you what failed.

The most likely problem you may encounter is that the configure script won't @@ -518,10 +542,10 @@ system on your platform. Usually libraries and headers are installed in standard directories where the compiler will find them, but sometimes that may not be the case. For example when installing boost on darwin using darwinports (the package system based on BSD ports) all libraries are -installed to /opt/local/lib and headers are installed to -/opt/local/include. By default the compiler will not look in these -directories. You have to set the enviornment variables LDFLAGS and -CXXFLAGS in order to make the compiler find those libs. In this example +installed to /opt/local/lib and headers are installed to +/opt/local/include. By default the compiler will not look in these +directories. You have to set the enviornment variables LDFLAGS and +CXXFLAGS in order to make the compiler find those libs. In this example you'd set them like this:

 export LDFLAGS=-L/opt/local/lib
@@ -539,7 +563,7 @@ library in this case. For more information about these options, run:

./configure --help

On gentoo the boost libraries that are built with multi-threading support have -the suffix mt.

+the suffix mt.

You know that the boost libraries were found if you see the following output from the configure script:

@@ -575,10 +599,10 @@ with the following option:

Step 3: Building libtorrent

-

Once the configure script is run successfully, you just type make and +

Once the configure script is run successfully, you just type make and libtorrent, the examples and the tests will be built.

When libtorrent is built it may be a good idea to run the tests, you do this -by running make check.

+by running make check.

If you want to build a release version (without debug info, asserts and invariant checks), you have to rerun the configure script and rebuild, like this:

@@ -611,7 +635,7 @@ defines you can use to control the build.

-NDEBUG +NDEBUG If you define this macro, all asserts, invariant checks and general debug code will be removed. Since there is quite a lot of code in @@ -622,100 +646,100 @@ files. Potential problems is different compilation units having different views of structs and class layouts and sizes. -TORRENT_LOGGING +TORRENT_LOGGING This macro will enable logging of the session events, such as tracker announces and incoming connections (as well as blocked connections). -TORRENT_DISABLE_GEO_IP +TORRENT_DISABLE_GEO_IP This is defined by default by the Jamfile. It disables the GeoIP features, and avoids linking against LGPL:ed code. -TORRENT_VERBOSE_LOGGING +TORRENT_VERBOSE_LOGGING If you define this macro, every peer connection will log its traffic to a log file as well as the session log. -TORRENT_STORAGE_DEBUG +TORRENT_STORAGE_DEBUG This will enable extra expensive invariant checks in the storage, including logging of piece sorting. -TORRENT_UPNP_LOGGING +TORRENT_UPNP_LOGGING Generates a "upnp.log" file with the UPnP traffic. This is very useful when debugging support for various UPnP routers. support for various UPnP routers. -TORRENT_DISK_STATS +TORRENT_DISK_STATS This will create a log of all disk activity which later can parsed and graphed using -parse_disk_log.py. +parse_disk_log.py. -TORRENT_STATS +TORRENT_STATS This will generate a log with transfer rates, downloading torrents, seeding torrents, peers, connecting peers and disk buffers in use. The log can be parsed and graphed with -parse_session_stats.py. +parse_session_stats.py. -UNICODE +UNICODE If building on windows this will make sure the UTF-8 strings in pathnames are converted into UTF-16 before they are passed to the file operations. -TORRENT_DISABLE_POOL_ALLOCATOR +TORRENT_DISABLE_POOL_ALLOCATOR Disables use of boost::pool<>. -TORRENT_LINKING_SHARED +TORRENT_LINKING_SHARED If this is defined when including the libtorrent headers, the classes and functions -will be tagged with __declspec(dllimport) +will be tagged with __declspec(dllimport) on msvc and default visibility on GCC 4 and later. Set this in your project if you're linking against libtorrent as a shared library. (This is set by the Jamfile when -link=shared is set). +link=shared is set). -TORRENT_BUILDING_SHARED +TORRENT_BUILDING_SHARED If this is defined, the functions and classes in libtorrent are marked with -__declspec(dllexport) on msvc, or with +__declspec(dllexport) on msvc, or with default visibility on GCC 4 and later. This should be defined when building libtorrent as a shared library. (This is set by the Jamfile -when link=shared is set). +when link=shared is set). -TORRENT_DISABLE_DHT +TORRENT_DISABLE_DHT If this is defined, the support for trackerless torrents will be disabled. -TORRENT_DHT_VERBOSE_LOGGING +TORRENT_DHT_VERBOSE_LOGGING This will enable verbose logging of the DHT protocol traffic. -TORRENT_DISABLE_ENCRYPTION +TORRENT_DISABLE_ENCRYPTION This will disable any encryption support and the dependencies of a crypto library. Encryption support is the peer connection encrypted supported by clients such as uTorrent, Azureus and KTorrent. If this is not defined, either -TORRENT_USE_OPENSSL or -TORRENT_USE_GCRYPT must be defined. +TORRENT_USE_OPENSSL or +TORRENT_USE_GCRYPT must be defined. -_UNICODE +_UNICODE On windows, this will cause the file IO use wide character API, to properly support non-ansi characters. -TORRENT_DISABLE_RESOLVE_COUNTRIES +TORRENT_DISABLE_RESOLVE_COUNTRIES Defining this will disable the ability to resolve countries of origin for peer IPs. -TORRENT_DISABLE_INVARIANT_CHECKS +TORRENT_DISABLE_INVARIANT_CHECKS This will disable internal invariant checks in libtorrent. The invariant checks can sometime be quite expensive, they typically don't scale @@ -723,30 +747,30 @@ very well. This option can be used to still build in debug mode, with asserts enabled, but make the resulting executable faster. -TORRENT_EXPENSIVE_INVARIANT_CHECKS +TORRENT_EXPENSIVE_INVARIANT_CHECKS This will enable extra expensive invariant checks. Useful for finding particular bugs or for running before releases. -TORRENT_NO_DEPRECATE +TORRENT_NO_DEPRECATE This will exclude all deprecated functions from the header files and cpp files. -TORRENT_PRODUCTION_ASSERTS +TORRENT_PRODUCTION_ASSERTS Define to either 0 or 1. Enables assert logging in release builds. -TORRENT_NO_ASSERTS +TORRENT_NO_ASSERTS Disables all asserts. -TORRENT_USE_SYSTEM_ASSERTS +TORRENT_USE_SYSTEM_ASSERTS Uses the libc assert macro rather then the custom one.

If you experience that libtorrent uses unreasonable amounts of cpu, it will -definitely help to define NDEBUG, since it will remove the invariant checks +definitely help to define NDEBUG, since it will remove the invariant checks within the library.

diff --git a/docs/client_test.html b/docs/client_test.html index 3852c2fc5..debf477eb 100644 --- a/docs/client_test.html +++ b/docs/client_test.html @@ -3,7 +3,7 @@ - + client_test example program @@ -51,30 +51,30 @@ client_test <filename1.torrent> <filename2.torrent> ...

You can start any number of torrent downloads/seeds via the commandline. If one argument starts with http:// it is interpreted as a tracker announce url, and it expects an info-hash as the next argument. The info-hash -has to be hex-encoded. For example: 2410d4554d5ed856d69f426c38791673c59f4418. +has to be hex-encoded. For example: 2410d4554d5ed856d69f426c38791673c59f4418. If you pass an announce url and info-hash, a torrent-less download is started. It relies on that at least one peer on the tracker is running a libtorrent based 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).

-

While running, the client_test sample will look something like this:

+

While running, the client_test sample will look something like this:

client_test.png

The commands available in the client are:

    -
  • q quits the client (there will be a delay while the client waits +
  • q quits the client (there will be a delay while the client waits for tracker responses)
  • -
  • l toggle log. Will display the log at the bottom, informing about +
  • l toggle log. Will display the log at the bottom, informing about tracker and peer events.
  • -
  • i toggles torrent info. Will show the peer list for each torrent.
  • -
  • d toggle download info. Will show the block list for each torrent, +
  • i toggles torrent info. Will show the peer list for each torrent.
  • +
  • d toggle download info. Will show the block list for each torrent, showing downloaded and requested blocks.
  • -
  • p pause all torrents.
  • -
  • u unpause all torrents.
  • -
  • r force tracker reannounce for all torrents.
  • -
  • f toggle show file progress. Displays a list of all files and the +
  • p pause all torrents.
  • +
  • u unpause all torrents.
  • +
  • r force tracker reannounce for all torrents.
  • +
  • f toggle show file progress. Displays a list of all files and the download progress for each file.
-

The list at the bottom (shown if you press d) shows which blocks has +

The list at the bottom (shown if you press d) shows which blocks has 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 diff --git a/docs/contributing.html b/docs/contributing.html index 2975aa1bc..f8a327dea 100644 --- a/docs/contributing.html +++ b/docs/contributing.html @@ -3,7 +3,7 @@ - + libtorrent manual @@ -49,7 +49,7 @@ Author: Arvid Norberg, arvid@rasterbar.com Version: -0.16.0 +1.0.0

@@ -69,9 +69,9 @@ enumerated on this page, please contact This is not just limited to finding bugs and ways to reproduce crashes, but also sub-optimal behavior is certain scenarios and finding ways to reproduce those. Please report any issue to the bug tracker at google code.

-

New features that need testing are streaming (set_piece_deadline()), the different +

New features that need testing are streaming (set_piece_deadline()), the different choking algorithms (especially the new BitTyrant choker), the disk cache options (such -as explicit_cache).

+as explicit_cache).

@@ -90,13 +90,15 @@ descriptions on how to configure libtorrent for various situations for instance.
Code

Contributing code for new features or bug-fixes is highly welcome. If you're interested in adding a feature but not sure where to start, please contact the mailing list or -#libtorrent @ irc.freenode.net.

+#libtorrent @ irc.freenode.net.

New features might be better support for integrating with other services, new choking algorithms, seeding policies, ports to new platforms etc.

+

For an overview of the internals of libtorrent, see the hacking page.

+

For outstanding things to do, see the todo list.