Releases: aldenml/libtorrent4j
Releases · aldenml/libtorrent4j
libtorrent4j-2.0.3-15
- using libtorrent master
- updated to OpenSSL 1.1.1k
- using android NDK r22b
- lt:add new torrent_file_with_hashes() which includes piece layers for
creating .torrent files - lt:use /etc/ssl/cert.pem to validate HTTPS trackers and web servers on
MacOS - lt:raise the severity of peers sending invalid messages to 'peer_error'.
Simplify m_upload_only to just record the explicit upload-only state
communicated via the extension message. Implied upload only is moved to
the upload_only() query. Add simulations for peer connection tests.
Mostly for have-all, have-none and bitfields, and some simple invalid
requests. This will serve as a platform to add more sophisticated tests. - lt:restore peer_connection::is_seed to not take m_have_all into account.
It caused some regression in edge cases - lt:add a file_prio_alert, posted when file priorities are applied
- lt:prefer __builtin_popcountl() over portable C implementation of
popcnt. This enables the ARM64 SIMD instruction on Apple M1 - lt:fix issue with setting file priorities and saving resume data. The
need-save-resume flag should not be set until after the new file
priorities have been applied. Don't set the need-save-resume flag just
by loading the resume data (when applying the file priorities into the
piece priorities) - lt:source code cleanup, performance and stability
libtorrent4j-2.0.2-14
- using libtorrent master
- minimum supported Android 32 bits API >= 19
- minimum supported Android 64 bits API >= 21
- using android NDK r22
- using android prebuilt toolchain
- using android LLD linker
- lt:fix size_on_disk patch
- lt:fix torrent_info::v2 to be correct after freeing piece layers from
torrent_info - lt:allow no-interest timeouts of peer connections before all connections
slots are full - lt:add flag to force canonical file order and padding for v1-only torrents
- lt:return nullptr instead of crashing in get_storage_impl
- lt:fix issue where peers entering upload-mode cannot leave upload-mode
- lt:fix issue where a DHT message would count as an incoming connection
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.2-13
- using libtorrent master
- updated to OpenSSL 1.1.1j
- improved java api layer
- lt:updated libdatachannel to v0.11.9
- lt:deprecate sha-1 file hashes (torrent file extension field)
- lt:add size_on_disk() to file_storage and torrent_info, reporting the total
size of non-pad files - lt:fix issue when failing to parse outgoing_interfaces setting
- lt:fix issue where set_piece_hashes() would not propagate file errors
- lt:fix super-seeding issue that could cause a segfault
- lt:mark need-save-resume when adding a tracker
- lt:fix need_save_resume_data() for renaming files, share-mode, upload-mode,
disable- pex, lsd, and dht. - lt:fix issue in parsing invalid webtorrent tracker responses
- lt:fix incoming TCP connections when using tracker-only proxy
- lt:correctly store "max_uploads" value in resume data
- lt:fix error messages related to opening files, specifically truncate
and allocate failures (which currently are incorrectly attributed to
open file) - lt:add work-around for systems without fseeko() (such as Android)
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.2-12
- using libtorrent master
- fixed missing fseeko64 symbol at runtime
- fixed download priority type mismatch (now it is byte)
- lt:cleanup use of _FILE_OFFSET_BITS
- lt:ensure we don't attempt to make outgoing connections to RTC peers
- lt:don't announce stopped-event to websocket trackers. This (appears) to
solve a shutdown stall where we send stopped-announces after aborting
outstanding announces (including the persistent websocket connection).
The announce causes the persistent connection to be re-established and
sometimes not torn down properly again, to complete the shut down - lt:remove misleading (and redundant) peer log message
- lt:increase the default setting for max_allowed_in_request_queue
from 500 to 2000. The entries in this queue are relatively small,
and allowing too few may negatively impact high-throughput peers - lt:deprecate volatile_read_cache
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.2-11
- using libtorrent master
- lt:do not accept RTC peer if already connected
- lt:fix the complete() function, turning a path into an absolute path,
to correctly strip the ./ prefix of a relative path - lt:fix load_file(), used to load files in the torrent_info constructor
and the posix part file, to support non-ascii characters on windows - lt:prevent a time-out because no incoming requests have been received,
when we're still waiting to respond to previous requests - lt:add dedicated error codes for SSRF mitigation and IDNA blocking
- lt:updated libdatachannel to v0.10.4
- lt:fix DHT upload rate limit overflow when set very high, or invoked very
rarely - lt:some uTP MTU-probe fixes
- lt:restart path MTU discovery when a probe is lost that previously made it
- lt:use IP_PMTUDISC_PROBE instead of IP_PMTUDISC_DO to set the DF flag on
linux - lt:keep sending MTU probes after the MTU floor and ceiling have converged
- lt:fix overflow of block_index in hash_picker for v2 torrents
- lt:WebTorrent - add keepalive with ping on WebSocket
- lt:fix overflow issue when rlimit_nofile is set to infinity
- lt:simplify some of the computation of MTUs for uTP sockets
- lt:strengthen SSRF mitigation for web seeds
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.2-10
- using libtorrent master
- lt:fail loading torrents with too many duplicate file names (as that's a
potential DoS) - lt:don't announce to trackers while checking files, in replace_trackers()
- lt:fix redundant and failed bytes overflow check
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.1-9
- using libtorrent master
- lt:fix loading of DHT node ID from previous session on startup
- lt:use getrandom(), when available, and fall back to /dev/urandom
- lt:allow not setting a creation date in create_torrent (but default to
current timestamp). Provide more prominent shortcuts to ask a torrent_info
about whether it has v1 and v2 metadata - lt:pull out cached_block_entry::blocks_in_piece from bitfield, since it's
immutable and may be read from multiple threads without holding any mutex.
Other fields in the bitfields may be updated under a mutex, which would
race with blocks_in_fields otherwise - lt:fix data race in storage::m_settings
- lt:remove invalid asserts, which introduce a data race
- lt:remove use of global variable in ut_pex (and a data race along with it)
- lt:fix data race in block cache
- lt:fix time_now_string to not use a global variable for the returned string
- lt:magnet link parameters names are case insensitive
- lt:mitigate a class of tracker SSRF where tracker URLs come preloaded with
bittorrent tracker query string arguments, like info_hash, event, etc - lt:source code cleanup, performance and stability
libtorrent4j-2.0.1-8
- using libtorrent master
- using ubuntu bionic (18.04 LTS) to generate linux binary
- updated to OpenSSL 1.1.1i
- updated to boost 1.75.0
- lt:move session flags into the session_params object
- lt:m_seq_nr is not incremented when sending a FIN packet
- lt:add support for getrandom
- lt:improve seeding of pseudo random number generator
- lt:use cryptographic random numbers for DHT write key
- lt:use crypto_random_bytes() to generate PCP nonce
- lt:use crypto_random_bytes() to generate ed25519 key seeds
- lt:separate secure random numbers from pseudo random numbers
- lt:source code cleanup, performance and stability
libtorrent4j-2.0.1-7
- using libtorrent master
- lt:extend SSRF mitigation to also cover web seeds
- lt:validate HTTPS tracker certificates by default
- lt:add option to disallow IDNA tracker and web seed hostnames, and disallow
them by default - lt:add is_idna() function to detect IDNA encoded hostname labels
- lt:load SSL certificates from windows system certificate store, to
authenticate trackers - lt:fix unaligned piece requests in mmap_storage
- lt:introduce mitigation for Server Side Request Forgery in tracker
announces - lt:simplify pointer arithmetic in utp buffer handling by using span.
Introduce some more defensive sanity checks - lt:don't log protocol encryption key and synchash
- lt:fix error handling for pool allocation failure. Use regular new, that
throws on failure, rather than the nothrow version - lt:smart_ban uses sha-1 to hash blocks, there's no need to salt
- lt:clarify that DHT transaction IDs are 16 bits
- lt:fix concurrent access to part files by using pread/overlapped I/O
instead of seek+read - lt:source code cleanup, performance and stability
libtorrent4j-2.0.0-6
- using libtorrent master
- restored general exception handler in JNI layer
- added missing flags and api to save session params
- fixed issue, actual session params were ignored in SessionManager#restart
- lt:fix issue with moving the session object
- lt:fix attribute in single-file v2 torrent creation
- lt:fix padding for empty files in v2 torrent creation
- lt:deprecate torrent_status::allocating (state no longer used)
- lt:fix bug creating torrents with symbolic links
- lt:add function to ask a file_storage whether it's v2 or not
- lt:remove special case to save metadata in resume data unconditionally when
added through magnet link - lt:fix feature to create hard-links to existing files in other torrents
- lt:fix bug in torrent_info copy constructor
- lt:source code cleanup, performance and stability