* refactor: use the same salter everywhere
* fix: re-create candidate when got bad block if needed
* refactor: housekeeping
* fix: emit bad piece signal after all bookkeeping
* refactor: add a Torrent.id property
* feat: add Controller.torrentForId
* refactor: make tr_session_idle_limit_hit_func a std::function
* refactor: make tr_session_metadata_func a std::function
* refactor: make tr_session_ratio_limit_hit_func a std::function
* refactor: make tr_torrent_completeness_func a std::function
* refactor: make tr_altSpeedFunc a std::function
* refactor: make tr_sessionSetQueueStartCallback callback a std::function
* refactor: make tr_rpc_callback_status callback a std::function
* refactor: remove user_data arg from tr_torrent_rename_done_func
* refactor: harden `tr_torrentFindFromId()` by making it safe to pass in a nullptr session
* ci: run `clang-tidy-libtransmission` for app/test-only changes
* fix: fix another new clang-tidy regression
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* ci: move crypto tests into their own matrix
they do not need to run on both bsd 14 and bsd 15
* ci: remove matrix for the DISABLE_UTP test
the "enabled" half of the matrix is redundant with other CI runs
* ci: cancel prior CI jobs when new commit(s) are pushed
* ci: futureproof fedora matrix by using aliases fedora-latest, fedora-rawhide
* ci: remove the -from-tarball job suffixes
* ci: fold the debian-11 job into the debian job matrix
* fixup! ci: fold the debian-11 job into the debian job matrix
fix: sh->bash mismatch
* ci: always use the default version of freebsd, openbsd
* ci: always use the default version of netbsd
* ci: always use the default version of dragonflybsd
* ci: remove unused fail-fast setting
* ci: infra for parallel clang-tidy runs
* ci(gtk): run clang-tidy
* chore(gtk): silence warnings
* code review: use constexpr auto
* code review: use constants over magic numbers in Utils.cc
* code review: use `std::ignore` to ignore return value
* code review: add back visibility labels that indicated sections
* fix: wrap each command argument in single quotes
* ci: run big-endian tests in GitHub Actions
* ci: use debian:stable-slim and ubuntu-latest for big-endian tests
this way we will not have to periodically bump them
* ci: do not use -j nproc in qemu
* ci: cross-compile and then run the big-endian tests in qemu
* fix: mask non-UTF-8 characters in torrent file paths
BEP-3 requires strings to be UTF-8. Run path components through
tr_strv_to_utf8_string() to replace invalid bytes with U+FFFD
before sanitizing. Adds test with good and bad UTF-8 paths.
* replace ctrl characters in 'name' and 'path'
* Revert "replace ctrl characters in 'name' and 'path'"
This reverts commit 6816f59295.
* fix: mask non-UTF-8 characters in torrent file paths
BEP-3 requires strings to be UTF-8. Run path components through
tr_strv_to_utf8_string() to replace invalid bytes with U+FFFD
before sanitizing. Adds test with good and bad UTF-8 paths.
* replace ctrl characters in 'name' and 'path'
* Revert "replace ctrl characters in 'name' and 'path'"
This reverts commit 6816f59295.
* prepare for future Bittorrent v2 usage