1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2025-03-12 23:23:54 +00:00
Commit graph

16274 commits

Author SHA1 Message Date
Charles Kerr
ac5c9e082d
chore: bump transmission 4.1.0 beta.2 (#7484)
* chore: bump to Transmission 4.1.0-beta.2

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

* docs: update release notes

* docs: update release notes
2025-03-10 18:05:53 -05:00
Alexander Terentyev
2c5b7f94d1
feat: proxy support for web-connections (#5038)
* feature: proxy support for web-connections

* forgotten changes

* fix code-styles

* –Documentation for new setting "proxy-url"

* Create property proxyUrl for class tr_web. Lazy creation of tr_web object in tr_session after loaded settings from file

* Update docs/Editing-Configuration-Files.md

Simplify the documentation text

Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>

* Fix merge error

* Fix merge error.

* Simplify tr_web's lifecycle. Fix error. Rename quark to sneak_case-style

* Fix parameter value test

---------

Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-03-10 17:32:18 -05:00
Yat Ho
7b83c7d625
refactor: rename unreleased quarks to snake_case (#7483)
* refactor: rename `sequentialDownload` to `sequential_download`

* refactor: rename `beginPiece` to `begin_piece`

* refactor: rename `endPiece` to `end_piece`

* refactor: rename `ipProtocol` to `ip_protocol`

* refactor: rename `preferred-transport` to `preferred_transport`
2025-03-10 17:30:19 -05:00
Yat Ho
200af70762
refactor: use new tr_variant API for resume (#7069)
* refactor: use new `tr_variant` API to save resume file

* refactor: use new `tr_variant` API to load resume file

* chore: rename functions to `snake_case`

* chore: update comments

* perf: short circuit loading `3.00` progress

* refactor: changed `MaxRememberedPeers` to unsigned type
2025-03-10 16:19:16 -05:00
Yat Ho
86e904d1a2
feat: sequential download cmdline options in remote and daemon (#7048)
* feat: add seq option in remote

* feat: print session sequential download setting in remote

* refactor: assert options torrent size in daemon

* feat: add seq option in daemon
2025-03-10 16:16:25 -05:00
Charles Kerr
40d73978f7
chore: update generated web files 2025-03-10 16:03:30 -05:00
Charles Kerr
76d854dcc8
fix: clang-tidy-20 warnings (#7479)
* chore: disable unavoidable warning

* fix: clang-tidy readability-math-missing-parentheses warnings

* fix: clang-tidy google-readability-todo warnings

* fix: clang-tidy misc-use-internal-linkage warnings

* fix: clang-tidy readability-redundant-string-cstr warnings

* chore: disable cppcoreguidelines-avoid-const-or-ref-data-members warnings in tests

* chore: disable cppcoreguidelines-avoid-const-or-ref-data-members warnings in qt/

* fix: clang-tidy readability-identifier-naming warnings
2025-03-10 15:01:31 -05:00
Dzmitry Neviadomski
7e87adcd91
Fix building transmission with C++23 (#6832)
* fix: operator== should return bool in tr_strbuf

Fixes build error with C++20/C++23

error: return type 'auto' of selected 'operator==' function for rewritten '!=' comparison is not 'bool'

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

* fix: explicitly specify Blocklist::size() return type as size_t

Fixes building with C++20/C++23
error: no matching function for call to 'size'
function 'size' with deduced return type cannot be used before it is defined

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

* fix: wrap runtime format strings with fmt::runtime in library, daemon and cli

fmt::format_string ctor is consteval with C++20
See https://github.com/fmtlib/fmt/issues/2438

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

* fix: wrap runtime format strings with fmt::runtime for GTK client

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

* fix: allow to override C and CXX standard via cmdline or env

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

* fix: add job to check if transmission compiles with C++23

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

* Address code review by mikedld

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

* fix new found fmt build errors

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

* Address code review by tearfur

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

* fix: make tr_net_init_mgr singleton buildable with C++23

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

---------

Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-03-10 13:08:57 -05:00
Yat Ho
24f58f70ee
feat: sequential download in settings.json torrent-add and sesssion-* RPC methods (#7047)
* feat: init sequential download setting from ctor

* feat: `sequantialDownload` arg in `torrent-add` RPC method

* feat: sequential download settings in settings.json

* feat: sequential download arguments in `session-*` RPC methods

* test: fix
2025-03-10 12:07:35 -05:00
Yat Ho
04769d9986
feat: support trackers with only old BEP-7 support (#7481)
* feat: restore old BEP-7 query parameters

* fix: treat failed tracker response as failure
2025-03-10 11:07:15 -05:00
Yat Ho
40814a3195
refactor: save outgoing len(PadA), len(PadB) and len(IA) (#6973)
* refactor: save length of PadA and PadB sent

* refactor: log outgoing `len(PadA)` and `len(PadB)`

* refactor: set `ia_len_` as the MSE handshake initiator
2025-03-10 11:06:42 -05:00
Yat Ho
088232f69c
fix: abort handshake if the torrent is stopped (#6947)
* fix: abort handshake if torrent isn't running

* fix: check if torrent is running in all cases

* fix: don't penalise peer if handshake failed because of us

* fix: tests

* perf: ensure copy-elision in `HandshakeMediator::torrent()`

* code review: more accurate log wording
2025-03-10 01:05:16 -05:00
Bheesham Persaud
1232f558a6
fix(remote): failure reason should be printed (#7034)
Uses `fmt::print` to log failure messages. Results in a connection
failure being printed as:

    Unable to send request to 'http://localhost:9091/transmission/rpc/': Couldn't connect to server

Fixes #7010
2025-03-10 01:04:10 -05:00
Yat Ho
49e0e59763
refactor: respond immediately to block requests from peer (#7029)
* refactor: respond immediately to block requests from peer

* refactor: extract `fill_output_buffer()` impl method
2025-03-09 19:45:08 -05:00
Yat Ho
47eb4ee2bc
refactor: dedicated class for torrent queue (#7332)
* Revert "feat: save queue order between sessions (#6753)"

This reverts commit 4db50dae10.

* refactor: new torrent queue class

* refactor: replace queue code with new class

* test: new tests for new class

* feat: store and load queue order across sessions

* build: xcode

* refactor: use set_difference instead of unordered_set

* code review: use `tr_torrent_id_t` as key

* fix: don't overflow when moving up/down

---------

Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-03-09 19:08:50 -05:00
cdowen
4e7fc81975
feat: disconnect blocklisted peers on blocklist update (#7167)
* Fix: disconnect blocklisted peer on blocklist update.

Mark peer to be disconnected upon blocklist update.
Tested on my torrent, seems to be working.

Fix #732 .

* Add debug message when blocking peers

Add debug message each time a peer gets blocked during blocklist update.

* Change log api

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

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
2025-03-09 18:33:09 -05:00
Mike Gelfand
42ccb54c98
Sync translations (#7477)
* Sync translations with code

* Sync translations with Transifex

* Fix order of plurals for Slovenian

* Add new Mac translations

* Afrikaans (af)
* Greek (el)
2025-03-09 13:47:57 +00:00
Yat Ho
1054ba4ab6
refactor: store peers as benc in resume file (#6892)
* refactor: add `tr_pex::to/from_variant()`

* refactor: store peers as benc in resume

* fix: discard invalid pex in `tr_pex::from_variant()`

* fix: limit number of peers loaded from resume
2025-03-08 12:19:18 -06:00
Charles Kerr
c398bd26f3
build: remove the test to see if curl is at least 7.15.6 (#7462)
CMakeLists.txt requires curl >= 7.28.0, so we do not need to test this.
2025-03-05 14:35:31 -06:00
Charles Kerr
ea2cac2335
refactor: simplify TR_CONSTEXPR20 macro (#7471) 2025-03-05 11:55:04 -06:00
Charles Kerr
642043861d
refactor: remove unused macro TR_UNREACHABLE (#7470)
last use was removed in 3008a99
2025-03-05 10:36:06 -06:00
Charles Kerr
2c0b29143a
refactor: remove TR_LIKELY and TR_UNLIKELY macros (#7469)
* refactor: remove unused TR_UNLIKELY macro

* refactor: remove TR_LIKELY from assertion macro

https://blog.aaronballman.com/2020/08/dont-use-the-likely-or-unlikely-attributes/

* refactor: remove unuse TR_LIKELY macro

* refactor: remove unused TR_GNUC_CHECK_VERSION macro

* refactor: remove unused __has_builtin fallback macro
2025-03-05 08:41:22 -06:00
Rukario
9ea7153ee4
feat: error rename alert message (#7394) 2025-03-04 19:29:52 -06:00
Charles Kerr
491cdc1560
refactor: remove TR_ARG_TUPLE macro (#7468) 2025-03-04 19:06:12 -06:00
Yat Ho
8c18cf4245
fix: use message id to check for pex and metadata xfer support (#7177)
* refactor: use metadata id to check for ut metadata support

* refactor: use pex id to check for ut pex support

* refactor: start pex timer after ltep handshake

* refactor: harden metadata xfer sanity checks

* code review: constexpr

* code review: don't save peer ut_pex_id and ut_metadata_id if on private torrent
2025-03-04 18:42:26 -06:00
Charles Kerr
0518a2269e
fix: do not mark Variant::make_map() as noexcept (#7466) 2025-03-04 18:42:08 -06:00
Charles Kerr
cbd65ae8b1
refactor: fix modernize-use-nodiscard warnings by adding [[nodiscard]] (#7351) 2025-03-04 17:28:33 -06:00
Charles Kerr
de782e4315
ci: use Ubuntu 22.04 runner instead of Ubuntu 20.04 runner (#7465)
the latter is deprecated; see https://github.com/actions/runner-images/issues/11101
2025-03-04 11:12:51 -06:00
Rukario
43577e3df2
refactor: drop className .full in favor of :not(.compact) (#7354) 2025-03-04 08:21:23 -06:00
Yat Ho
52a12200b2
chore: bump wide-integer (#7383)
* chore: bump wide_integer

* refactor: use `uint64_t` for better performance
2025-03-04 08:19:01 -06:00
Yat Ho
48ba0fd2d8
refactor: remove builtin and asm popcount implementation (#7443) 2025-03-04 08:16:39 -06:00
Charles Kerr
05797a9e93
perf: cache curl version (#7461)
it doesn't change during runtime, so no need to
keep calling curl_version_info(CURLVERSION_NOW)
2025-03-04 08:16:21 -06:00
Yat Ho
76ab7ba592
refactor: set peer io socket in constructor (#7355)
* refactor: `tr_netOpenPeerSocket()` returns `tr_socket_t`

* refactor: store preferred transport as array

* refactor: set peer io socket in constructor

* refactor: remove `log_peer_io_bandwidth()`

This partially reverts commit efec6505

* refactor: rename `tr_netOpenPeerSocket` to snake_case

* code review: remove redundant comment

* code review: add comment about array order
2025-03-03 23:47:37 -06:00
pathC
5163ac3e1f
fix: not correctly sending UA to trackers related to curl gh6312 (#7447)
fallback to http1.1 when using flawed curl.
curl 7.71.0-7.74.0 are affected.
2025-03-03 23:14:20 -06:00
Yat Ho
43e869b18e
feat: warn about problematic curl versions (#7457) 2025-03-03 21:32:25 -06:00
Emir SARI
d0d0418b5d
Use en and em dashes where appropriate (#7402)
- En dash is used to separate ranges; e.g. 2024–2025
- Em dash is used to separate expressions; e.g. 100.5 GB — remaining
  time unknown
2025-02-16 14:19:46 -05:00
Michael Hadam
87bcf1a1d5
Update rpc-spec.md (#7387)
incorrect transmission 2.30 update note
2025-01-27 22:46:06 +00:00
Yat Ho
790bd2f0ab
fix: crashes related to curl gh10936 (#7416) 2025-01-27 22:36:47 +00:00
Yat Ho
f768562421
test(dht): use static IP address (#7408) 2025-01-27 01:12:04 +00:00
reardonia
50eacf6933
Consume early pad a/b, improve handshake tests (#6987)
* properly consume PadA in MSE handshake, check for invalid Ya+PadA

* refactor: make handshake constants public (needed for test coverage)

* test: split test MSE handshakes by blocking steps

* test: use `ASSERT_TRUE` instead of `assert`

* test: fix windows crash by using `recv` and `send`

Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>

* refactor: use `TR_IF_WIN32` for `LOCAL_SOCKETPAIR_AF`

Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
Co-authored-by: reardonia <reardonia@github.com>
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
2025-01-09 10:26:48 -06:00
Mike Gelfand
cbba2e0390
Sync translations (#7362)
* Fix lupdate unused directives warning

* Sync translations with code

* Sync translations with Transifex
2025-01-01 14:55:51 +00:00
github-actions[bot]
aa9aff1131
chore: update copyright years (#7359) 2025-01-01 12:04:53 +00:00
Yat Ho
3af627e725
fix(web): enable/disable textbox when session changed (#7346)
* fix(web): enable/disable textbox when session changed

* code review: only enable/disable textbox in response to session change
2024-12-30 12:38:12 -06:00
Rukario
4f88a660a2
fix: use grid CSS to resolve the inflating rows by long torrent names in compact view (#7336) 2024-12-30 11:59:41 -06:00
Rukario
0795e932bd
refactor: pointer device listener code refinement (#7311) 2024-12-30 10:40:42 -06:00
Mitch Livingston
5b53b1ec87
Resolve context menu not always appearing in compact mode (#7350)
The progress bar was on top of the name label (and containing stack view). This reorders the progress bar to the back.
2024-12-30 11:10:35 -05:00
Charles Kerr
236cd6bae7
fix: cert-oop54-cpp warnings about self-assignment in strbuf (#7345) 2024-12-30 09:32:34 -06:00
Yat Ho
131caa1239
refactor: convert tr_net_init_mgr to singleton (#6914) 2024-12-30 09:32:11 -06:00
Rukario
3842cec549
refactor: alternative x/y coords to account for zoomed in browser (#6945)
* Update transmission.js

* refactor: accommodate suggestions + alternative x/y coords

Thanks @tearfur!

Co-Authored-By: Yat Ho <46261767+tearfur@users.noreply.github.com>

---------

Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2024-12-29 01:42:56 -06:00
Yat Ho
a4cc98b92c
fix: speed limits did not work below 16KiB/s (#7339)
* refactor: calculate raw speed by OS buffer instead of application buffer

* refactor: limit transfer speed by raw speed

* refactor: early return write if no bytes

* refactor: remove code for guessing TCP/IP overhead

* refactor: remove code for uTP overhead
2024-12-29 01:42:07 -06:00