1.2.12.0 * lt:fix loading of DHT node ID from previous session on startup * lt:use getrandom(), when available, and fall back to /dev/urandom * lt:fix uTP issue acking FIN packets * lt:validate HTTPS certificates by default (trackers and web seeds) * lt:load SSL certificates from windows system certificate store, to authenticate trackers * lt:introduce mitigation for Server Side Request Forgery in tracker and web seed URLs * lt:fix error handling for pool allocation failure 1.2.11.0 * New TorrentHandle.inSession() [blocking method, do not use in main UI threads] * New ability for SessionManager to build a paused session * New SessionManager.start(SessionParams, session_flags_t) * New SessionHandle.PAUSED (session_flag_t) and corresponding unit tests * Removed TorrentStatus::State::ALLOCATING enum * Removed torrent_status.state_t.unused_enum_for_backwards_compatibility_allocating * libtorrent 1.2.11.0 update (471e772cb7038f1bf5f44c32a09eb42fbb80ee99) * lt: upgraded to openssl 1.1.1l * lt: fix issue with moving the session object * lt: deprecate torrent_status::allocating. This state is no longer used * lt: fix bug creating torrents with symbolic links * lt: remove special case to save metadata in resume data unconditionally when added throught magnet link * lt: fix bugs in mutable-torrent support (reusing identical files from different torrents) * lt: fix incorrectly inlined move-assignment of file_storage * lt: add session::paused flag, and the ability to construct a session in paused mode * lt: fix session-pause causing tracker announces to fail * lt: fix peer-exchange flags bug * lt: allow saving resume data before metadata has been downloaded (for magnet links) * lt: record blocks in the disk queue as downloaded in the resume data * lt: fix bug in set_piece_deadline() when set in a zero-priority piece * lt: fix issue in URL parser, causing issues with certain tracker URLs * lt: use a different error code than host-unreachable, when skipping tracker announces 1.2.10.0 * libtorrent 1.2.10 update (70f1de3f7ec4012aaea420ff150ef0135d397706) * lt: improve stat_file() performance on Windows * lt: fix issue with loading invalid torrents with only 0-sized files * lt: fix to avoid large stack allocations * lt: add macro TORRENT_CXX11_ABI for clients building with C++14 against libtorrent build with C++11 * lt: removed deprecated wstring overloads on non-windows systems * lt: drop dependency on Unicode's ConvertUTF code (which had a license incompatible with Debian) * lt: fix bugs exposed on big-endian systems * lt: fix detection of hard-links not being supported by filesystem * lt: fixed resume data regression for seeds with prio 0 files * binaries: compiler upgraded from g++-5 to g++-7 1.2.8.0 * add router.utorrent.com to list of DHT bootstrap nodes * Android builds with new NDK r21d * lt: validate UTF-8 encoding of client version strings from peers * lt: don't time out tracker announces as eagerly while resolving hostnames * lt: fix NAT-PMP shutdown issue * lt: improve hostname lookup by merging identical lookups * lt: fix network route enumeration for large routing tables * lt: fixed issue where pop_alerts() could return old, invalid alerts * lt: fix issue when receiving have-all message before the metadata * lt: don't leave lingering part files handles open * lt: disallow calling add_piece() during checking * lt: fix incorrect filename truncation at multi-byte character * lt: always announce listen port 1 when using a proxy 1.2.7.0 * libtorrent 1.2.7 update (ce0a85f783bec37484776a37fe3662279091ecc5) * upgraded to boost 1.73.0 * upgraded to openssl 1.1.1g * lt: fix incorrect filename truncation at multi-byte character * lt: always announce listen port 1 when using a proxy * lt: add set_alert_fd in python binding, to supersede set_alert_notify * lt: fix bug in part files > 2 GiB * lt: add function to clear the peer list for a torrent * lt: fix resume data functions to save/restore more torrent flags * lt: limit number of concurrent HTTP announces * lt: fix queue position for force_rechecking a torrent that is not auto-managed * lt: improve rate-based choker documentation, and minor tweak * lt: undeprecate upnp_ignore_nonrouters (but refering to devices on our subnet) * lt: increase default tracker timeout * lt: retry failed socks5 server connections * lt: allow UPnP lease duration to be changed after device discovery * lt: fix IPv6 address change detection on Windows * lt: fix peer timeout logic * lt: simplify proxy handling. A proxy now overrides listen_interfaces * lt: fix issues when configured to use a non-default choking algorithm * lt: fix issue in reading resume data * lt: revert NXDOMAIN change from 1.2.4 * lt: don't open any listen sockets if listen_interfaces is empty or misconfigured * lt: fix bug in auto disk cache size logic * lt: fix issue with outgoing_interfaces setting, where bind() would be called twice * lt: add build option to disable share-mode * lt: support validation of HTTPS trackers * lt: deprecate strict super seeding mode * lt: make UPnP port-mapping lease duration configurable * lt: deprecate the bittyrant choking algorithm * lt: add build option to disable streaming 1.2.6.0 * There was no 1.2.6 release, we waited and jumped all the way to 1.2.7.0 1.2.5.0 * libtorrent 1.2.5 update (0f337b9ce7a1b0fc87f48843933b1c5c4dd5a9ec) * New SettingsPack::dhtUploadRate(), SettingsPack::dhtUploadRate(int) * lt:announce port=1 instead of port=0, when there is no listen port * lt:fix LSD over IPv6 * lt:support TCP_NOTSENT_LOWAT on Linux * lt:fix correct interface binding of local service discovery multicast * lt:fix issue with knowing which interfaces to announce to trackers and DHT * lt:undeprecate settings_pack::dht_upload_rate_limit 1.2.4.0 * libtorrent 1.2.4 update (ad83b1c0eb293b63c69f7879ca6ba2381369f77f) * Java source compatibility upgraded from 1.7 to 1.8 * lt:fix binding TCP and UDP sockets to the same port, when specifying port 0 * lt:fix announce_to_all_trackers and announce_to_all_tiers behavior * lt:fix suggest_read_cache setting * lt:back-off tracker hostname looksups resulting in NXDOMAIN * lt:lower SOCKS5 UDP keepalive timeout * lt:fix external IP voting for multi-homed DHT nodes * lt:deprecate broadcast_lsd setting. Just use multicast * lt:deprecate upnp_ignore_nonrouters setting * lt:don't attempt sending event=stopped if event=start never succeeded * lt:make sure &key= stays consistent between different source IPs (as mandated by BEP7) * lt:fix binding sockets to outgoing interface * lt:add new socks5_alert to trouble shoot SOCKS5 proxies 1.2.3.0 * libtorrent 1.2.3 update (b5bf6c3260bd726b0181671625c007be5ad49845) * using android NDK r20b * upgraded to boost 1.72.0 * upgraded to openssl 1.1.1d * swig version 4.0.1 (from 3.0.12) * lt:fix erroneous event=completed tracker announce when checking files * lt:promote errors in parsing listen_interfaces to post listen_failed_alert * lt:fix bug in protocol encryption/obfuscation * lt:fix buffer overflow in SOCKS5 UDP logic * lt:fix issue of rapid calls to file_priority() clobbering each other * lt:clear tracker errors on success * lt:optimize setting with unlimited unchoke slots * lt:fixed restoring of trackers, comment, creation date and created-by in resume data * lt:fix handling of torrents with too large pieces * lt:fixed division by zero in anti-leech choker * lt:fixed bug in torrent_info::swap 1.2.2.0 * libtorrent 1.2.2 update (d5b56ca1876dc7b96ef9aac7c7584e1f61d25774) * using android NDK r20 (released June 2019) * new local build script for android x86_64 (api level 20) * updated to boost 1.71.0 * upgraded openssl to 1.1.1c * compiled with std=c++14 (up from c++11) * lt:pick contiguous pieces from peers with high download rate * lt:fix error handling of moving storage to a drive letter that isn't mounted * lt:fix integer overflow in http parser * lt:fix integer overflow in chunked http parser * lt:factor out and unit test parts of the DHT routing table logic * lt:improve sanitation of symlinks, to support more complex link targets (file_storage::sanitize_symlinks) * lt:avoid empty dht routing table buckets * lt:fix dht_stats_alert routing table stats for multi-homed clients * lt:fix entry assignment from bdecode_node and lazy_entry * lt:fix use-after-free issue in socket_type * lt:fix error code messages when building without deprecated functions * lt:feature to disable DHT, PEX and LSD per torrent * lt:fix seeding of random number generator on mingw * lt:fix issue where trackers from magnet links were not included in create_torrent() * lt:extend the whole_pieces_threshold setting to also request contiguous pieces from fast peers * lt:fix error handling of moving storage to a drive letter that isn't mounted * lt:don't leak exceptions out of handler callbacks in resolver * lt:ensure headers build independently * lt:fix unit template's mutating operators to give them proper ref qualifiers 1.2.1.0 * using android NDK r19c (released January 2019) * updated to boost 1.70.0 * lt:make sure session cleanup releases all its references to torrents * lt:track the mapped port for each NAT mapping transport * lt:optimize resolve_duplicate_filenames_slow() * lt:use a more restrictive limit on number of pieces allowed in a torrent * lt:improve disk I/O logging * lt:always flush disk I/O job queue before shutdown * lt:fix typo in validation of reject messages. Make on_choke a bit more defensive * lt:tighten up validation of dont-have messages * lt:tighten up validation of reject messages, to ensure consistency of stats counters * lt:tighten up message size checks * lt:update symlinks to conform to BEP 47 * lt:source code cleanup, performance and stability 1.2.0.20 * updated to libtorrent RC_1_2 HEAD * updated to OpenSSL 1.1.1b * lt:add support for creating symlinks, for torrents with symlinks in them * lt:allow padfiles of equal size to share the same filename * lt:fix seed_mode flag * lt:support numeric suffixes to magnet link parameter names * lt:added FrostWire's client ID * lt:don't try to hash empty read in do_uncached_hash * lt:don't copy a vector into the async_write operation for iovec * lt:on linux, link against lbdl when using openssl * lt:use UNC paths pervasively on windows * lt:source code cleanup, performance and stability 1.2.0.19 * libtorrent release 1.2.0 * using android NDK r18b * updated to boost 1.69.0 * updated to OpenSSL 1.1.1a * fixed activeDhtLimit SettingsPack setter * development: new local build scripts for macosx, android, linux, windows * lt:only allow cwnd to be reduced so often (utp) * lt:avoid announcing local ip to private tracker * lt:don't treat loss of MTU probe packet as a congestion signal (utp) * lt:make sure we reset the duplicate ack counter every time we don't receive a duplicate ack (utp) * lt:remove old (incompatible) sequence number build option (utp) * lt:don't leave slow-start just because we hit the advertized receive window * lt:simplify and improve the uTP deferred ACK logic to respond earlier * lt:improve logic for fast-retransmitting packets on incoming SACK * lt:improve utp verbose logging a bit and make the parser pull out more metrics * lt:restore permissions on directories to 1.1. i.e. rely on umask * lt:minor fix to invalid_request_alert logging * lt:add assignment operator to span * lt:fix %u -> %d format codes * lt:fix deprecation markup in torrent_status * lt:tweak heuristic of how to interpret url seeds in multi-file torrents * lt:added more TORRENT_DEPRECATED_ENUM and deprecated unused aio_max in settings_pack * lt:take a string_view in setting_by_name * lt:fix typo in peer log * lt:deprecate start_default_features flag, it's only used in deprecated API * lt:remove verbose peer logging * lt:make stack_allocator::format_string() grow the buffer for large strings * lt:move where socket buffers are set up, to happen after the socket is opened. log errors in the peer's log instead of session and torrent * lt:add stats counter for the number of outstanding async_accept calls * lt:fix potential issue where the dht port message is sent before the peer handshake * lt:correct %u format code for pieces in printf() calls * lt:attempt to fix an assert for a newly connected peer that disconnects just as we receive the metadata * lt:don't use page aligned disk buffers * lt:include &ipv4= for private trackers * lt:add support for &ipv4= tracker argument * lt:use new bdecoder in ut_metadata class * lt:fix redundant bytes overflow * lt:check for self-assignment in bitfield operator= * lt:initialize bencoded ints with zero when constructed * lt:exit natpmp::on_reply earlier if we're shutting down * lt:fix setting ipv6 interface * lt:a better fix to the ssl port announce bug * lt:perfect forward async handlers for udp_socket to underlying asio socket * lt:move the whole add_torrent_params object into save_resume_data_alert * lt:actually fix the issue with the second tracker announce with port 0 * lt:remove redundant MTU boundary checks * lt:fix of asio-debugging build in natpmp. resend_request could be called directly, not only as a handler for an async operation * lt:fix move_storage with save_path with a trailing slash * lt:only make snubbed peers invert the piece picking strategy when we're doing rarest first * lt:ssl listen port fix and improved tracker announce logging * lt:properly tear down the disk_io_thread object in set_piece_hashes() when exiting via an exception * lt:make throwing versions of read_resume_data * lt:fix overflow in sliding_average in the case of very high download rates * lt:renamed debug_notification to connect_notification * lt:fix issue in udp_socket with unusual socket failure * lt:utp close-reason use after free fix * lt:source code cleanup, performance and stability 1.2.0.18 * using android NDK r17c * updated to boost 1.68.0 * updated to OpenSSL 1.1.1 * expose to java SWIG api the aux::arm_neon_support flag for android runtime verification * removed hack of custom getauxval definition * removed hack of fgetpos fsetpos * removed hack of mulodi4 * null check protection in EnumNet * added new constructor to TorrentInfo from byte array * improved API for AnnounceEntry * added AnnounceEndpoint java API, it is a lightweight class * convert ErrorCode to a lightweight class * convert PeerInfo to a lightweight class, client is UTF-8 decoded * Vectors.byte_vector2string supports only ASCII and UTF-8 * lt:fix redundant flushes of partfile metadata * lt:fix overflow in calc_bytes(), fix bug in piece picker accounting of filtered pad blocks * lt:improve type-safety of the severity parameter to peer_connection::disconnect() * lt:fix seed count when attaching a peer is aborted * lt:add option to ignore min-interval from tracker, when force-reannouncing a tracker * lt:raise default value for active_limit to 500, since it's supposed to be an upper sanity check limit * lt:make the print function for entry actually be json-like * lt:fall back to copy+remove if rename_file fails * lt:improve handling of filesystems not supporting fallocate() * lt:improve piece picker performance in tracking pad-blocks * lt:force proxy no longer disables the DHT * lt:simplify total_have/have_want/total_want. Make piece_picker track pad blocks and compute byte-progress at block granularity * lt:fix issue in self-connection detection introduced with the change to generate unique peer-ids for each connection. * lt:fix exporting files to avoid overwriting existing files, before exporting anything from a parts file, check whether it contains valid data * lt:improve connect-boost feature, to make new torrents quickly connect peers * lt:add a few more stats counters measuring outgoing connection attempts. simplify session_stats_header_alert by posting it on first call to post_session_stats() instead of making it gated by the alert_mask * lt:remove dead code from piece picker * lt:tweak the auto-cache-size logic to have slightly smaller cache * lt:fix deprecation of mmap_cache * lt:add missing increment of on_disk_counter and num_blocks_hashed counters * lt:apply piece priorities immediately, even though file priority updates are async. save both file- and piece priorities in fast resume * lt:simplify natpmp gateway and local address discovery * lt:fix typo in #if tests for TORRENT_DISABLE_ENCRYPTION * lt:in torrent_handle::id(), only shift down the pointer by 10 bits * lt:add piece index range checks on have_piece() and read_piece() * lt:make metric_type_t an enum class, deprecate the in-class enum values * lt:only post alerts for newly opened listen sockets, and only attempt to map ports for newly opened sockets * lt:remove special handling of uTP peers, uTP connections are no longer exempt from rate limits by default * lt:make natpmp deal with address_v6 instead of the bytes_type, and use write_address instead of memcpy * lt:fix exporting files from partfile while seeding * lt:set port in handshake based on source address * lt:fix Windows "file::preadv" emulation EOF handling * lt:fix windows async read EOF handling * lt:fix bug in read/write resume data functions * lt:dht don't set implied_port for SSL torrents * lt:dht announce with per-interface listen port * lt:deprecate (and disable) the force-proxy setting. Instead, always use the proxy when set, never fall back on circumventing it * lt:move the file priority vector throught the disk_io_job, to avoid copies * lt:raise priority of cache_flushed_alert and post it unconditionally when triggered explicitly by the client * lt:fix some validation issues in read_resume_data() * lt:bump the minimum number of hash jobs per thread from 2 to 4 * lt:fix deadlock when loading libtorrent Dll * lt:fix torrent files prioritization * lt:fix some unintentional copies (with explicit moves) * lt:qualify some assignment operators to disallow assignment to temporaries * lt:fix missing move of file object in part_file * lt:use more threads when creating torrents * lt:bump checking_mem_usage default setting * lt:enable coalesce_reads and coalesce_writes by default on windows * lt:set the minimum number of checking jobs based on the number of hasher threads * lt:fix coalesce read bug * lt:introduce a fast-path for the hash disk job * lt:fix race condition in part_file * lt:fix parts file i/o errors * lt:fixed sign implicit conversion warnings and loop logic in new enum_net code * lt:improve the API for iterating over all files and pieces, with the new strong index types * lt:deprecate network-threads setting * lt:scrape_reply_alert should be high priority, since it's triggered by the client * lt:add support for multi-home NAT-PMP and Port Control Protocol (PCP) * lt:report transport version in NAT-PMP send/receive logs * lt:return a vector of mapping ids from add_port_mapping * lt:don't re-map all listen sockets when changing listen_interfaces * lt:create a natpmp instance for each listen socket * lt:enum_routes fixes on Linux * lt:fix scope_id in enum_routes on Windows * lt:remove UNC prefixes from device names on Windows * lt:fix netmask of routes on Windows * lt:deliver notification of alerts being dropped via alerts_dropped_alert * lt:raise priority of fastresume_rejected_alert * lt:don't use the partfile for existing files when their priority is 0 * lt:set the hidden attribute when creating the part file * lt:only start a new accept request on new listen sockets, fix mapping new listen sockets when re-mapping is not requested * lt:don't change state to downloading if the torrent is finished * lt:bump `file_error_alert` priority * lt:fix address of point-to-point interfaces * lt:don't enable reuse-address for UDP sockets, as it will always succeed and not get any incoming packets * lt:account for partially downloaded pieces when announcing as a seed * lt:fix bandwidth allocation * lt:don't attempt to make uTP connections if we don't have any outgoing UDP sockets * lt:fix empty outgoing interfaces for UDP sockets * lt:only allow pinged nodes into the DHT routing table * lt:introduce a recursive mutex to protect the alert_manager, and hold the mutex while calling user callbacks and plugin hooks * lt:revise alert priorities / torrent::on_resume_data_checked issue * lt:save the number of idle threads locally in disk_io_thread_pool::thread_active * lt:fix use after free in flush_range and flush_iovec * lt:honor torrent abort even on file check error * lt:use settings_pack::urlseed_wait_retry for default retry with http seeds * lt:fix storage initialization * lt:strtoll() returns LLONG_MAX if the input overflows, handle this case properly in the http parser * lt:remove the global cache of the current time, just use clock::now() * lt:deprecated alert::progress_notification alert category, split into finer grained categories * lt:disk_io_thread abort_hash_jobs duplicate code refactor * lt:fix part-file header allocation * lt:fix potential fd leak in enum_net_interfaces * lt:don't perform DNS lookups for the DHT bootstrap unless DHT is enabled * lt:avoid calls to .address() when looking for endpoint protocol * lt:removed unnecessary loop in request_a_block * lt:fix changing file priorities while checking interrupts checking * lt:fix issue where the current tracker would be skipped for the next tracker in the same tier * lt:remove redundant check in tracker announce * lt:minor fixes in utp_socket_impl * lt:stat files in the disk thread, in default_storage::initialize() instead of the constructor * lt:dynamically load getauxval so as to support older android devices * lt:track whether a file is eligible for using the partfile on a per-file basis * lt:define NETLINK_NO_ENOBUFS and IFA_D_DADFAILED if they don't exist * lt:fix reporting &redundant= in tracker announces * lt:fix windows build with UNC paths disabled * lt:fix issue querying block size from torrent before metadata has been received * lt:source code cleanup, performance and stability 1.2.0.17 * added EnumNet java API to help query the device network state/status/info * compiling with -mstackrealign for android x86, some devices have stack alignment issues * lt:fix tie-break in duplicate peer connection disconnect logic * lt:fix issue with SSL tracker connections left in CLOSE_WAIT state * lt:defer truncating existing files until the first time we write to them * lt:fix issue when receiving a torrent with 0-sized padfiles as magnet link * lt:fix issue resuming 1.0.x downloads with a file priority 0 * lt:fix torrent_status::next_announce * lt:turn piece picker option flags into a proper type * lt:fix pad-file scalability issue * lt:made coalesce_reads/coalesce_writes settings take effect on linux and windows * lt:source code cleanup, performance and stability 1.2.0.16 * using version in native library names * updated to boost 1.66.0 * lt:use unique peer_ids per connection * lt:fix tracker connection bind issue for IPv6 trackers * lt:fix error handling of merkle torrents * lt:fix error handling of unsupported hard-links * lt:raise auto piece size selection limit to 16 MB in create_torrent() * lt:mark up performance counter operations as noexcept * lt:fix noexcept marking on entry, and make move assignment * lt:using make_address instead of deprecated from_string when boost>=1.66 * lt:block_size is a constant, no need in passing it around as a variable * lt:remove_peer() and attach_peer() error handling * lt:support forced shutdown/destruction of torrent objects * lt:improve error handling during session shutdown * lt:handle serious errors in on_accept_connection handler * lt:deprecate save_encryption_settings * lt:handle errors in peer_connection * lt:support asio handler allocators in deferred_handler * lt:don't heap-allocate handlers for incoming UDP packets * lt:make the chunk header parser properly fail at end of buffer, and not require zero terminated strings * lt:add getters for peer_class_filter and peer_class_type_filter * lt:attempt to fix disconnections when torrents enter upload mode due to failures * lt:fix local network address mappings * lt:deprecate status_code from tracker_error_alert * lt:make torrent_handler::set_priority() to use peer_classes * lt:improve type safety of plugin interface * lt:introduce a proper type for pex flags to improve type-safety * lt:fix reopening of listen sockets when disabling force-proxy * lt:fix build against boost-1.66, specifically the boost.asio changes * lt:fix asio debugging * lt:fix rate limit utp feature * lt:fix i2p support * lt:source code cleanup, performance and stability 1.2.0.15 * added java API to download magnet uri * fixed issue with prioritize_files swig wrapper * API change in TorrentHandle#saveResumeData, now it pass empty flags by default * using android NDK r16b * updated to OpenSSL 1.1.0g * lt:fix loading resume data when in seed mode * lt:fix incorrect use of make_tick_handler * lt:fix issue with initializing settings on session construction * lt:implemented support for magnet URI extension, select specific file indices for download, BEP53 * lt:fix issue with receiving interested before metadata * lt:generate random keys for use in tracker announces, unique per torrent and the listen interface * lt:fix IPv6 tracker announce issue * lt:don't early move shared_ptr plugin in torrent::add_extension_fun * lt:fix force-proxy regression (udp sockets would not be opened) * lt:restore path sanitization behavior of ':' * lt:make tracker announces happen even if there are no open listen sockets * lt:fix issue where new listen sockets would not be opened when leaving force_proxy mode * lt:make sure the cork destructor doesn't leak exceptions * lt:stop posting alerts when the session is shutting down, solves some issues around destruction order * lt:add API to query whether alerts have been dropped or not * lt:keep updating aux::time_now() while there are announces, fixes an infinite loop during shutdown * lt:source code cleanup, performance and stability 1.2.0.14 * fixed invalid handling of download_priority_t and swig wrapper 1.2.0.13 * enable full SSL support in libtorrent * compiling with -fvisibility=hidden and -Os * using android NDK r16 beta2 * updated to boost 1.65.1 * internal session in SessionManager blocks privileged ports and only allows 80 and 443 for possible web seeds connections * lt:enable/disable the internal ip notifier with new setting * lt:fix issue of null m_part_file in default_storage readv/writev * lt:added reopen_network_sockets method to allow manual reopen of listen/outgoing sockets * lt:using NETLINK_NO_ENOBUFS to ignore ENOBUFS in netlink based ip notifier * lt:add limit of max 50 upnp mappings and recover free global mappings * lt:creating part file if needed only in set_file_priorities * lt:fix full allocation failure on APFS * lt:make parse_magnet_uri return the add_torrent_params instead of taking an in-out parameter * lt:pick standard std::aligned_union if using clang * lt:make disk_buffer_holder know the size of the buffer it holds, to fix buffer overrun in chained_buffer * lt:fix infinite loop when parsing certain invalid magnet links * lt:don't delete pieces from cache with refcount > 0 * lt:don't try to connect to a global address with a local source address * lt:fix parsing of torrents with certain invalid filenames * lt:fix leak of peer_class objects (when setting per-torrent rate limits) * lt:more strict filename sanitation * lt:improve handling of case where a torrent file has no files in it * lt:clean up and fix edge cases in update_path_index * lt:fix issue with the name in single file torrents being sanitized away * lt:make the chunk header parser a bit more strict and accurate * lt:fix integer overflow in torrent_info * lt:fix windows file preallocation issue * lt:fix integer overflow in whole_pieces_threshold logic * lt:DHT nodes should only handle requests on their socket * lt:bump priority of storage_moved_alert and storage_moved_failed_alert * lt:deprecate lock_files settings * lt:fix uTP path MTU discovery issue on windows, DF bit was not set correctly * lt:select which DHT port to report based on the connection's local endpoint * lt:avoid port mapping of local IPv6 addresses * lt:include endpoint in tracker alerts * lt:hold an owning reference to storage objects in try_flush_write_blocks * lt:read_piece: handle failure to allocate piece buffer * lt:treat unique local IPv6 addresses as local * lt:source code cleanup, performance and stability 1.2.0.12 * updated to boost 1.65 * storing external address and listen endpoints as strings for better performance * improved creation of peers part of magnet links * lt:fixed netlink based network interface enumeration * lt:remove support for using a pool allocator for disk buffers * lt:fix IPv6 tracker support by performing the second announce in more cases * lt:fix issue in UTF-8 encoding validation * lt:fix infinite loop when parsing torrents whose filenames have zeroes * lt:fix invalid read in parse_int() in bdecode_node() * lt:don't create web seed connections if the torrent is upload only * lt:fix issue with very long tracker and web seed URLs * lt:fix issue where paths were not correctly coalesced when adding files to file_storage (used more memory than necessary) * lt:fix issue of force-recheck or seeding from read-only media, torrents with empty files in them * lt:fix force-recheck issue (new files would not be picked up) * lt:source code cleanup, performance and stability 1.2.0.11 * using android NDK r15c * using -O2 for all architectures * lt:fix to clearing of piece picker in suggest_read_cache mode * lt:fix memory issues with listen sockets references * lt:fix bug where the resume data would fail to load the piece bitmask for seeds when suggest_cache was enabled * lt:submit disk jobs in read_piece() * lt:add reserve entry::to_string() (optimization) * lt:refactor several flags to torrent_handle::get_flags/set_flags * lt:added block_uploaded_alert to allow client to track upload activity * lt:fix inconsistency in file_priorities and override_resume_data behavior * lt:remove call _strchr (optimization) * lt:fix bandwidth rate limit calculation * lt:fix handling of SSL listen sockets * lt:don't move listen_socket_t when deleting sockets * lt:avoid executing timed async task if the dht node is already removed * lt:reject DHT put messages with incorrect bencoding * lt:fix backwards compatibility issue when loading the torrent info dict from resume data * lt:fix regression where paused torrents could not have their queue position changed * lt:use netlink to enumerate network interfaces on linux * lt:fix out-of-bounds read in bdecode * lt:fix re-check issue after move_storage * lt:avoid runtime fail with wrong arguments in upnp::update_map * lt:handle invalid arguments to set_piece_deadline() * lt:fix that move_storage did not work for torrents without metadata * lt:fix check for fully allocated file on windows * lt:defer reconnecting peers to after the second_tick loop * lt:implemented support for BEP 51 * lt:source code cleanup and stability 1.2.0.10 * added swig interface to announce_endpoint 1.2.0.9 * updated to OpenSSL 1.1.0f * updated to boost 1.64 * using android NDK r15 * avoid automatic UTF-8 conversion in JNI side when using string_view * lt:fix bandwidth rate limit calculation * lt:fix for what appears to be an clang/llvm miscompilation * lt:only listen on preferred IPv6 addresses on Windows * lt:when stopping a torrent, never perform a name lookup on the tracker, only announce to trackers whose IP we already know. This is expected to make shutdowns not hang * lt:fix previously faulty fix to enum_routes * lt:delay 5 seconds before reconnecting socks5 proxy for UDP ASSOCIATE * lt:fix NAT-PMP crash when removing a mapping at the wrong time * lt:fix race condition in storage tick handling in disk_io_thread * lt:keep iterating over endpoints if one is found to be done in tracker announce loop * lt:don't abort the existing torrent when attempting to add it again * lt:fix IPv6 UTP assertion failure, close listen sockets after closing all connections * lt:fix branch factor overflow in DHT traversal algorithm * lt:bind upnp requests to correct local address * lt:don't combine reuseaddr and exclusive addruse on windows * lt:save resume data when removing web seeds * lt:fix proxying of https connections * lt:fix race condition in disk I/O storage class * lt:avoid extra sha1_hash memory copy in create_torrent * lt:fix http connection timeout on multi-homed hosts * lt:implemented multi-home support * lt:make DHT bootstrapping more robust by not throwing away nodes * lt:need_save_resume_data() will no longer return true every 15 minutes * lt:create a separate DHT node for each listen socket * lt:avoid connections to trackers when the event is stopped and stop_tracker_timeout <= 0 * lt:fix storage destruction order issue * lt:fix memory leak in the disk cache * lt:magnet links: unescape hash parameter * lt:fix double free in disk cache * lt:fix typo in natpmp::start * lt:remove mutex-release hack in file_pool * lt:source code cleanup and stability 1.2.0.8 * fixed synchronization issues in SessionManager#stop 1.2.0.7 * added support for ip_notifier in macOS * added resolver_cache_timeout setting for internal host name resolver * improved public API * internal fixes in libtorrent 1.2.0.7-RC3 * start of changelog