Commit Graph

16423 Commits

Author SHA1 Message Date
Yat Ho
25d2ebf8fc refactor: overhaul tr_address special address checks (#7818)
* refactor: rewrite is_martian_addr() with tr_address methods

- Fix broken check for IPv4 multicast address in is_martian_address()

* refactor: rewrite is_global_unicast_address()

- Rewrite using new tr_address methods
- Add missing IPv4 loopback check
- Follow RFC 4291 IPv6 global unicast definition
- Fix and update existing tests

* chore: reorganise methods and add comments

* fix: check for teredo and 6to4

* test: tests for new methods
2025-11-21 18:09:38 -06:00
Dzmitry Neviadomski
40e1bd660d Fix unreachable in tr_make_listen_socket_ipv6only (#7825) 2025-11-19 23:55:09 -06:00
Dzmitry Neviadomski
54f0417f42 Simplify "bars" logic in Main Window (#7840)
* Adopt NSTitlebarAccessoryViewController for filter and status bars

Also remove custom views as separator is drawn with Horizontal Line.
Simplifies maintainance a bit.

* Unembed main content and status bar from NSStackView

Stack is no longer needed, as bars are moved into titlebar.
2025-11-19 21:30:55 -05:00
Mitch Livingston
147da72453 Revised Tahoe icon, including updated favicons, webclip icon, and document icon (#7836) 2025-11-19 20:54:18 -05:00
Dzmitry Neviadomski
495e5bde99 Fix missing tooltips for Group rows in Torrent Table View (#7828) 2025-11-18 07:16:08 -05:00
Dzmitry Neviadomski
821e70d742 Add missing protocols to fix deprecation warnings (#7826) 2025-11-18 07:13:59 -05:00
Dzmitry Neviadomski
84cc06c651 Apply Xcode 26.0 recommendations (#7823)
Also sets compatibilityVersion to Xcode 12.0.
Now 'natively' supports BuildIndependentTargetsInParallel option.
No more pain with this line being removed every time Xcode project
touched.
2025-11-17 21:07:55 -05:00
Dzmitry Neviadomski
4d8a1e5e78 Adapt to Liquid Glass window corner metrics (#7829) 2025-11-17 19:50:18 -05:00
Dzmitry Neviadomski
aa22aea392 Fix layout constraints in Add Torrent Window (#7830) 2025-11-17 19:49:27 -05:00
Charles Kerr
6a7ad3ff09 chore: remove action_ReverseSortOrder icon (#7815) 2025-11-14 16:14:38 -06:00
Charles Kerr
fe5a3fb67c chore: remove edit-clear icon (#7814)
unused since 03034b5015
2025-11-14 13:50:45 -06:00
Charles Kerr
73e6892a74 refactor: let client pass in translated string of None when calling tr_strratio() (#7805) 2025-11-14 10:04:04 -06:00
Yat Ho
cfd5647c58 feat(remote): print seq download from piece in tor details (#7808) 2025-11-14 10:02:13 -06:00
github-actions[bot]
2322a39c90 chore: update generated transmission-web files (#7812)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-14 09:56:43 -06:00
Yat Ho
cf93d52f03 feat(remote): optionally specify piece to start sequentially download (#7809) 2025-11-14 09:39:47 -06:00
Rukario
2fa0b9ef6b feat: update & move turtle to own button on status bar of web app (#6940) 2025-11-13 20:24:29 -06:00
Charles Kerr
3e538f670c docs: update signpath link (#7804)
Co-authored-by: Andreas Willich <SabotageAndi@users.noreply.github.com>
2025-11-13 20:22:28 -06:00
Charles Kerr
a76e13f143 chore: update mime-type suffixes (#7810) 2025-11-13 16:04:23 -06:00
Cœur
3ecaaee668 Update icon that is not available on older OS (#7792)
* Update icon that is not available on older OS

* Adopting chart.bar
2025-11-13 09:22:04 -06:00
github-actions[bot]
bdbce644cf chore: update generated transmission-web files (#7806)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-11-12 18:33:53 -06:00
Rukario
26aba40529 feat: rename or copy name of individual file in web app (#7389) 2025-11-12 18:17:40 -06:00
Yat Ho
8dc5d925fe feat: convert preferred-transport to preferred_transports (#7473)
* feat: store `preferred_transports` as array in `settings.json`

* refactor: `Settings::save()` returns `tr_variant::Map`

* feat: new RPC API for `preferred_transports`

* feat: new arg `--preferred-transports` for remote
2025-11-12 17:17:29 -06:00
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