From bff043da064349ac676d46a51f0c775ed0faf090 Mon Sep 17 00:00:00 2001 From: Arvid Norberg Date: Sat, 21 Mar 2009 04:36:46 +0000 Subject: [PATCH] regenerated html --- docs/building.html | 2 +- docs/client_test.html | 2 +- docs/dht_extensions.html | 4 +- docs/examples.html | 14 +- docs/extension_protocol.html | 6 +- docs/features.html | 31 +- docs/libtorrent_plugins.html | 30 +- docs/make_torrent.html | 76 ++-- docs/manual.html | 658 ++++++++++++++++++++------------- docs/projects.html | 2 +- docs/python_binding.html | 18 +- docs/udp_tracker_protocol.html | 44 +-- 12 files changed, 541 insertions(+), 346 deletions(-) diff --git a/docs/building.html b/docs/building.html index f17bcb223..e9aef2885 100644 --- a/docs/building.html +++ b/docs/building.html @@ -3,7 +3,7 @@ - + libtorrent manual diff --git a/docs/client_test.html b/docs/client_test.html index 8149e67c0..0ec6bb21a 100644 --- a/docs/client_test.html +++ b/docs/client_test.html @@ -3,7 +3,7 @@ - + client_test example program diff --git a/docs/dht_extensions.html b/docs/dht_extensions.html index c8639e165..a869a639b 100644 --- a/docs/dht_extensions.html +++ b/docs/dht_extensions.html @@ -3,7 +3,7 @@ - + @@ -36,7 +36,7 @@ Author: -Arvid Norberg, arvid@rasterbar.com +Arvid Norberg, arvid@rasterbar.com
diff --git a/docs/examples.html b/docs/examples.html index f7bee5413..b6424391c 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -3,7 +3,7 @@ - + libtorrent Examples @@ -36,16 +36,16 @@ Author: -Arvid Norberg, arvid@rasterbar.com +Arvid Norberg, arvid@rasterbar.com

Table of contents

