lt:allow to change save path without any additional actions
lt:allow to change save path without moving any files
lt:peer_list fix, clear the m_candidate_cache when clear peer_list, and set
m_num_seeds to 0
lt:schedule DHT announces using milliseconds rather than seconds
lt:fix issue with web seed connections when they close and re-open
lt:removing an already removed torrent is a no-op
v2.1.0-30
1 year ago
update to libtorrent master
add support for Linux arm
lt:revert and replace fix for proxies supporting IPv6
lt:make i2p session options configurable
lt:fix announce_with_tracker assert
lt:fallocate() not supported is not a fatal error
lt:fix proxying of IPv6 connections via IPv4 proxy
lt:fix peer_list to support incoming i2p connections
lt:treat CGNAT address range as local IPs
lt:disallow piece layer entries that don't refer to any file in the torrent
lt:disallow piece layer entries in torrent files that don't compute to their
advertised root hash
lt:validate piece layers against their roots when loading torrents
lt:tighten up handling of hash checking v2 and hybrid torrents
lt:cache failed DNS lookups as well as successful ones
lt:when draining the torrent_info object
lt:fix scraping of i2p tracker
lt:minor simplification of i2p socket identification
lt:store i2p-torrent state in resume data
lt:disable DHT for i2p torrents
lt:fix accepting incoming i2p connections
lt:fix interpretation of non-compact i2p tracker responses
lt:add base64decode() for i2p alphabet and simplify base32encode()
lt:make i2p trackers only announce once (not once per listen interface)
lt:fix i2p SAM parsing of quoted values. and make name lookup failures
non-fatal
lt:expose i2p peer destination (b32 address) in peer_info
lt:simplify handling of compact tracker responses for i2p trackers
lt:fix sorting of torrent_peer entries when mixing i2p and non-i2p peers
lt:make base32encode take a span instead of a string
lt:fix issue with read_piece() stopping torrent on pieces not yet downloaded
lt:improve handling of allow_i2p_mixed setting to work for magnet links
lt:source code cleanup, performance and stability
v2.1.0-29
1 year ago
update to libtorrent master
fix fetch magnet, save the add_torrent_params as a torrent file
lt:add need_save_resume field to torrent_status, with the resume data flags
indicating which aspects of a torrent have changed since the last resume
data was saved. Also make only_if_modified flag a combination of the other
flags.
lt:separate only_if_modified flag to save_resume_data
lt:removing an ephemeral web seed does not affect whether resume data needs
to be saved
lt:allow promoting an ephemeral web seed when adding it
lt:fix web seed request for renamed single-file torrents
lt:instead of removing web seed with certain errors, just disable them and
preserve them in the resume data.
lt:improve behavior of save_resume_data() only_if_modified flag to avoid
re-saving the resume data too frequently
lt:port 1 is used as a placeholder for announcing to trackers without the
ability to accept incoming connections
lt:fix issue in retrying trackers in tiers > 0
lt:fix time_point conversion from/to time_t
lt:don't throw a std::system_error holding a boost::system::error_code
lt:source code cleanup, performance and stability
v2.1.0-28
1 year ago
update to libtorrent master
update to boost 1.81.0
update to OpenSSL 1.1.1t
update android NDK r25c
removed API to manage trackers from torrent info
make sure trackers and web seed info is saved when fetching a magnet
lt:minor accounting fix for utp packet pool
lt:report back the full endpoint of peers removed from the peer list when
applying a port_filter and include it in the peer_blocked_alert
lt:simplify handling of privileged ports setting by untangling it from the
port filter
lt:get close reason apply visitor types
lt:deprecate storing trackers in torrent_info
lt:improve I2P support
lt:updated libdatachannel to v0.18.1 (re-licensed to MPL 2.0)
lt:fix async_wait() for read and write (used to be null_buffers)
lt:handle outgoing EOF properly. report eof to the write handler. record
that we're closing.
lt:simplify utp send_reset() a bit
lt:correct uTP sequence number check for packets past EOF
lt:minor uTP cleanup and updates to logging
lt:report EOF to upper layer when receiving a FIN packet, in uTP
lt:rename eof and eof_seq_nr to indicate in refers to the incoming stream
lt:fix recently introduced create_torrent::generate_buf() where it failed to
include collections and similar-fields
lt:make status_t a proper flag type, to clean up oversized_file indication
from disk subsystem
lt:source code cleanup, performance and stability
v2.1.0-27
1 year ago
update to libtorrent master
removed API to create torrents from torrent info
lt:move towards an immutable torrent_info
lt:optimize create_torrent::generate_buf()
lt:changed offer_id length from 16 to 20 for consistency with the JS
implementation
lt:fixed rtc_signaling to use the peer id generated for the torrent
lt:add async tracker status query, post_trackers()
lt:add async torrent status query, post_status()
lt:create_torrent does not need fileroots to be a member to create_torrent
lt:support loading version 2 of resume data format
lt:disable alert notification during session destruction
lt:ensure loading resume data tolerates bitfields that are too large
lt:post torrent_removed_alert after actually removing it from the disk
subsystem
lt:fix use-after-free in web_peer_connection
lt:fix issue with torrents that have a piece size not divisible by 16kB
lt:starting torrent, connect to peers found in add_torrent_params
immediately
lt:continue to ack incoming uTP data while finalizing the connection
lt:fix sending ST_FIN packet while the socket is stalled
lt:fix uTP streams timing out instead of closing cleanly
lt:safe usage of strncpy
lt:prevent sending data on a uTP socket after closing it
lt:fix m_bytes_in_flight invariant and packet counters in the event of the
UDP socket stalling
lt:fix some disk-io counters. primarily num_read_back
lt:introduce new API for create_torrent, to phase out the use of
file_storage for creating torrents
lt:clean-up settings_pack default values to be able to return the default
value for un-set settings without a hack
lt:add write_torrent_file_buf() overload for generating .torrent files
lt:add create_torrent::generate_buf() function to generate into a buffer
lt:use typesafe flag in (internal) file_status() function parameter
lt:use typesafe flag in file_status struct, and optimize out a redundant
call to stat() in add_files
lt:resend uTP acks that fail to send due to stalling
lt:fix copy_file when the file ends with a sparse region
lt:when the uTP socket stalls, mark failed packets for resend
lt:add some utility member functions to create_torrent
lt:fix trackers being stuck after session pause/resume
lt:fix bug in hash_picker with empty files
lt:expose mmapped file_open_mode flag
lt:add option to not memory map files below a certain size
lt:settings_pack now returns default values when queried for missing
settings
lt:don't drop uTP's cwnd below 1*MSS due to latency
lt:reset uTP timeout when sending packets
lt:extend create_torrent object with piece_range(), end_piece() and
total_size()
lt:fall back to full copy if SEEK_HOLE and SEEK_DATA isn't supported
lt:improve error reporting from file opy and move
lt:tweak pad file placement to match reference implementation (tail-padding)
lt:update state when need to save resume data
lt:support incoming SOCKS5 packets with hostnames as source address, for UDP
trackers
lt:modify the Nagle algorithm to allow one undersized packet in flight at a
time
lt:for efficiency, pick up and send an undersized utp packet if there's room
in the congestion window when 'forcing' a packet
lt:ignore duplicate network interface change notifications on linux
lt:prevent redundant deferred utp acks from being sent
lt:don't memory map files smaller than 1 MiB, use pwrite/pread calls
lt:fix wanted_done/done accounting when force-rechecking
lt:fix total_want/want accounting when forcing a recheck
lt:expose userdata via torrent_handle
lt:introduce setting for using pwrite in mmap_disk_storage
lt:use pwrite() for writing to files in mmap_storage
lt:better thread names
lt:fix merging metadata with magnet links added on top of existing torrents
lt:add torrent_flag to default all file priorities to dont_download
lt:make the SOCKS5 client tolerate a domain name in the response to UDP
ASSOCIATE
lt:fix renaming of filenames that are too long for the filesystem
lt:optimize loading merkle tree mask
lt:move the creation of directories and retrying opening a file for writing
down the stack
lt:fix destruction order of job-pool and file-pool
lt:make LSD code avoid using select_reactor
lt:make UPnP code not use select_reactor
lt:refactor file_view_pool to allow it to be used with other file objects
than just memory mapped files
lt:remove vectored I/O API from file class
lt:remove vector I/O API from part file. use single buffers
lt:open files with no_cache set in O_SYNC mode
lt:report EOF when attempting to hash off the end of a short file
lt:factor out hash_zeroes() from mmap_storage
lt:set file index of errors in readwrite() instead of in every file-op
lt:change vectored I/O API to single-buffer in readwritev() and posix- and
mmap storage
lt:handle all "fastresume rejected" cases consistently
lt:make copy_file_range() fall back to manual copy when it fails with EXDEV
lt:use boost static_vector in disk_completed_queue
lt:make file_pool_view serialize opening of files, rather than race each
other. When the same file is needed by multiple threads
lt:fix destruction order issue in mmap_disk_io
lt:don't disconnect peers after accepting 'slack' connections when no longer
above the connection limit
lt:factor out disk job completed queue from mmap_disk_io
lt:factor out and fix debug disk thread functionality
lt:make disk_job_pool generic
lt:make a generic disk job type
lt:simplify the disk io thread pools and factor more of its logic out
of mmap_disk_io
lt:fix issue where stop-when-ready would not close files
lt:fixed tracker connections spinning when hostname lookups stall
lt:improve tailqueue's API to make it clearer and safer
lt:factor out storage_array from mmap_disk_io
lt:enable volatile-read for peer connection read requests, when
disk_io_read_mode is disable_os_cache
lt:new scrape_tracker and force_reannounce
lt:factor out tracker list, enforce unique tracker URLs
lt:extend write_torrent_file() with a flags parameter, don't include DHT
nodes by default
lt:when over the connection limit, treat partially downloaded but complete
torrents the same as seeds when looking for a peer to replace with a
potentially better one
lt:add torrent_conflict_alert
lt:fix issue with merging two magnet link torrents into one hybrid
lt:move the protocol version field for tracker alerts into the
tracker_alert baseclass
lt:use sync_file_range() on linux, when disabling write cache
lt:post add_torrent_alert after torrent is fully initialized
lt:interrupt http_connection::on_resolve() for closed connection
lt:fix file_num_blocks() and file_num_pieces() for empty files
lt:use default settings in set_piece_hashes
lt:ut_metadata: don't request the same block more than once every 3
seconds unless the source is disconnected
lt:unify default limits when loading torrents in torrent_info constructor
lt:add new overload to make_magnet_uri that takes an add_torrent_params
lt:add missing protocol version to tracker_reply_alert and
tracker_error_alert
lt:fix privilege issue with SetFileValidData()
lt:add asynchronous overload of torrent_handle::add_piece()
lt:source code cleanup, performance and stability
v2.0.6-26
1 year ago
using libtorrent master
added API support to change the disk I/O back-end
lt:fix MacOS version check for preadv() support
lt:handle all "fastresume rejected" cases consistently
lt:default to a single hashing thread, for full checks
lt:fix bind-to-device for tracker announces and UPnP
lt:fix bug when checking files and the first piece is invalid
lt:rename peer_tos -> peer_dscp
lt:updated libdatachannel to v0.17.1
lt:simplify part of pe_crypto, init_bt_handshake and stats accounting
lt:add new alert, oversized_file_alert, posted when an existing file in a
torrent is found to have a greater size than the file according to the
torrent file
lt:make the disk buffer pool implement the buffer_allocator_interface
lt:send a User-Agent field in HTTP tracker requests in anonymous mode
lt:fix issue creating v2 torrent from torrent_info with empty file
lt:make recheck files also update which files use partfile
lt:add write_through option to disk_io_write_mode
lt:improve copy_file() to preserve sparse regions on systems supporting
SEEK_HOLE/SEEK_DATA
lt:add function to truncate over-sized files part of a torrent
lt:set lower memory priority for disk I/O threads on windows
lt:fix directory creation on windows shared folders
lt:rename disk_io_job to mmap_disk_job
lt:set thread names on Haiku
lt:set thread names on windows
lt:set thread names on posix
lt:fix mmap_disk_io shutdown race. We may end up posting new jobs after
starting the shutdown
lt:factor out storage initialization
lt:add flag to make add_files() not record file attributes