Skip to content

Releases: arvidn/libtorrent

libtorrent-1.2.5

09 Mar 13:19
Compare
Choose a tag to compare

1.2.5 release

  • announce port=1 instead of port=0, when there is no listen port
  • fix LSD over IPv6
  • support TCP_NOTSENT_LOWAT on Linux
  • fix correct interface binding of local service discovery multicast
  • fix issue with knowing which interfaces to announce to trackers and DHT
  • undeprecate settings_pack::dht_upload_rate_limit

libtorrent-1.2.4

09 Feb 08:40
Compare
Choose a tag to compare

Changes since previous release:

  • fix binding TCP and UDP sockets to the same port, when specifying port 0
  • fix announce_to_all_trackers and announce_to_all_tiers behavior
  • fix suggest_read_cache setting
  • back-off tracker hostname looksups resulting in NXDOMAIN
  • lower SOCKS5 UDP keepalive timeout
  • fix external IP voting for multi-homed DHT nodes
  • deprecate broadcast_lsd setting. Just use multicast
  • deprecate upnp_ignore_nonrouters setting
  • don't attempt sending event=stopped if event=start never succeeded
  • make sure &key= stays consistent between different source IPs (as mandated by BEP7)
  • fix binding sockets to outgoing interface
  • add new socks5_alert to trouble shoot SOCKS5 proxies

libtorrent-1.2.3

19 Dec 17:01
Compare
Choose a tag to compare

1.2.3 release

  • fix erroneous event=completed tracker announce when checking files
  • promote errors in parsing listen_interfaces to post listen_failed_alert
  • fix bug in protocol encryption/obfuscation
  • fix buffer overflow in SOCKS5 UDP logic
  • fix issue of rapid calls to file_priority() clobbering each other
  • clear tracker errors on success
  • optimize setting with unlimited unchoke slots
  • fixed restoring of trackers, comment, creation date and created-by in resume data
  • fix handling of torrents with too large pieces
  • fixed division by zero in anti-leech choker
  • fixed bug in torrent_info::swap

libtorrent-1.1.14

19 Dec 16:40
Compare
Choose a tag to compare

1.1.14 release

  • support building with new boost version
  • add handling on invalid piece index to torrent_handle::have_piece()
  • fix error in treatment of move_storage() flags
  • fix division by zero in anti-leech choker
  • fix chunked http header validation
  • fix use-after-free in SSL shutdown
  • fix possible leak entry when assigning from bdecode_node or lazy_entry
  • fix error handling of moving storage to a drive letter that isn't mounted
  • fix bug in python binding parsing file_priorities from add_torrent_params
  • fix target hostname in http connections using http proxy

libtorrent 1.2.2

25 Sep 21:35
Compare
Choose a tag to compare

1.2.2 release

  • fix cases where the disable_hash_checks setting was not honored
  • fix updating of is_finished torrent status, when changing piece priorities
  • fix regression in &left= reporting when adding a seeding torrent
  • fix integer overflow in http parser
  • improve sanitation of symlinks, to support more complex link targets
  • add DHT routing table affinity for BEP 42 nodes
  • add torrent_info constructor overloads to control torrent file limits
  • feature to disable DHT, PEX and LSD per torrent
  • fix issue where trackers from magnet links were not included in create_torrent()
  • make peer_info::client a byte array in python binding
  • pick contiguous pieces from peers with high download rate
  • fix error handling of moving storage to a drive letter that isn't mounted
  • fix HTTP Host header when using proxy

libtorrent 1.2.1

03 May 07:45
Compare
Choose a tag to compare

1.2.1 release

  • add dht_pkt_alert and alerts_dropped_alert to python bindings
  • fix python bindins for block_uploaded_alert
  • optimize resolving duplicate filenames in loading torrent files
  • fix python binding of dht_settings
  • tighten up various input validation checks
  • fix create_torrent python binding
  • update symlinks to conform to BEP 47
  • fix python bindings for peer_info
  • support creating symlinks, for torrents with symlinks in them
  • fix error in seed_mode flag
  • support magnet link parameters with number siffixes
  • consistently use "lt" namespace in examples and documentation
  • fix Mingw build to use native cryptoAPI
  • uPnP/NAT-PMP errors no longer set the client's advertised listen port to zero

libtorrent-1.1.13

27 Apr 16:02
Compare
Choose a tag to compare
  • fix sock_type_t python binding
  • tighten up various input validation checks
  • replace use of boost-endian with boost-predef

libtorrent-1.2.0

12 Jan 15:56
Compare
Choose a tag to compare

1.2 is a major upgrade from the 1.1.x series. It is not ABI compatible with 1.1.x.

Most prominent changes are:

  • requires boost >= 1.58 to build
  • require C++11 to build
  • improved support for listening on multiple sockets and interfaces
  • announce_entry no longer represents a single tracker IP, but has a list of endpoints announced to. This is to support multi-homed clients.
  • introduce introduce distinct types for peer_class_t, piece_index_t and file_index_t. They implicitly convert to raw integers, but the conversion is deprecated.
  • alert types are no longer copyable and ownership is never transferred to clients
  • deprecated alert::progress_notification alert category, split into finer grained categories
  • deprecate identify_client() and fingerprint type
  • deprecated public to_hex() and from_hex() functions
  • remove deprecate session_settings API (use settings_pack instead)
  • transitioned exception types to system_error
  • move files one-by-one when moving storage for a torrent
  • removed RSS support
  • removed feature to resolve country for peers

More on changes to API that are not backwards compatible can be found here.

Rest of the changelog:

  • tweak heuristic of how to interpret url seeds in multi-file torrents
  • support &ipv4= tracker argument for private torrents
  • renamed debug_notification to connect_notification
  • when updating listen sockets, only post alerts for new ones
  • deprecate anonymous_mode_alert
  • deprecated force_proxy setting (when set, the proxy is always used)
  • add support for Port Control Protocol (PCP)
  • deliver notification of alerts being dropped via alerts_dropped_alert
  • update plugin interface functions for improved type-safety
  • implemented support magnet URI extension, select specific file indices for download, BEP53
  • make tracker keys multi-homed. remove set_key() function on session.
  • add flags()/set_flags()/unset_flags() to torrent_handle, deprecate individual functions
  • added alert for block being sent to the send buffer
  • drop support for windows compilers without std::wstring
  • implemented support for DHT infohash indexing, BEP51
  • removed deprecated support for file_base in file_storage
  • added support for running separate DHT nodes on each network interface
  • added support for establishing UTP connections on any network interface
  • added support for sending tracker announces on every network interface
  • introduce "lt" namespace alias
  • need_save_resume_data() will no longer return true every 15 minutes
  • make the file_status interface explicitly public types
  • added resolver_cache_timeout setting for internal host name resolver
  • make parse_magnet_uri take a string_view instead of std::string
  • deprecate add_torrent_params::url field. use parse_magnet_uri instead
  • optimize download queue management
  • deprecated (undocumented) file:// urls
  • add limit for number of web seed connections
  • added support for retrieval of DHT live nodes
  • complete UNC path support
  • add packets pool allocator
  • remove disk buffer pool allocator
  • fix last_upload and last_download overflow after 9 hours in past
  • python binding add more add_torrent_params fields and an invalid key check
  • fix crash caused by empty bitfield
  • removed disk-access-log build configuration
  • removed mmap_cache feature
  • strengthened type safety in handling of piece and file indices
  • make sequence number for mutable DHT items backed by std::int64_t
  • tweaked storage_interface to have stronger type safety
  • deprecate relative times in torrent_status, replaced by std::chrono::time_point
  • refactor in alert types to use more const fields and more clear API
  • changed session_stats_alert counters type to signed (std::int64_t)
  • remove torrent eviction/ghost torrent feature
  • include target in DHT lookups, when queried from the session
  • improve support for HTTP redirects for web seeds
  • use string_view in entry interface
  • deprecate "send_stats" property on trackers (since lt_tracker extension has been removed)
  • improve file layout optimization when creating torrents with padfiles
  • remove remote_dl_rate feature
  • source code migration from boost::shared_ptr to std::shared_ptr
  • storage_interface API changed to use span and references
  • changes in public API to work with std::shared_ptr<torrent_info>
  • extensions API changed to use span and std::shared_ptr
  • plugin API changed to handle DHT requests using string_view
  • removed support for lt_trackers and metadata_transfer extensions (pre-dating ut_metadata)
  • support windows' CryptoAPI for SHA-1
  • separated ssl and crypto options in build
  • remove lazy-bitfield feature
  • simplified suggest-read-cache feature to not depend on disk threads
  • removed option to disable contiguous receive buffers
  • separated address and port fields in listen alerts
  • added support for parsing new x.pe parameter from BEP 9
  • peer_blocked_alert now derives from peer_alert
  • made alerts move-only
  • added support for BEP 32, "IPv6 extension for DHT"
  • overhauled listen socket and UDP socket handling, improving multi-home support and bind-to-device
  • resume data is now communicated via add_torrent_params objects
  • added new read_resume_data()/write_resume_data functions to write bencoded, backwards compatible resume files
  • removed deprecated fields from add_torrent_params
  • deprecate "resume_data" field in add_torrent_params
  • improved support for bind-to-device
  • deprecated ssl_listen, SSL sockets are specified in listen_interfaces now
  • resume data no longer has timestamps of files

libtorrent-1.1.12

11 Jan 23:40
Compare
Choose a tag to compare

1.1.12 release

  • uTP performance fixes

libtorrent-1.2-RC2

19 Nov 13:10
Compare
Choose a tag to compare
libtorrent-1.2-RC2 Pre-release
Pre-release

This is a release candidate of libtorrent 1.2.0, not a final release.
This version is ABI incompatible with the 1.1.x releases.
With libtorrent 1.2.0, C++11 is required to build and in some cases the API has been altered as well. Mostly to use standard C++ types instead of boost types, but also to use more modern vocabulary types like string_view and span.

The main changes affecting the API are documented here.

The main differences since RC1 are:

  • span type now use std::ptrdiff_t for size and indices, aligned with gsl::span
  • the old (slow) bdecode() function has been deprecated

The updates since the latest stable release are:

  • support &ipv4= tracker argument for private torrents
  • renamed debug_notification to connect_notification
  • when updating listen sockets, only post alerts for new ones
  • deprecate anonymous_mode_alert
  • deprecated force_proxy setting (when set, the proxy is always used)
  • add support for Port Control Protocol (PCP)
  • deliver notification of alerts being dropped via alerts_dropped_alert
  • deprecated alert::progress_notification alert category, split into
    finer grained categories
  • update plugin interface functions for improved type-safety
  • implemented support magnet URI extension, select specific file indices
    for download, BEP53
  • make tracker keys multi-homed. remove set_key() function on session.
  • add flags()/set_flags()/unset_flags() to torrent_handle, deprecate individual functions
  • added alert for block being sent to the send buffer
  • drop support for windows compilers without std::wstring
  • implemented support for DHT infohash indexing, BEP51
  • removed deprecated support for file_base in file_storage
  • added support for running separate DHT nodes on each network interface
  • added support for establishing UTP connections on any network interface
  • added support for sending tracker announces on every network interface
  • introduce "lt" namespace alias
  • need_save_resume_data() will no longer return true every 15 minutes
  • make the file_status interface explicitly public types
  • added resolver_cache_timeout setting for internal host name resolver
  • make parse_magnet_uri take a string_view instead of std::string
  • deprecate add_torrent_params::url field. use parse_magnet_uri instead
  • optimize download queue management
  • deprecated (undocumented) file:// urls
  • add limit for number of web seed connections
  • added support for retrieval of DHT live nodes
  • complete UNC path support
  • add packets pool allocator
  • remove disk buffer pool allocator
  • fix last_upload and last_download overflow after 9 hours in past
  • python binding add more add_torrent_params fields and an invalid key check
  • introduce introduce distinct types for peer_class_t, piece_index_t and
    file_index_t.
  • fix crash caused by empty bitfield
  • removed disk-access-log build configuration
  • removed mmap_cache feature
  • strengthened type safety in handling of piece and file indices
  • deprecate identify_client() and fingerprint type
  • make sequence number for mutable DHT items backed by std::int64_t
  • tweaked storage_interface to have stronger type safety
  • deprecate relative times in torrent_status, replaced by std::chrono::time_point
  • refactor in alert types to use more const fields and more clear API
  • changed session_stats_alert counters type to signed (std::int64_t)
  • remove torrent eviction/ghost torrent feature
  • include target in DHT lookups, when queried from the session
  • improve support for HTTP redirects for web seeds
  • use string_view in entry interface
  • deprecate "send_stats" property on trackers (since lt_tracker extension has
    been removed)
  • remove deprecate session_settings API (use settings_pack instead)
  • improve file layout optimization when creating torrents with padfiles
  • remove remote_dl_rate feature
  • source code migration from boost::shared_ptr to std::shared_ptr
  • storage_interface API changed to use span and references
  • changes in public API to work with std::shared_ptr<torrent_info>
  • extensions API changed to use span and std::shared_ptr
  • plugin API changed to handle DHT requests using string_view
  • removed support for lt_trackers and metadata_transfer extensions
    (pre-dating ut_metadata)
  • support windows' CryptoAPI for SHA-1
  • separated ssl and crypto options in build
  • remove lazy-bitfield feature
  • simplified suggest-read-cache feature to not depend on disk threads
  • removed option to disable contiguous receive buffers
  • deprecated public to_hex() and from_hex() functions
  • separated address and port fields in listen alerts
  • added support for parsing new x.pe parameter from BEP 9
  • peer_blocked_alert now derives from peer_alert
  • transitioned exception types to system_error
  • made alerts move-only
  • move files one-by-one when moving storage for a torrent
  • removed RSS support
  • removed feature to resolve country for peers
  • added support for BEP 32, "IPv6 extension for DHT"
  • overhauled listen socket and UDP socket handling, improving multi-home
    support and bind-to-device
  • resume data is now communicated via add_torrent_params objects
  • added new read_resume_data()/write_resume_data functions to write bencoded,
    backwards compatible resume files
  • removed deprecated fields from add_torrent_params
  • deprecate "resume_data" field in add_torrent_params
  • improved support for bind-to-device
  • deprecated ssl_listen, SSL sockets are specified in listen_interfaces now
  • improved support for listening on multiple sockets and interfaces
  • resume data no longer has timestamps of files
  • require C++11 to build libtorrent