Commit Graph

16383 Commits

Author SHA1 Message Date
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
Yat Ho
f4bd21d97f fix: acquire lock in tr_peerMgrPeerStats (#7638) 2025-11-01 19:02:16 +00:00
Mike Gelfand
2b4803a023 Bump Windows dependencies (#7755) 2025-11-01 18:59:13 +00:00
Dzmitry Neviadomski
9b496350a9 feat: Data-based QuickLook extension for macOS 12+ (#7213)
* feat: Prepate Xcode project skeleton for QuickLookExtension

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

* feat: Add initial implementation of QuickLookExtension

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

* feat: Add working Data-based QuickLook Preview

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

* feat: Add new style.css

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

* feat: Copy Localization.strings as is from legacy QuickLook plugin

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

* fixup: Fix compilation missing NSStringAdditions

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

* fixup: Apply clang-format, update style.css, fix file name reference

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

* feat: Adopt CMake build from legacy QuickLook Plugin

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

* fixup: Remove counter for debug

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

* fixup: Make header row for file span across all table

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

* feat: Improve style.css

- Use CSS Vars
- Add missing paddings
- Add sticky headers for tables

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

* Use UTType for Image generation more directly.

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

* Fixup for Xcode project checks in PR

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

* Fix Copyright and remove Xcode generated comments

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

* Remove unneeded fields from targets Info.plist template.

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

* Move tx localization to new QuickLook Extension

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

* Apply code review suggestions

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

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-10-31 11:30:55 -05:00
Rukario
1d0db31ae7 feat: submenu to group away context menu items (#7263)
* Update context-menu.js

* Update transmission-app.scss

* Update transmission-app.scss

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update transmission-app.scss

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update action-manager.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js

* Update context-menu.js
2025-10-30 18:19:48 -05:00
Yat Ho
bfb5e35021 chore: add suffix to private and protected members (#7746) 2025-10-30 10:13:27 -05:00
Yat Ho
555d4681c5 perf: reduce memory profile in announce failed handling (#7748) 2025-10-30 10:11:56 -05:00
Yat Ho
648c65868c feat: use Type=notify-reload in daemon service (#7570)
* feat: use `Type=notify-reload` in daemon service

* build: keep systemd names consistent

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-29 09:04:04 -05:00
Yat Ho
02a8bafb28 refactor: more generic http announce failure handling (#7745) 2025-10-28 16:20:43 -05:00
Charles Kerr
db67c258a9 refactor: don't use evbuffer in transmission-remote (#7739)
* refactor: remove evbuffer use in transmission-remote

Keep reducing our libevent API use, especially outside of libtransmission

* chore: reduce some unnecessary diffs to main
2025-10-27 18:30:25 -05:00
Yat Ho
41dd2cfd53 fix: accept either one of udp announce response (#7583)
* fix: accept either one of udp announce response

* fix: udp announcer tests should read packets in-order

* test: housekeeping

* test: new tests for the new logic
2025-10-27 12:08:59 -05:00
Charles Kerr
f26eca5fd5 refactor: avoid evutil_ascii_strcasecmp() in get_quota_space() (#7740) 2025-10-27 11:47:56 -05:00
Yat Ho
48cde98788 refactor: use new tr_variant API for stats.json (#7098)
* refactor: load stats with new tr_variant API

* refactor: save stats with new tr_variant API
2025-10-27 11:25:18 -05:00
Yat Ho
4f26b62908 fix: respect min interval and interval if they exist (#7493)
* fix: parse `min interval` and `interval` if they exist

* fix: account for `interval` and `min interval` during tracker failure

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-27 10:44:29 -05:00
Yat Ho
4bd9aa9b06 refactor: prioritise peers slots for downloading torrents (#7306)
* chore: housekeeping

* refactor: allow downloading torrents to steal connection slots

To be exact, the way it works is that downloading torrents will be allowed to start outgoing connections despite the session peer limit is reached. The periodic peer limit enforcements should keep the downloading connections and remove the idle connections in seeding torrents.

* refactor: prefer peers from downloading torrents when enforcing peer limit
2025-10-27 10:43:14 -05:00
Yat Ho
5c7135c319 build: define GDK_VERSION_MIN_REQUIRED (#7633)
This suppresses deprecation warnings in newer GDK versions that weren't in the version that comes with our minimum GTKMM version.
2025-10-27 09:45:03 -05:00
Cœur
e23ff0c7ae [peer-mgr] Prevent out-of-bounds in update_canonical_priority (#7738)
* [peer-mgr] Prevent out-of-bounds in update_canonical_priority

* code review: prefer `is_valid()`
2025-10-27 09:33:30 -05:00
Mike Gelfand
f8d8676f60 Sync translations (#7742)
* Fix "Message contains an embedded URL" xgettext warnings

See https://www.gnu.org/software/gettext/manual/html_node/No-embedded-URLs.html

* Sync translations with code

* Sync translations with Transifex
2025-10-27 14:39:58 +01:00
Charles Kerr
454b810698 fix: performance-for-range-copy warning in tr-peer-info-test.cc (#7741)
this warning broke the clang-tidy-libtransmission-win32 CI
2025-10-26 21:07:52 -05:00