Skip to content

Releases: aldenml/libtorrent4j

2.1.0-35

18 Nov 13:12
0245a7b
Compare
Choose a tag to compare
  • update to libtorrent master
  • lt:fix, abort_download() is OK in any state
  • lt:fix race condition when cancelling requests after becoming a seed
  • lt:add announce_port setting

2.1.0-34

18 Nov 01:27
5c9ec7f
Compare
Choose a tag to compare
  • update to libtorrent master
  • lt:addresses an issue where it would wait for pieces to be written to disk
    before advertising it to peers

2.1.0-33

30 Oct 12:30
72bf5df
Compare
Choose a tag to compare
  • update to libtorrent master
  • using SWIG 4.3.0
  • update to boost 1.86.0
  • update to OpenSSL 3.4.0
  • update android NDK r27c
  • lt:fix performance bug in the file pool, evicting MRU instead of LRU
  • lt:fix bug where file_progress could sometimes be reported as >100%
  • lt:source code cleanup, performance and stability

2.1.0-32

23 Oct 01:55
0dd8c65
Compare
Choose a tag to compare
  • update to libtorrent master
  • lt:don't hint POSIX_FADV_RANDOM
  • lt:allow connections while checking resume data if no_verify_files flag is
    set
  • lt:fix BEP-40 peer priority for IPv6
  • lt:limit the piece size in create_torrent constructor
  • lt:set m_file_priority early, to make open_file() work as expected.
  • lt:don't discard netlink messages for previously seen addresses
  • lt:fix issue when closing a uTP connection with a close reason and picking
    up a nagle packet.
  • lt:apply DSCP setting to peers before connecting
  • lt:check settings_pack::max_out_request_queue before alerting performance
    warning: max outstanding piece requests reached
  • lt:check settings_pack::max_out_request_queue before alert
    outstanding_request_limit_reached
  • lt:updated libdatachannel to v0.21.2
  • lt:make anti-leech choker never increase score for dishonesty
  • lt:try encode web seed redirect location
  • lt:send read_piece right at the end of piece_passed
  • lt:fix integer overflow in piece picker
  • lt:try harder to bind TCP and UDP sockets to the same port
  • lt:torrent_status::num_pieces counts pieces passed hash check, as documented
  • lt:add feature to enable interruption of disk I/O worker threads
  • lt:pass in whether a torrent has v1 and/or v2 hashes in storage_params
  • lt:reject resume data if it contains mismatching info hashes
  • lt:restore file priorities in POSIX storage
  • lt:fix the wrong port is being announced to tracker
  • lt:allow I2P leaseset encryption type 4
  • lt:allow execution of on_unknown_torrent method in the absence of active
    torrents
  • lt:fix assert in uTP resend_packet()
  • lt:improve checking and testing of max piece size
  • lt:source code cleanup, performance and stability

2.1.0-31

08 Oct 17:01
f2163ba
Compare
Choose a tag to compare
  • update to libtorrent master
  • using SWIG 4.1.1
  • improved java api layer
  • 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

2.1.0-30

20 May 00:06
e7d1453
Compare
Choose a tag to compare
  • 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

2.1.0-29

26 Mar 22:59
4eb58ad
Compare
Choose a tag to compare
  • 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

2.1.0-28

18 Mar 21:24
034a353
Compare
Choose a tag to compare
  • 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

2.1.0-27

14 Jan 20:29
d13ec3d
Compare
Choose a tag to compare
  • 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:optimize resume data format to use less space
  • lt:add async piece availibility query, post_piece_availibility()
  • lt:add async download queue query, post_download_queue()
  • lt:add async file_progress query, post_file_progress()
  • lt:add async peer_info query, post_peer_info()
  • 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

2.0.6-26

06 Jun 02:06
863b09a
Compare
Choose a tag to compare
  • 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
  • lt:source code cleanup, performance and stability