Commit Graph

16401 Commits

Author SHA1 Message Date
niol
db290f954b fix libfmt version probe with libfmt < 11 (#7772) 2025-11-12 16:31:40 -06:00
Charles Kerr
ceb12b8c61 refactor: avoid evbuffer use in tr_web, tr_webseed (#7743)
* refactor: add Task::add_data()

* refactor: move response body preallocation to Task ctor

* refactor: make Task::body() private

* refactor: add FetchOptions::on_data_received callback

* refactor: remove FetchOptions::buffer

* refactor: remove evbuffer from web.cc

* refactor: remove evbuffer from webseed.cc

* refactor: remove unused evbuffer_unique_ptr

* fix: copypaste error

Xref: https://github.com/transmission/transmission/pull/7743\#discussion_r2516592222
2025-11-12 16:27:39 -06:00
Yat Ho
4318a6f1ac fix: caching a source address doesn't imply public internet connectivity (#7520) 2025-11-12 14:46:26 -06:00
Yat Ho
8d25484cdb refactor: use new tr_variant API in daemon (#7103) 2025-11-12 13:04:55 -06:00
Yat Ho
48ec09771c feat: add downloader_count to trackerStats (#6936) 2025-11-12 10:23:37 -06:00
Geoffrey Bonneville
0f7f460c55 feat: allow downloading sequentially from a specific piece (#7502)
* feat: allow downloading sequentially from a specific piece

* Apply review changes

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

* Use sequential_download_from_piece param in torrent-add, and save it to resume file

* fix: change observable type bool -> tr_piece_index_t

* fix: run code_style.sh

* fix: improved test and missing comment

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

* fix: apply similar changes to sequentialDownloadFromPiece test

* docs: change parameter type boolean -> number

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-11 09:32:57 -06:00
Charles Kerr
af92dc5d80 perf: use http range request info to preallocate response body buffer (#7800) 2025-11-11 09:32:00 -06:00
Charles Kerr
a5d09b29ff chore: move tr_rpc_parse_list_str() from libtransmission to remote.cc (#7797)
libtransmission hasn't used this since 822fabb2 (#3549)
2025-11-11 09:31:19 -06:00
Yat Ho
df221daab5 refactor: torrent complete verify cleanup (#7802)
* refactor: rename torrent-complete-verify-enabled to snake_case

* docs: add docs for torrent_complete_verify_enabled

* code review: correct docs data type
2025-11-11 09:29:09 -06:00
Charles Kerr
995dfe567e refactor: remove unused quarks from libtransmission (#7799)
* chore: remove unused TR_KEY_comment_utf_8

chore: remove unused TR_KEY_created_by_utf_8

chore: remove unused TR_KEY_name_utf_8

chore: remove unused TR_KEY_path_utf_8

These keys have been unused since fe288b45 (#2542)

* chore: remove unused TR_KEY_ut_comment

chore: remove unused TR_KEY_ut_recommend

Never used. We can add these back when we support them

* remove unused TR_KEY_queue_move_bottom

remove unused TR_KEY_queue_move_down

remove unused TR_KEY_queue_move_top

remove unused TR_KEY_queue_move_up

Added in c1559f3c, but never used.

* chore: remove unused TR_KEY_play_download_complete_sound

Never used and is a duplicate of TR_KEY_torrent_complete_sound_enabled.
Maybe it was a draft name that accidentally snuck into production?

* chore: remove unused TR_KEY_downloaders

chore: remove unused TR_KEY_min_announce_interval

Unused since 7f60738c (#2529)

* chore: remove unused TR_KEY_recent_download_dir_1

chore: remove unused TR_KEY_recent_download_dir_2

chore: remove unused TR_KEY_recent_download_dir_3

chore: remove unused TR_KEY_recent_download_dir_4

chore: remove unused TR_KEY_recent_relocate_dir_1

chore: remove unused TR_KEY_recent_relocate_dir_2

chore: remove unused TR_KEY_recent_relocate_dir_3

chore: remove unused TR_KEY_recent_relocate_dir_4

Looks like these were intended for the GTK client's recent dirs
feature (see gtr_save_recent_dir() and gtr_get_recent_dirs()),
but that code does it better without quarks.
2025-11-10 23:58:30 -06:00
Cœur
78238ec3de fix corruption: torrentVerify on completion (#4178)
* torrentVerify on completion

* Make torrent verify on completion configurable via settings

* code review: replacing tr_verify_complete_mode with bool

* code review: sorting torrent_complete_verify_enabled with bool

* Update Application.cc

* code review: avoiding `session->onTorrentCompletenessChanged` before verification completion
2025-11-10 14:16:15 -06:00
Elek, David
d0e6b5519d fix speed rate conversion, when requesting peer info (#7796) 2025-11-10 14:08:39 -06:00
Charles Kerr
4e1c0228af Revert "Compatibility with libevent 2.2" (#7795)
* Revert "Compatibility with libevent 2.2 (#7765)"

This reverts commit b372f7b193.

* Compatibility with libevent 2.2

---------

Co-authored-by: Cœur <coeur@gmx.fr>
2025-11-10 14:08:19 -06:00
Cœur
b372f7b193 Compatibility with libevent 2.2 (#7765)
* Compatibility with libevent 2.2

* Fix Android builds

* Fix Win32 builds
2025-11-10 10:33:20 -06:00
cdowen
a2d2097b9f feat: add peer traffic statistics to rpc call (#7172)
* Add peer traffic data in torrent-get rpc interface

* style issue

* update peer rpc spec

* Add bytes_sent_to_peer and bytes_sent_to_client in peer_info and peer-mgr

* make counting variables non-persistent and limited to last several seconds

* change variable to snake-case

* use size_t instead of uint16_t for bytes

* fix use camel_case

* move to did_write
2025-11-10 09:41:03 -06:00
Cœur
aba9a7d6fd Bump fmt to 12.1 (#7793) 2025-11-10 09:06:19 -06:00
Mitch Livingston
34255b473a Update or remove icons that are not available on older OSs (#7790)
* Update document badges to use legacy names

This is needed to support older OSs

* Update or remove icons that are not available on older OSs
2025-11-09 20:29:18 -05:00
Cœur
5306dd3626 Fix running macos app on a VM when building with cmake (#7763) 2025-11-09 18:13:36 -06:00
herbyuan
1ff390f1eb Support dual stack by manually creating and binding socket on Windows platform (#6548)
* dual stack on windows

* fix memory leak

* some changes suggested by @tearfur

* close winsocket at stop_server and code style issues

* remove WSA relevant codes since no need

* fix clang-tidy warnings

* fix clang-tidy warnings v2

---------

Co-authored-by: Mike Gelfand <mikedld@users.noreply.github.com>
Co-authored-by: zyhe <zhuoyuan@pku.edu.cn>
2025-11-09 18:11:10 -06:00
Mitch Livingston
b99232777e macOS 26: set icons on most menu items (#7787)
* macOS 26: set icons on most menu items

This is a first pass, and likely needs some adjustments and updated.

This also removes Select None, which does not seem to be in favor in Mac apps anymore.

* Explicitly set the image on toolbar items' menu representation

* Icons for Info > Files context menu
2025-11-09 17:28:28 -05:00
Cœur
cd45c648a1 Updating actions to macos-26 (#7764) 2025-11-09 17:04:08 -05:00
Cœur
9e5b72df0f bump miniupnpc to 2.3.3 (#7783) 2025-11-09 14:51:44 -06:00
Dzmitry Neviadomski
d1985b05c6 macos: View-based FileOutlineView (#7760)
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-11-09 12:21:42 -05:00
Mitch Livingston
909fdad807 Update the macOS document icon to match the new app icon (#7782) 2025-11-09 12:19:21 -05:00
github-actions[bot]
b449248fc8 chore: update generated transmission-web files (#7781)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-08 18:29:45 -06:00
Rukario
65d8dc69f1 feat: label mainwin buttons (#6985)
* feat: label mainwin buttons

* fix: trash icon semi-transparent lines overlap
2025-11-08 18:25:30 -06:00
Yat Ho
ace36c922d refactor: replace all evutil_make_listen_socket_ipv6only usages (#7779) 2025-11-08 16:36:54 -06:00
cdowen
d0996479de feat: add bytesCompleted field to torrent-get rpc (#7173)
* add bytesCompleted field to torrent_get rpc

* update bytesCompleted rpc doc
2025-11-08 10:05:21 -06:00
Azamat H. Hackimov
5180e3b69c Generate imported targets for MbedTLS (#7631)
* Generate imported targets for MbedTLS

This change allows to use MbedTLS 3.6 config module without significant
code alteration which simplifies integration with future versions of
MbedTLS.

Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>

* Update MBEDTLS_MINIMUM to 2.7

Code expects API from MbedTLS 2.x or later.

Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>

---------

Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
2025-11-08 08:01:43 -06:00
github-actions[bot]
46cbe2b08f chore: update generated transmission-web files (#7777)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-08 07:52:46 -06:00
cdowen
5db90f9ed9 feat:add raw PeerID to RPC interface (#7514)
* add raw PeerID to rpc interface

* use snake_case

* add peer_id to doc

* pass peer_id only and use peer_id_t and base64 encoding when passing peer_id to stat

* clang format

* fix dangling pointer

* remove std::optional

* clean up tr_peerMsgs constructor

* move b64encode to rpc

* just use constructor

* Update libtransmission/peer-msgs.cc

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

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-11-08 07:47:40 -06:00
Rukario
b0b8902198 feat: inline delete prompt in remove dialog (#7000)
Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-08 07:21:14 -06:00
Yat Ho
b3424ed260 feat: match IPv4-mapped addresses with IPv4 whitelist (#7523)
* feat: match IPv4-mapped addresses with IPv4 whitelist

* test: for converting IPv4-mapped to native IPv4

* perf: avoid copying in `tr_wildmat()`
2025-11-07 20:26:45 -06:00
Cœur
312078806d warning: The CFBundleVersion of an app extension ('1') must match that of its containing parent app ('14718.1.2'). (#7762) 2025-11-07 20:19:04 -06:00
Charles Kerr
f20fd5e373 chore: bump transmission 4.1.0 beta.3 (#7769)
* chore: bump to Transmission 4.1.0-beta.3

* docs: add release notes for 4.1.0-beta.3

* docs: update release notes
4.1.0-beta.3
2025-11-05 17:54:17 -06:00
Mitch Livingston
d15c8626d8 Updated app icon for Liquid Glass (#7736) 2025-11-05 17:46:43 -06:00
Mike Gelfand
b27fafca45 Sync translations (#7768)
* Sync translations with code

* Sync translations with Transifex
2025-11-05 22:05:13 +00:00
github-actions[bot]
418434a5f3 chore: update generated transmission-web files (#7726)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-05 14:51:54 -06:00
Charles Kerr
152e468e3a fix: filter-by-tracker failed after the tracker list changed (#7761) 2025-11-05 14:25:45 -06:00
Rukario
c35af04606 feat: revamped search bar for web client (#6948) 2025-11-05 14:21:50 -06:00
Rukario
90268076b8 refactor: clean up Flexbox style rules in CSS (#7358) 2025-11-03 12:26:37 -06:00
Rukario
7be9808ccd Privacy and error filter for web client (#6977)
Squashed all commits + co-authoring previous works

Co-authored-by: Derek Reiff <d@derekr.net>
Co-authored-by: Will Da Silva <will@willdasilva.xyz>
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
2025-11-03 12:24:07 -06:00
Dzmitry Neviadomski
85a325ed71 feat: Introduce PowerManager on macOS (#7543)
- Use modern APIs to prevent idle system sleep.
- Consolidate all related logic.
- Make Controller class a little bit less huge.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-11-02 14:41:22 -06:00
Dzmitry Neviadomski
90b52bc65c Improve building crc32c target with Xcode (#7754)
* Fix input path and add output path for Copy Header step in crc32c

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Enable build step sandboxing for crc32c target.

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

* Dummy commit for Xcode as it keeps reordering targets

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-11-02 12:29:22 -06:00
Rukario
afdbfdbcda feat: viewport neutral layout and style for small viewports in web app (#7328)
* Update transmission-app.scss

* Update transmission-app.scss
2025-11-02 11:58:15 -06:00
Yat Ho
2a3a8ea364 perf: even faster wishlist (#7744)
* chore: add comments to annotate observer dependencies

* refactor: overhaul wishlist

Avoid expensive `count_active_requests` and `has_active_request_to_peer`.
- Remove "endgame"
- Never rebuild candidate list mid-download

* chore: code cleanup

* test: fix

* perf: sort block list in reverse order

* refactor: reduce request timeout from 90 to 15 seconds
2025-11-02 11:55:38 -06:00
Rukario
50e0ffb910 feat: tweak font size for web app (#7329) 2025-11-02 11:52:54 -06:00
Rukario
78c50747cc refactor: offload icons from HTMLdoc to JavaScript for icon deployment (#7277)
* Update index.html

* Update utils.js

* Update torrent-row.js

* Update transmission-app.scss

* Update transmission.js

* Freezing object with `Object.freeze`

Co-Authored-By: Yat Ho <lagoho7@gmail.com>

* Update torrent-row.js

* Update utils.js

* Prefers destructuring assignment over bracket notation accessor

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

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-11-02 11:52:22 -06:00
Mike Gelfand
7b4c0ee096 Use native folder icon in torrent files tree (#7757)
Not all Qt styles seem to provide a `DirOpenIcon` icon (Windows 11 style
doesn't, which leads to no icon in the tree), and `DirIcon` is usually
the same (or worse) as the one returned by our icon cache. It's also not
clear why we'd want an _open_ folder icon specifically, given that the
condition in the `else` branch is essentially checking the same thing.
2025-11-02 00:38:01 +00:00
Mike Gelfand
602993cb67 Draw custom colored progress bars (Qt client) (#7756) 2025-11-01 23:48:18 +00:00