Commit Graph

16471 Commits

Author SHA1 Message Date
Yat Ho
58c4386ddd fix: correctly get Windows socket error codes in get_source_address (#7524)
* fix: use correct error codes in `get_source_address()` on windows

* fix: get `sockerrno` value before closing socket
2025-10-15 19:21:00 -05:00
Rukario
c885646d65 fix: also share grid-area: icon; across full-compact modes (#7356) 2025-10-15 19:19:15 -05:00
Yat Ho
b5affa7ff0 fix: ignore whitespaces in whitelist (#7522)
* feat: accept multiple delimiters in tr_strv_sep

* fix: ignore whitespaces in whitelist
2025-10-15 18:59:26 -05:00
Rukario
b5a447eecd refactor: centralize checkbox creation in overflow-menu.js (#7369)
`overflow-menu.js` also sees a favor of using `htmlFor = id` over `setAttribute('for', id)` for binding label to element id.

Update transmission-app.scss
2025-10-15 18:45:35 -05:00
Rukario
d083ca1130 fix: display icon correctly for multi-file torrents in compact view (#7352)
* fix: display icon correctly for multi-file torrents in compact view

* refactor: clean up unused codes
2025-10-15 14:19:25 -05:00
Yat Ho
2005398fcf fix: include wolfssl library configurations header (#7632)
The MOST common issue we see is a mis-configuration between APP and Library. If you compile the wolfSSL library independant of your application you MUST include the same configure options in the application as were used in the library.

If building with “./configure” the build system will generate the file <wolf-root>/wolfssl/options.h with all the settings needed for your application.

Source: https://www.wolfssl.com/docs/frequently-asked-questions-faq/#How_do_I_manage_the_build_configuration_for_wolfSSL
2025-10-15 14:18:19 -05:00
Yat Ho
bf5507ff24 fix: load .torrent then .magnet (#7585) 2025-10-15 12:16:32 -05:00
Yat Ho
d0c26cc612 fix: announce public peer port on dht (#7511) 2025-10-15 12:10:57 -05:00
wrrrzr
963085a00c Add accept torrent files in web (#7683)
* Add accept torrent files

* Update open-dialog.js

* Update open-dialog.js

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-15 12:09:22 -05:00
Yat Ho
9c14fa58d8 feat: allow optional arguments in tr_getopt() (#7510)
* feat: allow optional arguments in `tr_getopt()`

* test: new tests for optional arg

* code review: `using Arg = tr_option::Arg`

* refactor: static assert option array size

* test: add new tests for missing arguments in the middle

* test: static auto constexpr
2025-10-15 12:08:11 -05:00
niol
a7a5bc38ad fix: ChangeFlag bitwise operations (#7613)
* unbreak ChangeFlag bitwise operations (Fix #7572)

8 bits is not enough to do bitwise comparisons on more than 8 independent
values: use std:bitset to ensure proper bitwise operations inside
ChangeFlags().

* refactor: use bitset methods and specify TR_CONSTEXPR23

---------

Co-authored-by: Yat Ho <lagoho7@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-10-14 19:38:52 -05:00
Yat Ho
bf461a0f72 refactor: removed redundant type check in tr_ip_cache::set_global_addr() (#7551)
* refactor: removed redundant type check in `tr_ip_cache::set_global_addr()`

* chore: tweak formatting
2025-10-14 13:00:01 -05:00
Yat Ho
fb25228f24 chore: bump {fmt} to 11.2.0 and fix compatibility (#7612)
* chore: bump fmt to 11.2.0

Acquire 6797f0c39a, which fixes compile error on GCC 15.1.

Acquire
9f269062a7,
which fixes buffer overflow in NetBSD 10.1 on GCC 10.5.

Replace `fmt::localtime` with `std::localtime`, as `fmt::` is now
deprecated.

* fix: format timezone ourselves on Windows

{fmt} 11.2.0 removed the ability to format `std::tm` with the format specifier `%z` on Windows, for a good reason. Ref: https://github.com/fmtlib/fmt/issues/4444

This forces us to implement our own solution on Windows as there's no alternative.

* fix: support `FMT_USE_EXCEPTIONS`
2025-10-14 12:53:08 -05:00
Yat Ho
518816ccc5 ci: use qt6 in ci (#7627) 2025-10-14 12:48:02 -05:00
Yat Ho
d51c185f7d fix: process failure response from a non-BEP-7 HTTP announcement (#7580) 2025-10-14 12:23:55 -05:00
Rukario
3fdbeea2b6 feat: update color for priority buttons in web app (#7651) 2025-10-14 12:21:32 -05:00
github-actions[bot]
828e82420c chore: update generated transmission-web files (#7075)
Co-authored-by: ckerr <70381+ckerr@users.noreply.github.com>
2025-10-14 12:20:12 -05:00
Yat Ho
bda8f7afd4 chore: implement TR_CONSTEXPR23 (#7649) 2025-10-14 11:52:03 -05:00
Yat Ho
85301b16d5 fix: FTBFS for libevent <= 2.1.8 (#7640) 2025-10-14 11:28:35 -05:00
Yat Ho
a5884203fd fix(remote): no-sequential-download description (#7646) 2025-10-14 11:27:35 -05:00
Yat Ho
d3f22cb1cc fix: don't halt udp tracker requests if dns is pending (#7634) 2025-10-13 23:31:15 -05:00
Yat Ho
d83e0e20b8 build: don't add third-party submodules to user package registry (#7648) 2025-10-13 23:30:45 -05:00
Ivan Tsybulin
2239afc252 fix: replace invalid utf8 in peer client user-agent (#7667)
* Replace invalid utf8 in peer client user-agent

* Use cross-platform tr_strv_convert_utf8 instead

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-10-13 23:28:38 -05:00
Yat Ho
0f7d95079b build: conditionally compile utils.mm using generator expression (#7704) 2025-10-13 17:12:36 -05:00
Dzmitry Neviadomski
d6e78d11ea fix: use correct defines when building libpsl with Xcode after roll (#7615)
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
2025-06-13 14:03:57 +01:00
Yat Ho
f7373cb648 fixup! chore: move away from fmt/core.h (#7557) (#7595) 2025-06-02 18:53:56 -05:00
Yat Ho
0fd35eb070 fix: remove duplicated mime types and prefer iana source (#7590)
* fix: remove duplicated mime types and prefer iana source

* refactor: use raw string literals just to be safe

* code review: prefer specific types over octet stream
2025-05-10 08:59:22 +01:00
Yat Ho
d9a7c3ab94 chore: mark web files as generated (#7588) 2025-05-08 21:44:06 +01:00
Yat Ho
08ec7fb7c7 build: lint header files with clang-tidy (#7527)
* build: clang-tidy headers when building libtransmission

* chore: revert `= default` workaround

It was introduced in 6909ec0bad to fix build issues with macOS 10.14. We
no longer support that version.

* fix: clang-tidy warnings for libtransmission

* build: clang-tidy headers when building tests

* fix: clang-tidy warnings for tests

* build: clang-tidy headers when building qt

* code review: don't manually edit mime-types.h

* code review: unify variable naming for static private members
2025-05-07 22:10:16 +01:00
Yat Ho
f0c8fd689a fix(remote): print label separators correctly (#7535) 2025-05-06 22:09:29 +01:00
Yat Ho
adea0e2a07 build: tell clang-tidy to suggest uppercase literal suffixes (#7529) 2025-05-06 22:07:43 +01:00
Yat Ho
c215de34d5 chore: move away from fmt/core.h (#7557) 2025-05-06 01:01:12 -05:00
Yat Ho
f4345fbae1 docs: recommend to keep the cache small (#7519) 2025-05-06 03:58:11 +01:00
Yat Ho
c016e97dcd chore: silence clang-tidy warnings (#7586) 2025-05-06 02:00:48 +01:00
Mike Gelfand
1aebc3c0cb Simplify logic around gettext/libintl use (#7582)
* Simplify logic around gettext/libintl use

Use CMake-provided FindIntl module to look for the library and includes. Don't
check for functions existence, both `gettext()` and `ngettext()` are available
for ages now. Remove Windows- and Mac-specific logic, always use the functions
if found and ENABLE_NLS is set to ON; for rare cases where their use is
unwanted, one could set CMAKE_DISABLE_FIND_PACKAGE_Intl to ON.

* Don't install/use gettext from Homebrew for universal Mac builds

Homebrew doesn't support universal libraries/binaries, hence only an unsuitable
pure-arm64 library is being installed, leading to build failure as a result.

Since it seems that gettext is still being installed as a dependency for some
other package(s), pass CMAKE_DISABLE_FIND_PACKAGE_Intl to guarantee it's not
being used.
2025-05-02 14:31:58 +01:00
Yat Ho
9e15394c65 refactor: announcer code housekeeping (#7496)
* refactor: use time_t for intervals

* refactor: use appropriate int types

* chore: housekeeping

* perf: replace count with find so it can short circuit

* code review: fix regression noticed by nevack
2025-05-01 17:50:14 +01:00
Yat Ho
03c2dbd63c feat: make proxy_url nullable (#7486)
* fix: clang-tidy warning

* refactor: make `proxy_url` nullable
2025-05-01 16:57:46 +01:00
Yat Ho
cf7ac07a6c build: support different install prefixes for daemon service file (#7571)
* build: support different install prefixes for daemon service file

* code review: add `@ONLY`
2025-05-01 15:09:49 +01:00
Yat Ho
10e7f10d26 chore: bump libevent (#7578) 2025-05-01 14:44:37 +01:00
Yat Ho
3312392c60 docs: use Qt6 in Windows build instructions (#7549)
* docs: use Qt6 in Windows build instructions

* docs: document `USE_QT_VERSION`
2025-05-01 12:42:24 +01:00
uglygus
1970becfbf Google-Glasnost was shut down in 2017 (#7555) 2025-05-01 12:36:56 +01:00
Yat Ho
0659f50373 chore: bump libnatpmp (#7536) 2025-05-01 11:53:38 +01:00
Yat Ho
e42bac88a6 chore: bump dht (#7577) 2025-05-01 11:24:19 +01:00
Yat Ho
7a094006fb chore: bump googletest (#7538) 2025-05-01 04:48:04 +01:00
Yat Ho
0a6c123fb7 chore: bump libpsl (#7575) 2025-05-01 02:06:25 +01:00
Yat Ho
67762b9eb5 chore: bump cmake_minimum_required to 3.16.3 (#7576)
* chore: bump cmake_minimum_required to 3.16.3 to match wide_integer

* build: unwrap CMP0092 from if

It was added in CMake 3.14
2025-05-01 02:03:46 +01:00
Yat Ho
90d71d928d chore: bump rapidjson (#7537) 2025-04-30 23:29:33 +01:00
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
4.1.0-beta.2
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