Commit Graph

16807 Commits

Author SHA1 Message Date
Yat Ho
5e8e3da0c2 refactor(qt): use percent complete value from RPC (#8705) 2026-03-19 10:04:00 -05:00
Yat Ho
8c035915e6 refactor(qt): use upload ratio value from RPC (#8706) 2026-03-19 10:03:37 -05:00
Charles Kerr
849cd0ecea refactor: remove write cache (#8669)
* refactor: mark cache_size_mib as deprecated in RPC

* refactor: make RPC session_set cache_size_mib a no-op

* refactor: tr_ioRead(), tr_ioWrite() now take a std::span

* refactor: add BufferReader::to_buf(std::span<uint8_t>)

* refactor: migrate some methods to to_buf(std::span<uint8_t>)

* refactor: remove the write memory cache

* chore: simplify recalculate_hash()

* refactor: simplify span use in tr_peerMsgsImpl::read_piece_data()
2026-03-11 07:16:39 -05:00
Yat Ho
a483792783 feat: configurable ip query endpoint (#8650)
* feat: configurable ip query endpoint

* fix(test): don't query global IP
2026-03-10 11:36:10 -05:00
Yat Ho
8dfce3c90c perf: constexpr tr_variant::value_if() specialisations (#8670)
* refactor: move `tr_variant::value_if<int64_t>()` to header and constexpr

* refactor: move `tr_variant::value_if<bool>()` to header and constexpr

* refactor: move `tr_variant::value_if<std::string_view>()` to header and constexpr
2026-03-10 08:48:24 -05:00
Yat Ho
a3545eb9c2 feat: bound-checked tr_variant::value_if() for smaller integer types (#8660)
* feat: bound-checked `tr_variant::value_if()` for smaller integer types

* feat(rpc): ignore values outside the `tr_torrent_id_t` range
2026-03-09 19:35:08 -05:00
Charles Kerr
a84c769f94 refactor: remove unused tr_ctorSetFilePriorities() (#8667)
refactor: remove unused tr_ctorSetFilesWanted()
2026-03-09 17:01:03 -05:00
Charles Kerr
974b16e71c refactor: remove tr_torrentsQueueMoveTop() from public API (#8666)
* refactor: remove tr_torrentsQueueMoveTop() from public API

refactor: remove tr_torrentsQueueMoveUp() from public API

refactor: remove tr_torrentsQueueMoveDown() from public API

refactor: remove tr_torrentsQueueMoveBottom() from public API

* refactor: remove unused tr_torrentGetQueuePosition()
2026-03-09 17:00:42 -05:00
Yat Ho
5c6b6db42c fix: modernize-use-integer-sign-comparison (#8662) 2026-03-09 09:58:51 -05:00
Yat Ho
282f085e30 refactor: move tr_pex/tr_variant converters to serializer.cc (#8655) 2026-03-08 12:22:30 -05:00
Charles Kerr
105224de1d perf: prune unused interned strings (#8653) 2026-03-05 10:08:26 -06:00
Yat Ho
eac99ff1a0 fix: readability-container-contains (#8656)
* fix(core): `readability-container-contains`

* fix(test): `readability-container-contains`

* build(gtk): enable `readability-container-contains`

* fix(qt): `readability-container-contains`
2026-03-05 10:00:29 -06:00
Yat Ho
b40adc411e fix: don't overwrite *_enabled if preferred_transports is not in settings.json (#8657) 2026-03-05 08:47:51 -06:00
reardonia
cee65c7606 security: sanitise CTRL characters in filenames on all systems (#8495)
* disallow CTRL characters in filenames on Unixen

* fixup: compact into is_reserved_char()
2026-03-04 18:08:38 -06:00
Yat Ho
4eaf91fda5 refactor: compare_failed spaceship (#8634) 2026-03-04 16:04:10 -06:00
Yat Ho
59abf6e1db fix: re-create candidate when got bad block if needed (#8644)
* 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
2026-03-04 15:59:21 -06:00
Charles Kerr
5e305a2d26 refactor: simplify session callbacks (#8646)
* 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
2026-03-03 16:02:54 -06:00
Yat Ho
7d3b22639d fix: don't process failed HTTP announce response if one the same group succeeded (#8631) 2026-03-01 21:16:20 -06:00
Yat Ho
b561960d51 fix: enable modernize-use-ranges (#8626)
* fix(core): enable `modernize-use-ranges`

* fix(test): enable `modernize-use-ranges`

* fix(qt): enable `modernize-use-ranges`

* fix(gtk): enable `modernize-use-ranges`
2026-02-26 08:22:29 -06:00
Charles Kerr
152e528d9b perf: add a constexpr/consteval tr5/legacy key lookup table (#8625)
* perf: add a constexpr/consteval tr5/legacy key lookup table

* fix: readability-use-anyofallof
2026-02-25 22:18:50 -06:00
Yat Ho
d56a8e80c3 refactor: use char8_t as underlying type of tr_interned_string (#8556) 2026-02-25 09:07:01 -06:00
Yat Ho
765debd61c fix(qt): apicompat when saving settings.json (#8619) 2026-02-25 08:51:21 -06:00
Yat Ho
fe879f5817 fix: revert percent-encoding announce urls and webseeds (#8620) 2026-02-25 08:48:34 -06:00
Yat Ho
6a6b0dbcc5 ci: run clang-tidy-libtransmission for app/test-only changes (#8612)
* 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>
2026-02-24 23:49:55 -06:00
Charles Kerr
144871ed5e fix: 4.1.0 crash when parsing some RPC responses from older Transmission servers (#8607) 2026-02-24 22:44:06 -06:00
Charles Kerr
8c9eab9a96 fixup! fix: show translated logging level strings (#8609) (#8615)
fix new clang-tidy warning
2026-02-24 20:07:28 -06:00
Dmitry Lobanov
f7a48c3484 fix: eliminate torrents list retain cycles (#8603) 2026-02-24 08:47:53 -06:00
Yat Ho
4e26df6671 fix: modernize-use-ranges in peer-*.cc (#8599) 2026-02-24 07:48:36 -06:00
Charles Kerr
32d0daafd9 fix: show translated logging level strings (#8609) 2026-02-24 07:47:28 -06:00
Yat Ho
fa2dfe11b1 fix: reset metainfo before parsing new benc (#8590) 2026-02-23 09:07:26 -06:00
Yat Ho
33b2388a43 fix: modernize-use-ranges in peer-mgr-wishlist.cc (#8594) 2026-02-22 22:45:03 -06:00
Yat Ho
85e99a6927 feat(remote): display preferred_transports instead of utp_enabled (#8576) 2026-02-22 15:18:44 -06:00
github-actions[bot]
6b3d00b190 chore: update generated transmission-web files (#8593)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2026-02-22 03:19:03 -06:00
sionide0278
5e2ba3f8d7 Update prefs-dialog.js (#8588)
Without this, the Time dropdown displays 6:45 as 6.75:45
2026-02-21 18:24:25 -06:00
Tom Sullivan
0222d9d466 chore: bump to 4.2.0-dev (#8589) 2026-02-21 11:03:52 -06:00
Yat Ho
5b52ba92c0 fix: enable modernize-use-designated-initializers (#8592)
* fix(qt): enable `modernize-use-designated-initializers`

* fix(gtk): enable `modernize-use-designated-initializers`
2026-02-21 10:45:14 -06:00
Yat Ho
f89242c855 fix: enable modernize-loop-convert (#8579) 2026-02-21 09:06:59 -06:00
Yat Ho
1297bac26b fix: Use pre-clang-format-21 syntax (#8584) 2026-02-21 09:05:28 -06:00
Yat Ho
d06a4bc5af build: update .clang-format to latest format (#8578) 2026-02-20 07:57:48 -06:00
Yat Ho
a420577587 ci: use gtkmm4 for FreeBSD (#8580) 2026-02-20 07:57:28 -06:00
Yat Ho
ece1d7b6c2 fix: fail when encountering invalid benc character. (#8573)
* fix: fail when encountering invalid benc character

* fix(test): wrong `pieces` length in test string

* test: more benc test cases
2026-02-19 13:53:01 -06:00
Yat Ho
d18f48dae9 fix: respect umask when creating directories (#8574) 2026-02-19 11:14:24 -06:00
Yat Ho
f495047a33 ci(qt): run clang-tidy on Linux (#8557)
* ci(qt): run clang-tidy

* chore(qt): silence warnings
2026-02-19 09:30:05 -06:00
Charles Kerr
c5ec41e05e test: use QT_QPA_PLATFORM=offscreen for qt tests on posix (#8575)
Fix the qt tests on Jenkins
2026-02-19 09:24:58 -06:00
Yat Ho
642c12cbb5 ci: speed up by using native arm64 runners (#8571)
* ci: run x86_64 only for BSD

* ci: native arm64 runner
2026-02-19 00:20:43 -06:00
Charles Kerr
5856619fbc fix: FTBFS with glibmm 2.68 (#8565) 2026-02-18 18:46:54 -06:00
Yat Ho
851881b59f chore: update web dependencies (#8534)
* chore: bump esbuild@0.27

* chore: bump eslint-plugin-unicorn@63

* chore: bump globals@17

* chore: bump stylelint@17

* chore: pin eslint-plugin-sonarjs@3.0.5

https://github.com/SonarSource/SonarJS/pull/6148 added a dependency that's not declared in the package.json. And of course it's AI slop.

* chore: re-generate package-lock.json

* fix: lint errors

* ci: temporarily enable arm64 NetBSD runner

* Revert "ci: temporarily enable arm64 NetBSD runner"

This reverts commit 39c9be3978.
2026-02-18 15:20:47 -06:00
Charles Kerr
1b1ccc08dc ci: run fewer redundant jobs (#8543)
* 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
2026-02-18 14:40:46 -06:00
Yat Ho
6ad5a4ae31 test: info hash for unordered info dict (#8558) 2026-02-18 12:02:24 -06:00
Charles Kerr
b9e9feafeb fix: crash when removing a torrent that the inspector is showing (#8496) (#8553) 2026-02-17 22:23:12 -06:00