Commit Graph

16605 Commits

Author SHA1 Message Date
Charles Kerr
ca59a55169 perf: permanently cache Torrent.hashString 2026-02-14 17:00:20 -06:00
Charles Kerr
a37ca2a090 fix: crash in torrent rename dialog after torrent removal (#8425) 2026-02-14 14:44:31 -06:00
Charles Kerr
45308e8d7d fix: crash when editing tracker list immediately after editing torrent (#8469) (#8478) 2026-02-13 13:04:51 -06:00
Charles Kerr
6a32512729 fix: mime-type icons on Windows (#8443) (#8456)
* fix: mime-type icons on Windows

* fixup! fix: mime-type icons on Windows

use file_icon_ as the fallback icon

do not  mark the temp string as translatable

---------

Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
2026-02-12 10:38:33 -06:00
Yat Ho
47906e3fca chore: bump rpc versions and add missing changelog (#8453) 2026-02-12 01:03:11 -06:00
Yat Ho
6d85eba3d5 perf: use timer to flush outbuf to avoid taking lock frequently (#8454)
* perf: use timer to flush outbuf to avoid taking lock frequently

* code review: extract to `flush_outbuf_soon()`

* code review: make `flush_outbuf_trigger_` const

(cherry picked from commit 4d695a8a4c)
2026-02-12 01:02:54 -06:00
Charles Kerr
c2b3f25993 fix: adding file:/// uris from the command linee (#8424) (#8448) 2026-02-11 11:19:28 -06:00
Yat Ho
90c8b8b3ec fix(qt): handle RPC error data object (#8414)
(cherry picked from commit bea234b8ed)
2026-02-10 10:17:09 -06:00
Yat Ho
586d98dedf fix(rpc): return integers for speed limits (#8416)
(cherry picked from commit a583f8e789)
2026-02-10 10:16:50 -06:00
Charles Kerr
abb9b05ff2 fix: cannot add magnet links from the command line (#8415) 2026-02-10 09:05:32 -06:00
Yat Ho
3d8363a8d4 fix: fail if pieces length in info dict is not multiple of 20 (#8412)
* fix: fail if `pieces` length in info dict is not multiple of 20

* fix(tests): replace potentially malicious test torrent for pieces length

(cherry picked from commit 182c8ce12c)
2026-02-09 21:38:21 -06:00
Charles Kerr
582668cf08 fix use different icon filenames per-client (#8281) (#8387)
this prevents multiple packages from conflicting over a shared icon filename
2026-02-09 21:03:02 -06:00
Charles Kerr
fc266802ea fix: use video/mp4 as the mime type for mp4 files (#8377) (#8411)
* refactor: move primary_mime_type() to tr_torrent_files where it is easier to test

* fix: use video/mp4 mime type for .mp4 files

* docs: remove obsolete code comment
2026-02-09 21:00:38 -06:00
Yat Ho
ddbffb5708 fix(web): exception from destructing undefined property (#8386)
(cherry picked from commit a628033637)
2026-02-05 22:30:32 -06:00
Charles Kerr
a14d664767 fix: some strings were not correctly marked for translation (#8350) 2026-02-05 16:13:18 -06:00
Charles Kerr
734d0bc8b7 fix: assertion failed no timezone in fmt::chrono (#8344) (#8358)
* fix: in tr_logGetTimeStr() do not use tz info on platforms that do not have it

* fix: simplify the supports-timezone check



---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2026-02-04 10:24:15 -06:00
Yat Ho
c53016e523 Revert "feat: inline delete prompt in remove dialog (#7000)" (#8355)
This reverts commit b0b8902198.

(cherry picked from commit a1228ab1dd)
2026-02-04 09:20:52 -06:00
Charles Kerr
fc3ae68a4c fix: encryption mode not saved between sessions in GTK client (#8345) 2026-02-03 19:22:50 -06:00
Charles Kerr
933216e93f fix: race condition when removing torrents in GTK client (#8340)
* fix: race condition crash when removing torrents in GTK client

* refactor: remove unused on_remove_done arg from tr_torrentRemove()
2026-02-03 18:10:44 -06:00
Charles Kerr
1dd096e77f perf: faster arrow key navigation in torrent list (#8315) (#8323)
* perf: when selection changes, only update the rows whose selection changed

previously we were updating all rows

* perf: coalesce pending reloads in TorrentTableView

* refactor: return a copy rather thabn a mutable index

* refactor: move the assignment out of the if statement

* make symmetricDifference an NSIndexSet method
2026-02-02 07:08:01 -06:00
Yat Ho
5f8755bd68 fix: periodically save queue position like other data files (#8306) 2026-01-31 11:49:53 -06:00
Yat Ho
903babf595 fix: update changed dates after setting torrent queue position (#8298) 2026-01-31 07:42:02 -06:00
Charles Kerr
b50bf418ad fix: do not use underscore in gio action names (#8293)
fix: do not use underscore in gio action names
2026-01-30 11:51:11 -06:00
Charles Kerr
d7cf7dffe4 fix: cannot add magnet links in GTK client (#8277) 2026-01-29 16:13:09 -06:00
Charles Kerr
fa3d3c7727 fix: crash on fail to remove torrent files on macOS (#8275) 2026-01-29 15:29:34 -06:00
Charles Kerr
cf849bb512 fix: crash on fail to update blocklist on GTK when assertions are enabled (#8273)
regressed in f8970a9 in 4.1.0-beta.5
2026-01-29 11:45:24 -06:00
Yat Ho
b13fddbaaa fix: some errors are not returned in tr_sys_path_get_capacity() (#8258)
* fix: some errors are not returned in `tr_sys_path_get_capacity()`

* test: disable well-formed free_space tests

There are no reliable way to test them.

(cherry picked from commit 63d6d670fd)
2026-01-28 23:18:13 -06:00
Yat Ho
d622f5c1e9 refactor: shuffle peers before pumping (#8259) 2026-01-28 23:17:55 -06:00
Yat Ho
271d41592d refactor: mock udp announcer DNS resolver for tests (#8243)
* refactor: move udp tracker dns lookup to mediator

* test: mock udp announcer DNS resolver

(cherry picked from commit cbc4e9dc3a)
2026-01-28 15:34:03 -06:00
Yat Ho
85933ad246 docs: fix leftover camelCase string references (#8245)
(cherry picked from commit 6544bb1675)
2026-01-28 12:25:18 -06:00
Charles Kerr
272401184f chore: bump to 4.1.0 (#8231)
* docs: add release notes for 4.1.0

* chore: bump to 4.1.0
4.1.0
2026-01-26 17:58:07 -06:00
Mike Gelfand
f6710cea94 Sync translations (#8230)
* Sync translations with code

* Sync translations with Transifex
2026-01-26 22:20:14 +00:00
Charles Kerr
5fc9b55ad0 refactor: remove some dead code (#8222) (#8226)
* chore: remove unused tr_announcerCreate() declaration

added in d27c4c5 but never used

* chore: remove unused ParserStack::parentType()

added in 5efec26 but never used

* chore: remove tr_port::set_network()

added in 32f854a but never used

* chore: remove tr_torrent_metainfo::pieces_offset()

added in 52f6e80 but never used

* chore: remove unused `tr_session::setPeerCongestionAlgorithm()`

unused after 611d36a

chore: remove unused `tr_session::setAnnounceIP()`

unused after 611d36a
2026-01-26 10:00:42 -06:00
Yat Ho
1d79f7eea8 fix: don't generate zero size files in makemeta-test.cc (#8212)
* fix: don't generate zero size files in makemeta-test.cc

* chore: housekeeping

(cherry picked from commit 56f3578ec9)
2026-01-25 20:28:07 -06:00
Yat Ho
39b5245a56 fix: incorrectly set error when moving across filesystems (#8175)
(cherry picked from commit a3202cbe47)
2026-01-21 09:08:40 -06:00
Mitch Livingston
fc67536cc0 #8070: Fix Hide Status Bar/Filter Bar never changing to "Show" (#8170) 2026-01-20 19:59:13 -05:00
Yat Ho
93d95980c3 fix(remote): crash when number argument is invalid (#8162)
* fix: crash when `--global-seedratio` argument is invalid

* fix: crash when `--global-idle-seeding-limit` argument is invalid

* fix: crash when `--peers` argument is invalid

* fix: crash when `--tracker-remove` argument is invalid

* fix: crash when `--seedratio` argument is invalid

* fix: crash when `--idle-seeding-limit` argument is invalid

(cherry picked from commit f6d4585b38)
2026-01-20 14:37:48 -06:00
Yat Ho
d083b3f94b fix: crash on invalid command-line value for --cache / -e arg (#8163)
* fix: crash on invalid command-line value for --cache arg

* Update utils/remote.cc

Co-authored-by: Yat Ho <lagoho7@gmail.com>

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>

(cherry picked from commit f200bedd57)

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-01-19 15:29:36 -06:00
Yat Ho
a5733a408c fix: use weak pointers for ip cache curl callback (#8161)
(cherry picked from commit 4e03de7630)
2026-01-19 15:29:25 -06:00
Charles Kerr
81376593db fix: crash on invalid command-line value for --cache arg (#8148) 2026-01-16 02:45:38 -06:00
Charles Kerr
a2f94fc2a8 fix: potential use-after-free of NSString in tr_strv_convert_utf8() (#8131) (#8146)
* fix: potential use-after-free bug when parsing torrent metainfo on macOS

* build: add -Warc-unsafe-retained-assign warning to detect any future ARC issues
2026-01-15 19:16:12 -06:00
Charles Kerr
2f2336f58e fix: remove unused tr_strbuf::join() (#8145) 2026-01-15 16:25:33 -06:00
Charles Kerr
74a0d41b75 fix: typo in User-Agent from requests posted by trqt (#8136) 2026-01-14 13:10:37 -06:00
Charles Kerr
02dca12d06 fixup! refactor: use a map of getters, setters for session_get and session_set properties (#8024) (#8126)
fix: capture-by-reference error in session_accessors()
2026-01-13 10:01:28 -06:00
Yat Ho
6b5ee57bff fix: url port parsing (#8115)
* fix: url port parsing

- `tr_urlParse()` should fail if cannot parse port
- Avoid parsing scheme ports to numbers
- Port should not be parsed to a negative number
- Port should not be parsed to `0`
- Directly parse number string to `uint16_t`

* test: invalid port

(cherry picked from commit cf0a596a45)
2026-01-11 19:57:12 -06:00
Yat Ho
9491a4e71d fix: rebind udp sockets on bind-address change (#8106) 2026-01-10 08:25:09 -06:00
Charles Kerr
114b36e910 fix: 4.1.0-beta.5 regression using trqt as a remote (#8105) 2026-01-09 23:12:16 -06:00
Yat Ho
817a47d281 fix: remove artificial max metadata size limit (#8086) 2026-01-08 11:10:20 -06:00
Charles Kerr
4faab4cf9c fix: use URL base path (#8078)
* fix: use URL base path

Xref: feat: Remote session RPC url path change option qt client (#7561)

* ci: enable codeql in 4.1.x branch
2026-01-07 18:03:24 -06:00
Charles Kerr
11d3fc6f5a fix: qt sessionSet() encryption (#8067) 4.1.0-beta.5 2026-01-05 19:05:46 -06:00