Skip to content

Releases: aldenml/libtorrent4j

libtorrent4j-2.0.3-15

30 Mar 23:47
c0f483d
Compare
Choose a tag to compare
  • 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

20 Mar 17:35
6ce65e1
Compare
Choose a tag to compare
  • 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

10 Mar 03:02
d2be60f
Compare
Choose a tag to compare
  • 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

08 Feb 02:29
2a10665
Compare
Choose a tag to compare
  • 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

31 Jan 17:05
2326b6d
Compare
Choose a tag to compare
  • 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

10 Jan 03:00
434177b
Compare
Choose a tag to compare
  • 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

31 Dec 01:32
48a98dc
Compare
Choose a tag to compare
  • 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

24 Dec 06:02
0467913
Compare
Choose a tag to compare
  • 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

07 Dec 00:47
d6bff56
Compare
Choose a tag to compare
  • 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

03 Dec 23:40
ca50f64
Compare
Choose a tag to compare
  • 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