Releases: arvidn/libtorrent
libtorrent-1.2.5
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
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
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
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
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
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
- fix sock_type_t python binding
- tighten up various input validation checks
- replace use of boost-endian with boost-predef
libtorrent-1.2.0
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
1.1.12 release
- uTP performance fixes
libtorrent-1.2-RC2
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