-
  • portability
  • +
  • portability
  • @@ -94,6 +95,8 @@ uTorrent interpretation).
  • super seeding/initial seeding (BEP 16).
  • private torrents (BEP 27).
  • support for IPv6, including BEP 7 and BEP 24.
  • +
  • support for merkle hash tree torrents. This makes the size of torrent files +scale well with the size of the content.
  • @@ -202,6 +205,32 @@ makes slow peers pick blocks from the same piece, and fast peers pick from the s and hence decreasing the likelihood of slow peers blocking the completion of pieces.

    The piece picker can also be set to download pieces in sequential order.

    +
    +

    merkle hash tree torrents

    +

    Merkle hash tree torrents is an extension that lets a torrent file only contain the +root hash of the hash tree forming the piece hashes. The main benefit of this feature +is that regardless of how many pieces there is in a torrent, the .torrent file will +always be the same size. It will only grow with the number of files (since it still +has to contain the file names).

    +

    With regular torrents, clients have to request multiple blocks for pieces, typically +from different peers, before the data can be verified against the piece hash. The +larger the pieces are, the longer it will take to download a complete piece and verify +it. Before the piece is verified, it cannot be shared with the swarm, which means the +larger piece sizes, the slower turnaround data has when it is downloaded by peers. +Since on average the data has to sit around, waiting, in client buffers before it has +been verified and can be uploaded again.

    +

    Another problem with large piece sizes is that it is harder for a client to pinpoint +the malicious or buggy peer when a piece fails, and it will take longer to re-download +it and take more tries before the piece succeeds the larger the pieces are.

    +

    The piece size in regular torrents is a tradeoff between the size of the .torrent file +itself and the piece size. Often, for files that are 4 GB, the piece size is 2 or 4 MB, +just to avoid making the .torrent file too big.

    +

    Merkle torrents solves these problems by removing the tradeoff between .torrent size and +piece size. With merkle torrents, the piece size can be the minimum block size (16 kB), +which lets peers verify every block of data received from peers, immediately. This +gives a minimum turnaround time and completely removes the problem of identifying malicious +peers.

    +

    portability

    diff --git a/docs/libtorrent_plugins.html b/docs/libtorrent_plugins.html index 72267f57f..4a93f1835 100644 --- a/docs/libtorrent_plugins.html +++ b/docs/libtorrent_plugins.html @@ -3,7 +3,7 @@ - + @@ -36,7 +36,7 @@ Author: -Arvid Norberg, arvid@rasterbar.com +Arvid Norberg, arvid@rasterbar.com
    @@ -44,21 +44,21 @@

    libtorrent has a plugin interface for implementing extensions to the protocol. @@ -68,7 +68,7 @@ to fit a particular (closed) network.

    In short, the plugin interface makes it possible to:

    • register extension messages (sent in the extension handshake), see -extensions.
    • +extensions.
    • add data and parse data from the extension handshake.
    • send extension messages and standard bittorrent messages.
    • override or block the handling of standard bittorrent messages.
    • @@ -85,7 +85,7 @@ thread, you cannot use any of the member functions on the internal structures in libtorrent, since those require the mutex to be locked. Futhermore, you would also need to have a mutex on your own shared data within the plugin, to make sure it is not accessed at the same time from the libtorrent thread (through a -callback). See boost thread's mutex. If you need to send out a message from +callback). See boost thread's mutex. If you need to send out a message from another thread, use an internal queue, and do the actual sending in tick().

    diff --git a/docs/make_torrent.html b/docs/make_torrent.html index 5d62a91b2..c1cc6de29 100644 --- a/docs/make_torrent.html +++ b/docs/make_torrent.html @@ -3,7 +3,7 @@ - + creating torrents @@ -36,30 +36,30 @@ Author: -Arvid Norberg, arvid@rasterbar.com +Arvid Norberg, arvid@rasterbar.com

    Table of contents

    file_storage

    @@ -234,7 +246,8 @@ attribute_executable
     struct create_torrent
     {
    -        create_torrent(file_storage& fs, int piece_size = 0, int pad_size_limit = -1);
    +        enum { optimize = 1, merkle = 2 };
    +        create_torrent(file_storage& fs, int piece_size = 0, int pad_size_limit = -1, int flags = optimize);
             create_torrent(torrent_info const& ti);
     
             entry generate() const;
    @@ -259,7 +272,8 @@ struct create_torrent
     

    create_torrent()

    -create_torrent(file_storage& fs, int piece_size = 0, int pad_size_limit = -1);
    +enum { optimize = 1, merkle = 2 };
    +create_torrent(file_storage& fs, int piece_size = 0, int pad_size_limit = -1, int flags = optimize);
     create_torrent(torrent_info const& ti);
     
    @@ -268,13 +282,27 @@ be a multiple of 16 kiB. If a piece size of 0 is specified, a piece_size will becalculated such that the torrent file is roughly 40 kB.

    If a pad_size_limit is specified (other than -1), any file larger than the specified number of bytes will be preceeded by a pad file to align it -with the start od a piece.

    -

    The overlad that takes a torrent_info object will make a verbatim +with the start od a piece. The pad_file_limit is ignored unless the +optimize flag is passed.

    +

    The overload that takes a torrent_info object will make a verbatim copy of its info dictionary (to preserve the info-hash). The copy of the info dictionary will be used by generate(). This means that none of the member functions of create_torrent that affects the content of the info dictionary (such as set_hash()), will have any affect.

    +

    The flags arguments specifies options for the torrent creation. It can +be any combination of the following flags:

    +
    +
    optimize
    +
    This will insert pad files to align the files to piece boundaries, for +optimized disk-I/O.
    +
    merkle
    +
    This will create a merkle hash tree torrent. A merkle torrent cannot +be opened in clients that don't specifically support merkle torrents. +The benefit is that the resulting torrent file will be much smaller and +not grow with more pieces. When this option is specified, it is +recommended to have a 16 kiB piece size.
    +

    generate()

    @@ -318,7 +346,7 @@ void set_hash(int index, sha1_hash const& h);

    This sets the SHA-1 hash for the specified piece (index). You are required to set the hash for every piece in the torrent before generating it. If you have the files on disk, you can use the high level convenience function to do this. -See set_piece_hashes().

    +See set_piece_hashes().

    add_url_seed()

    @@ -353,7 +381,7 @@ void add_tracker(std::string const& url, int tier = 0);

    Adds a tracker to the torrent. This is not strictly required, but most torrents -use a tracker as their main source of peers. The url should be an http:// or udp:// +use a tracker as their main source of peers. The url should be an http:// or udp:// url to a machine running a bittorrent tracker that accepts announces for this torrent's info-hash. The tier is the fallback priority of the tracker. All trackers with tier 0 are tried first (in any order). If all fail, trackers with tier 1 are tried. If all of those diff --git a/docs/manual.html b/docs/manual.html index 32fd071c8..c9d16b2c8 100644 --- a/docs/manual.html +++ b/docs/manual.html @@ -44,222 +44,220 @@

    Table of contents

    @@ -340,6 +338,9 @@ class session: public boost::noncopyable torrent_handle add_torrent( add_torrent_params const& params); + torrent_handle add_torrent( + add_torrent_params const& params + , error_code& ec); void pause(); void resume(); @@ -542,13 +543,18 @@ struct add_torrent_params storage_constructor_type storage; void* userdata; bool seed_mode; + bool override_resume_data; }; torrent_handle add_torrent(add_torrent_params const& params); +torrent_handle add_torrent(add_torrent_params const& params + , error_code& ec);

    You add torrents through the add_torrent() function where you give an object with all the parameters.

    +

    The overload that does not take an error_code throws an exception on +error and is not available when building without exception support.

    The only mandatory parameter is save_path which is the directory where you want the files to be saved. You also need to specify either the ti (the torrent file) or info_hash (the info hash of the torrent). If you specify the @@ -563,7 +569,7 @@ the torrent as long as it doesn't have metadata. See add_torrent() will throw -duplicate_torrent which derives from std::exception unless duplicate_is_error +libtorrent_exception which derives from std::exception unless duplicate_is_error is set to false. In that case, add_torrent will return the handle to the existing torrent.

    The optional parameter, resume_data can be given if up to date fast-resume data @@ -593,10 +599,16 @@ downloaded. a paused state. I.e. it won't connect to the tracker or any of the peers until it's resumed. This is typically a good way of avoiding race conditions when setting configuration options on torrents before starting them.

    +

    If you pass in resume data, the paused state of the torrent when the resume data +was saved will override the paused state you pass in here. You can override this +by setting override_resume_data.

    If auto_managed is true, this torrent will be queued, started and seeded automatically by libtorrent. When this is set, the torrent should also be started as paused. The default queue order is the order the torrents were added. They are all downloaded in that order. For more details, see queuing.

    +

    If you pass in resume data, the auto_managed state of the torrent when the resume data +was saved will override the auto_managed state you pass in here. You can override this +by setting override_resume_data.

    storage can be used to customize how the data is stored. The default storage will simply write the data to the files it belongs to, but it could be overridden to save everything to a single file at a specific location or encrypt the @@ -613,8 +625,13 @@ is created and seeded, or if the user already know that the files are complete, is a way to avoid the initial file checks, and significantly reduce the startup time.

    Setting seed_mode on a torrent without metadata (a .torrent file) is a no-op and will be ignored.

    +

    If resume data is passed in with this torrent, the seed mode saved in there will +override the seed mode you set here.

    The torrent_handle returned by add_torrent() can be used to retrieve information about the torrent's progress, its peers etc. It is also used to abort a torrent.

    +

    If override_resume_data is set to true, the paused and auto_managed +state of the torrent are not loaded from the resume data, but the states requested +by this add_torrent_params will override it.

    remove_torrent()

    @@ -628,7 +645,7 @@ the tracker that we've stopped participating in the swarm. The optional second a options can be used to delete all the files downloaded by this torrent. To do this, pass in the value session::delete_files. The removal of the torrent is asyncronous, there is no guarantee that adding the same torrent immediately after it was removed will not throw -a duplicate_torrent exception.

    +a libtorrent_exception exception.

    find_torrent() get_torrents()

    @@ -1314,7 +1331,7 @@ dictionary_type const& dict() const;

    The integer(), string(), list() and dict() functions are accessors that return the respective type. If the entry object isn't of the -type you request, the accessor will throw type_error (which derives from +type you request, the accessor will throw libtorrent_exception (which derives from std::runtime_error). You can ask an entry for its type through the type() function.

    The print() function is there for debug purposes only.

    @@ -1525,10 +1542,22 @@ in a storage, the storage needs to make its own copy of the orig_files() returns the original (unmodified) file storage for this torrent. This is used by the web server connection, which needs to request files with the original -names.

    +names. Filename may be chaged using torrent_info::rename_file().

    For more information on the file_storage object, see the separate document on how to create torrents.

    +
    +

    rename_file()

    +
    +
    +void rename_file(int index, std::string const& new_filename);
    +void rename_file(int index, std::wstring const& new_filename);
    +
    +
    +

    Renames a the file with the specified index to the new name. The new filename is +reflected by the file_storage returned by files() but not by the one +returned by orig_files().

    +

    begin_files() end_files() rbegin_files() rend_files()

    @@ -1867,6 +1896,9 @@ struct torrent_handle void resolve_countries(bool r); bool resolve_countries() const; + enum deadline_flags { alert_when_available = 1 }; + void set_piece_deadline(int index, time_duration deadline, int flags = 0) const; + void piece_priority(int index, int priority) const; int piece_priority(int index) const; void prioritize_pieces(std::vector<int> const& pieces) const; @@ -1910,12 +1942,33 @@ valid handle. If you try to perform any operation on an uninitialized handle, it will throw invalid_handle.

    Warning

    -

    All operations on a torrent_handle may throw invalid_handle +

    All operations on a torrent_handle may throw libtorrent_exception exception, in case the handle is no longer refering to a torrent. There is one exception is_valid() will never throw. Since the torrents are processed by a background thread, there is no guarantee that a handle will remain valid between two calls.

    +
    +

    set_piece_deadline()

    +
    +
    +enum deadline_flags { alert_when_available = 1 };
    +void set_piece_deadline(int index, time_duration deadline, int flags = 0) const;
    +
    +
    +

    This function sets or resets the deadline associated with a specific piece +index (index). libtorrent will attempt to download this entire piece before +the deadline expires. This is not necessarily possible, but pieces with a more +recent deadline will always be prioritized over pieces with a deadline further +ahead in time. The deadline (and flags) of a piece can be changed by calling this +function again.

    +

    The flags parameter can be used to ask libtorrent to send an alert once the +piece has been downloaded, by passing alert_when_available. When set, the +read_piece_alert alert will be delivered, with the piece data, when it's downloaded.

    +

    If the piece is already downloaded when this call is made, nothing happens, unless +the alert_when_available flag is set, in which case it will do the same thing +as calling read_piece() for index.

    +

    piece_priority() prioritize_pieces() piece_priorities()

    @@ -2018,7 +2071,7 @@ drop while copying the file.

    Once the operation completes, the storage_moved_alert is generated, with the new path as the message.

    -
    +

    rename_file()

    @@ -2123,7 +2176,7 @@ void connect_peer(asio::ip::tcp::endpoint const& adr, int source = 0) const;
     torrent. If the peer does not respond, or is not a member of this torrent, it will simply
     be disconnected. No harm can be done by using this other than an unnecessary connection
     attempt is made. If the torrent is uninitialized or in queued or checking mode, this
    -will throw invalid_handle. The second (optional) argument will be bitwised ORed into
    +will throw libtorrent_exception. The second (optional) argument will be bitwised ORed into
     the source mask of this peer. Typically this is one of the source flags in peer_info.
     i.e. tracker, pex, dht etc.

    @@ -2198,7 +2251,7 @@ void set_peer_download_limit(asio::ip::tcp::endpoint ip, int limit) const;

    Works like set_upload_limit and set_download_limit respectively, but controls individual peer instead of the whole torrent.

    -
    +

    pause() resume() is_paused()

    @@ -2403,7 +2456,7 @@ sha1_hash info_hash() const;
     

    info_hash() returns the info-hash for the torrent.

    -
    +

    set_max_uploads() set_max_connections() max_connections()

    @@ -2515,7 +2568,7 @@ while (num_resume_data > 0)
     }
     
    -
    +

    status()

    @@ -2523,7 +2576,7 @@ torrent_status status() const;
     

    status() will return a structure with information about the status of this -torrent. If the torrent_handle is invalid, it will throw invalid_handle exception. +torrent. If the torrent_handle is invalid, it will throw libtorrent_exception exception. See torrent_status.

    @@ -2588,7 +2641,7 @@ void get_peer_info(std::vector<peer_info>&) const;

    get_peer_info() takes a reference to a vector that will be cleared and filled with one entry for each peer connected to this torrent, given the handle is valid. If the -torrent_handle is invalid, it will throw invalid_handle exception. Each entry in +torrent_handle is invalid, it will throw libtorrent_exception exception. Each entry in the vector contains information about that particular peer. See peer_info.

    @@ -2600,7 +2653,7 @@ torrent_info const& get_torrent_info() const;

    Returns a const reference to the torrent_info object associated with this torrent. This reference is valid as long as the torrent_handle is valid, no longer. If the -torrent_handle is invalid or if it doesn't have any metadata, invalid_handle +torrent_handle is invalid or if it doesn't have any metadata, libtorrent_exception exception will be thrown. The torrent may be in a state without metadata only if it was started without a .torrent file, i.e. by using the libtorrent extension of just supplying a tracker and info-hash.

    @@ -3301,6 +3354,8 @@ struct session_settings int max_sparse_regions; bool lock_disk_cache; + + int max_rejects; };

    user_agent this is the client identification to the tracker. @@ -3569,6 +3624,9 @@ to 0 on all platforms except windows.

    lock_disk_cache if lock disk cache is set to true the disk cache that's in use, will be locked in physical memory, preventing it from being swapped out.

    +

    max_rejects is the number of piece requests we will reject in a row +while a peer is choked before the peer is considered abusive and is +disconnected.

    pe_settings

    @@ -3716,7 +3774,7 @@ public: }; -
    +

    ip_filter()

    @@ -4068,7 +4126,7 @@ entry e = bdecode(buf, buf + data_size);
     

    Now we just need to know how to retrieve information from the entry.

    If bdecode() encounters invalid encoded data in the range given to it -it will throw invalid_encoding.

    +it will throw libtorrent_exception.

    @@ -4741,60 +4803,19 @@ including <libtorrent/alert.hp

    exceptions

    -

    There are a number of exceptions that can be thrown from different places in libtorrent, -here's a complete list with description.

    -
    -

    invalid_handle

    -

    This exception is thrown when querying information from a torrent_handle that hasn't -been initialized or that has become invalid.

    +

    Many functions in libtorrent have two versions, one that throws exceptions on +errors and one that takes an error_code reference which is filled with the +error code on errors.

    +

    There is one exception class that is used for errors in libtorrent, it is based +on boost.system's error_code class to carry the error code.

    +
    +

    libtorrent_exception

    -struct invalid_handle: std::exception
    +struct libtorrent_exception: std::exception
     {
    -        const char* what() const throw();
    -};
    -
    -
    -
    -

    duplicate_torrent

    -

    This is thrown by add_torrent() if the torrent already has been added to -the session. Since remove_torrent() is asynchronous, this exception may -be thrown if the torrent is removed and then immediately added again.

    -
    -struct duplicate_torrent: std::exception
    -{
    -        const char* what() const throw();
    -};
    -
    -
    -
    -

    invalid_encoding

    -

    This is thrown by bdecode() if the input data is not a valid bencoding.

    -
    -struct invalid_encoding: std::exception
    -{
    -        const char* what() const throw();
    -};
    -
    -
    -
    -

    type_error

    -

    This is thrown from the accessors of entry if the data type of the entry doesn't -match the type you want to extract from it.

    -
    -struct type_error: std::runtime_error
    -{
    -        type_error(const char* error);
    -};
    -
    -
    -
    -

    invalid_torrent_file

    -

    This exception is thrown from the constructor of torrent_info if the given bencoded information -doesn't meet the requirements on what information has to be present in a torrent file.

    -
    -struct invalid_torrent_file: std::exception
    -{
    -        const char* what() const throw();
    +        libtorrent_exception(error_code const& s);
    +        virtual const char* what() const throw();
    +        virtual ~libtorrent_exception() throw() {}
             boost::system::error_code error() const;
     };
     
    @@ -4885,6 +4906,35 @@ matched the info-hash, but failed to be parsed invalid_bencoding The file or buffer is not correctly bencoded +16 +no_files_in_torrent +The .torrent file does not contain any files + +17 +invalid_escaped_string +The string was not properly url-encoded as expected + +18 +session_is_closing +Operation is not permitted since the session is shutting down + +19 +duplicate_torrent +There's already a torrent with that info-hash added to the +session + +20 +invalid_torrent_handle +The supplied torrent_handle is not referring to a valid torrent + +21 +invalid_entry_type +The type requested from the entry did not match its type + +22 +missing_info_hash_in_uri +The specified URI does not contain a valid info-hash +

    The names of these error codes are declared in then libtorrent::errors namespace.

    @@ -4975,7 +5025,7 @@ int sparse_end(int start) const; region). The purpose of this is to skip parts of files that can be known to contain zeros when checking files.

    -
    +

    move_storage()

    @@ -5074,7 +5124,7 @@ struct partial_hash
     that is stored in the given slot.

    The function should return the hash of the piece stored in the slot.

    -
    +

    rename_file()

    @@ -5196,8 +5246,8 @@ then it will not trust the fast-resume data and just do the checking.

    The file format is a bencoded dictionary containing the following fields:

    --++ @@ -5218,7 +5268,9 @@ greater than 4 megabytes, the block size will increase. +Bit 1 means we have that piece. +Bit 2 means we have verified that this piece is correct. +This only applies when the torrent is in seed_mode. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +
    file-format
    pieces A string with piece flags, one character per piece. -Bit 1 means we have that piece.
    slots

    list of integers. The list maps slots to piece indices. It @@ -5230,6 +5282,92 @@ to meet the following requirement:

    the piece must be located in that slot.

    total_uploadedinteger. The number of bytes that have been uploaded in +total for this torrent.
    total_downloadedinteger. The number of bytes that have been downloaded in +total for this torrent.
    active_timeinteger. The number of seconds this torrent has been active. +i.e. not paused.
    seeding_timeinteger. The number of seconds this torrent has been active +and seeding.
    num_seedsinteger. An estimate of the number of seeds on this torrent +when the resume data was saved. This is scrape data or based +on the peer list if scrape data is unavailable.
    num_downloadersinteger. An estimate of the number of downloaders on this +torrent when the resume data was last saved. This is used as +an initial estimate until we acquire up-to-date scrape info.
    upload_rate_limitinteger. In case this torrent has a per-torrent upload rate +limit, this is that limit. In bytes per second.
    download_rate_limitinteger. The download rate limit for this torrent in case +one is set, in bytes per second.
    max_connectionsinteger. The max number of peer connections this torrent +may have, if a limit is set.
    max_uploadsinteger. The max number of unchoked peers this torrent may +have, if a limit is set.
    seed_modeinteger. 1 if the torrent is in seed mode, 0 otherwise.
    file_prioritylist of integers. One entry per file in the torrent. Each +entry is the priority of the file with the same index.
    piece_prioritystring of bytes. Each byte is interpreted as an integer and +is the priority of that piece.
    auto_managedinteger. 1 if the torrent is auto managed, otherwise 0.
    sequential_downloadinteger. 1 if the torrent is in sequential download mode, +0 otherwise.
    pausedinteger. 1 if the torrent is paused, 0 otherwise.
    trackerslist of lists of strings. The top level list lists all +tracker tiers. Each second level list is one tier of +trackers.
    mapped_fileslist of strings. If any file in the torrent has been +renamed, this entry contains a list of all the filenames. +In the same order as in the torrent file.
    url-listlist of strings. List of url-seed URLs used by this torrent.
    httpseedslist of strings. List of httpseed URLs used by this torrent.
    merkle treestring. In case this torrent is a merkle torrent, this is a +string containing the entire merkle tree, all nodes, +including the root and all leaves. The tree is not +necessarily complete, but complete enough to be able to send +any piece that we have, indicated by the have bitmask.
    peers

    list of dictionaries. Each dictionary has the following layout:

    diff --git a/docs/projects.html b/docs/projects.html index c449a57d1..4bcbe61a7 100644 --- a/docs/projects.html +++ b/docs/projects.html @@ -3,7 +3,7 @@ - + projects using libtorrent diff --git a/docs/python_binding.html b/docs/python_binding.html index b0af65dbb..e9e854257 100644 --- a/docs/python_binding.html +++ b/docs/python_binding.html @@ -3,7 +3,7 @@ - + libtorrent python binding @@ -36,18 +36,18 @@
    Author:Arvid Norberg, arvid@rasterbar.com
    Arvid Norberg, arvid@rasterbar.com
    @@ -92,10 +92,10 @@ using python : 2.3 : /usr ;

    The bindings require at least python version 2.2.

    For more information on how to install and set up boost-build, see the -building libtorrent section.

    +building libtorrent section.

    Once you have boost-build set up, you cd to the bindings/python directory and invoke bjam with the apropriate settings. For the available -build variants, see libtorrent build options.

    +build variants, see libtorrent build options.

    For example:

     $ bjam dht-support=on boost=source release link=static
    @@ -109,7 +109,7 @@ bin/darwin-4.0/release/dht-support-on/link-static/logging-none/threading-multi/l
     

    using libtorrent in python

    The python interface is nearly identical to the C++ interface. Please refer to -the main library reference. The main differences are:

    +the main library reference. The main differences are:

    asio::tcp::endpoint
    The endpoint type is represented as a tuple of a string (as the address) and an int for diff --git a/docs/udp_tracker_protocol.html b/docs/udp_tracker_protocol.html index 494a82c8c..a11f35262 100644 --- a/docs/udp_tracker_protocol.html +++ b/docs/udp_tracker_protocol.html @@ -3,7 +3,7 @@ - + Bittorrent udp-tracker protocol extension @@ -36,23 +36,23 @@ Author: -Arvid Norberg, arvid@rasterbar.com +Arvid Norberg, arvid@rasterbar.com
    @@ -60,10 +60,10 @@

    A tracker with the protocol "udp://" in its URI is supposed to be contacted using this protocol.

    This protocol is supported by -xbt-tracker.

    +xbt-tracker.

    For additional information and descritptions of the terminology used in this document, see -the protocol specification

    +the protocol specification

    All values are sent in network byte order (big endian). The sizes are specified with ANSI-C standard types.

    If no response to a request is received within 15 seconds, resend @@ -120,7 +120,7 @@ identify the protocol. action Describes the type of packet, in this case it should be 0, for connect. -If 3 (for error) see errors. +If 3 (for error) see errors. int32_t transaction_id @@ -164,7 +164,7 @@ establishing the connection. int32_t action Action. in this case, 1 for announce. -See actions. +See actions. int32_t transaction_id @@ -229,7 +229,7 @@ in the reply. Use -1 for default. uint16_t extensions -See extensions +See extensions @@ -251,8 +251,8 @@ in the reply. Use -1 for default. action The action this is a reply to. Should in this case be 1 for announce. -If 3 (for error) see errors. -See actions. +If 3 (for error) see errors. +See actions. int32_t transaction_id @@ -326,7 +326,7 @@ establishing of the connection. int32_t action The action, in this case, 2 for -scrape. See actions. +scrape. See actions. int32_t transaction_id @@ -373,7 +373,7 @@ the MTU.

    action The action, should in this case be 2 for scrape. -If 3 (for error) see errors. +If 3 (for error) see errors. int32_t transaction_id @@ -433,7 +433,7 @@ leechers. int32_t action The action, in this case 3, for error. -See actions. +See actions. int32_t transaction_id @@ -466,7 +466,7 @@ describing the error. bits are assigned: