Commit Graph

5863 Commits

Author SHA1 Message Date
Charles Kerr b7099270b6
fix: tr_swarm order of destruction (#4847) 2023-02-12 00:30:30 -06:00
Charles Kerr 8cee2f952e
fix: port forwarding flag not saved between sessions (#4842) 2023-02-11 20:49:16 -06:00
Charles Kerr ba679a814f
fix: try a tcp peer connection before a utp one. (#4826) 2023-02-11 16:14:32 -06:00
Julien 4b8cfa2e57
chore: update copyrights to 2023 (#4834) 2023-02-11 14:49:42 -06:00
Berbe b155374137
fix: add nullptr dereference safguard in announcer code 2023-02-11 08:25:28 -06:00
Daniel Kamil Kozar e0753fedb9
fix: put "private" and "source" inside the metadata "info" key (#4809) 2023-02-10 20:33:24 -06:00
Charles Kerr d0b148c033
fix: misleading error message when resume file is missing (#4799)
Fixes #4712.
2023-02-10 14:01:39 -06:00
Charles Kerr 0c582c6d7e
fix: race condition in RPC (#4725) 2023-02-06 10:42:37 -06:00
Charles Kerr 6c99e95463
fix: ensure ipv4 for udp announces. (#4723)
This is an interim fix to unblock 4.0.0. See ticket 4719 for details.
2023-02-05 23:31:10 -06:00
SweetPPro 1e988c9ce4
fix magnet link start logic (#4528) 2023-02-02 00:19:20 -06:00
Charles Kerr 0493542f62
fix: remove abort() call from tr_assert_message() (#4696) 2023-02-01 18:19:40 -06:00
Cœur 61fa6f6088
Fix WebUtilsTest.urlParse and psl_builtin for Xcode (#4642) 2023-01-31 23:51:04 -06:00
Dmitry Antipov 52d49b84eb
perf: optimize the only block case in Cache::writeContiguous() (#4679) 2023-01-30 12:04:40 -06:00
Charles Kerr e35d65bf4c
fix: call setHasPiece(piece, false) on checkPiece fail (#4665) 2023-01-29 19:46:26 -06:00
Charles Kerr 0e5f7f86d7
fix: coverity warnings (#4687)
* fix: minor tr_error leak warning in tests

* fix: socket leak in tr_globalIPv6()
2023-01-29 16:49:59 -06:00
Charles Kerr 724a0f48f0
fix: clang-tidy header warnings (#4686) 2023-01-28 17:58:20 -06:00
Charles Kerr 93db8f088a
fix: cppcoreguidelines-pro-type-cstyle-cast (#4685)
* fix: libtransmission cppcoreguidelines-pro-type-cstyle-cast

* fix: libtransmission cppcoreguidelines-avoid-do-while

* refactor: inline static class fields

* fix: libtransmission cppcoreguidelines-avoid-reference-coroutine-parameters

* fix: announcer.cc cppcoreguidelines-narrowing-conversions
2023-01-28 15:26:23 -06:00
Charles Kerr 948f597d15
refactor: buffer snake case (#4682) 2023-01-27 20:12:09 -06:00
Charles Kerr c75f9a4a7a
refactor: tidy libtransmission symbol visibility (#4680) 2023-01-27 14:25:08 -06:00
Charles Kerr 568b23374c
chore: don't warn on ECONNREFUSED to peer sockets. (#4678)
Fixes #1031.
2023-01-27 00:00:00 -06:00
Charles Kerr 5a8aab2c2d fixup! fix: omit curlopt options if curl is old (#4675) 2023-01-26 16:03:11 -06:00
Charles Kerr b1744d513e
fix: omit curlopt options if curl is old (#4675) 2023-01-26 12:52:32 -06:00
Charles Kerr aabf1b7e0a
fix: remove CURL_VERSION_BITS macro (#4673)
Fixes #4671.
2023-01-26 11:25:53 -06:00
anarcat 331e1699bc
add remote HTTPS support to Qt GUI (#4622) 2023-01-26 00:24:04 -06:00
Charles Kerr c81d0b130c
refactor: add tr_error_set_from_errno() (#4662) 2023-01-25 12:20:10 -06:00
Charles Kerr 977a190646
fix: msvc warnings (#4651)
* fix: C4189 local variable is initialized but not referenced

* fix: C4706 assignment within conditional expression

* fix: C4018 signed/unsigned mismatch

* fix: warning C4996 High-DPI scaling is always enabled.

* fix: C4996: QApplication::fontMetrics() is deprecated

eed5514eaf
2023-01-23 19:24:52 -06:00
Cœur c89edcd1f6
underscores in documentation comments should be code escaped (#4639) 2023-01-23 10:26:11 -06:00
Charles Kerr 7367d465b5
style: use the new paragraph comment style everywhere (#4634) 2023-01-22 13:21:30 -06:00
Charles Kerr 0f4077a445
fix: announcer not updated after torrent announce list edited (#4635) 2023-01-22 11:53:08 -06:00
Charles Kerr 43bb4bc1c8
refactor: remove unused declarations from tr-macros.h (#4630) 2023-01-21 17:53:58 -06:00
Charles Kerr b5c9e3d697
fix: clang-tidy warnings in libtransmission/transmission.h (#4628) 2023-01-21 13:49:43 -06:00
InsaneKnight 8755207dcf
fix: semantics for tr_peer_socket dtor, move ctor, and move assignment
Default implementations for these functions may leak sockets during
destructing and moving.
2023-01-20 02:28:56 -06:00
Dmitry Antipov 770da79cf3
daemon: check whether log file is regular and may be flushed (#4612) 2023-01-18 12:46:57 -06:00
Charles Kerr 33a7d131b4
feat: add setting to choose between lazy-verify or full verify (#4611) 2023-01-18 02:09:29 -06:00
Charles Kerr 3bc1a1be04
fix: when setting Accept-Encoding to identity, disable curl decoding. (#4609)
Also, change `CURLOPT_ENCODING` usage to `CURLOPT_ACCEPT_ENCODING`.
This key was renamed upstream in 7.21.6; our CURL_MINIMUM is 7.28.0.

Fixes #753.
2023-01-17 16:07:10 -06:00
Cœur e4c5981545
feat: log which tracker is giving a warning (#4544) 2023-01-17 01:46:43 -06:00
Charles Kerr acd5d28fb1
fix: handle webseed servers that do not serve partial content (#4601)
Fixes #4595.
2023-01-16 15:08:25 -06:00
Dmitry Antipov bd461e1081
refactor: use std::function for announcer callback (#4575) 2023-01-15 12:37:54 -06:00
Dmitry Antipov acbf483bae
refactor: switch to C++11-compatible tr_wait() from tr_wait_msec() (#4576) 2023-01-12 12:03:14 -06:00
Dmitry Antipov a5c7b65869
perf: avoid extra time() call (#4577) 2023-01-11 09:26:58 -06:00
Dmitry Antipov 0af121004c
chore: remove unused callback arg (#4573) 2023-01-10 14:47:53 -06:00
Charles Kerr e4b480ecd4
fix: tr_torrentStat() acquires a session thread lock (#4571) 2023-01-10 09:05:31 -06:00
Charles Kerr 2b89ee508b
feat: change 403 error message (#4567) 2023-01-09 10:52:19 -06:00
Charles Kerr 8b1290c895
build: remove explicit iconv dependency in libtransmission (#4565) 2023-01-08 22:21:31 -06:00
Charles Kerr d9278bd167
refactor: misc-use-anonymous-namespace pt. 5 (#4552) 2023-01-07 16:55:00 -06:00
Charles Kerr cb10255ef1
refactor: misc-use-anonymous-namespace pt. 4 (#4550) 2023-01-07 12:58:16 -06:00
Charles Kerr 9678b26984
refactor: misc-use-anonymous-namespace pt. 3 (#4539) 2023-01-07 08:27:54 -06:00
Charles Kerr cc4cbff049
refactor: misc-use-anonymous-namespace pt. 2 (#4538) 2023-01-04 22:16:22 -06:00
Charles Kerr 634b1e8fc1
fixup! fix: Couldnt send to IPv6 address warnings (#4527) (#4537) 2023-01-04 18:18:22 -06:00
Charles Kerr b47c34726b
refactor: tr_peer_socket keeps track of peer count (#4534) 2023-01-04 15:37:55 -06:00
Charles Kerr bd61bd2558
refactor: use anonymous namespace in rpc-server.cc (#4530)
refactor: use anonymous namespace in rpcimpl.cc
2023-01-03 22:24:12 -06:00
Charles Kerr ee0877c99d
refactor: fix readability-redundant-string-cstr warnings found by clang-tidy-16 (#4529) 2023-01-03 21:43:54 -06:00
Charles Kerr dc968892ec
fix: Couldnt send to IPv6 address warnings (#4527) 2023-01-03 21:12:05 -06:00
Charles Kerr 1e521b9030
fix: -Wredundant-decls warning when building with g++ (#4526) 2023-01-03 15:26:04 -06:00
Charles Kerr 106bcbbe7b
fix: clang-tidy-15 warnings (#4525) 2023-01-03 14:10:12 -06:00
Mike Gelfand 105d23c09e
Fix clang-tidy issue in `iconv` 2nd argument helper (#4520)
Since operators were intentionally implicit and we don't want to add more
`NOLINT` comments than necessary, rework the approach to deduce the argument
type instead and cast to it.
2023-01-02 22:59:53 +00:00
Charles Kerr eb27220662
perf: avoid vector temporary in announcer-udp (#4519) 2023-01-02 12:41:47 -06:00
Charles Kerr 2d2a5e1ad6
refactor: more constexpr (#4518) 2023-01-02 11:34:36 -06:00
Mike Gelfand 57e6b06921
Modernize CMake code (ongoing refactoring) (#4515)
* Use imported CMake target for CURL

* Use imported CMake target for fmtlib

* Use imported CMake target for WideInteger

* Use imported CMake target for FastFloat

* Use imported CMake target for UtfCpp

* Use imported CMake target for Threads

* Use imported CMake target for Iconv

* Use imported CMake target for crypto backend

* Use imported CMake target for GTK

* Use imported CMake target for Qt

* Use imported CMake target for deflate

* Use imported CMake target for libevent

* Use imported CMake target for natpmp

* Use imported CMake target for miniupnpc

* Use imported CMake target for dht

* Use imported CMake target for psl

* Use imported CMake target for libutp

* Use imported CMake target for libb64

* Use include directories from libtransmission target
2023-01-02 16:23:51 +00:00
Charles Kerr 806491232b
refactor: add constexpr (#4514) 2023-01-01 22:43:23 -06:00
Charles Kerr 24eb6ef293
fix: use SO_REUSEADDR when binding UDP ports (#4513)
* fix: use SO_REUSEPORT when binding UDP ports

* chore: cast 3rd arg of setsockopt
2023-01-01 20:36:20 -06:00
Charles Kerr d338eb3bdc
refactor: simplify tr_udp_core::sendto() (#4510) 2023-01-01 17:16:13 -06:00
Charles Kerr 47ebb3f63a
refactor: remove obsolete lightweight build option (#4509) 2023-01-01 16:24:12 -06:00
Mike Gelfand bc380511db
Modernize CMake code (ongoing refactoring) (#4507)
* Reformat CMake code

* Bump minimum CMake version to 3.12

* Add target sources separately via `target_source()`

* Make `tr_win32_app_info()` add target sources on its own

* Don't use `include_directories()`

* Don't use `add_definitions()`

* Limit use of `add_compile_options()`

* Move VDKQueue target declaration to a subdirectory

* Add `tr_disable_source_files_compile()` helper

* Add `tr_target_glib_resources()` helper

* Add `tr_gettext_msgfmt()` helper

* Enable AUTOUIC for Qt client

* Enable AUTORCC for Qt client

* Remove AUTO{MOC,RCC,UIC} source group overrides

* Add `tr_target_idl_files()` helper

* Move source group setup to `tr_qt_add_translation()`

* Add `tr_target_xib_files()` helper

* Prefer `target_sources()` to intermediate variables

* Use explicit visibility versions of `target_*()` commands

* Prefer genexes to conditions in `target_*()` commands

* Add `tr_allow_compile_if()` helper

* Leave only top-level `project()`, remove the rest

* Minor fixups

* Fixup Mac QL plugin install

* Fixup IDE target folders and source groups
2023-01-01 19:49:48 +00:00
Charles Kerr 453836f324
refactor: make announce key param unique per-torrent (#4508) 2023-01-01 13:22:50 -06:00
Charles Kerr 611b181a99
feat: add `yourip` to extension protocol handshake (#4504)
* feat: add yourip to the extension protocol handshake
2023-01-01 12:20:46 -06:00
Charles Kerr db38f9aa2c
fix: remove announce ipv4 ipv6 query params (#4502) 2022-12-31 13:13:59 -06:00
Charles Kerr 53f5a33616
fix: fix omitted fmt call (#4494) 2022-12-31 10:49:27 -06:00
Mike Gelfand f7edcfcb2a
Drop obsolete CyaSSL and PolarSSL crypto backends (#4495)
* Drop support for CyaSSL (keep WolfSSL)

* Drop support for PolarSSL (keep MbedTLS)
2022-12-29 22:38:04 +00:00
Charles Kerr 2b90a5fd55
refactor: possible FTBFS fix on arm7 (#4492)
* refactor: possible FTBFS fix on arm7

* chore: remove tr_rand_int_weak() from crypto-test-ref

* refactor: move tr_rand_int() to header
2022-12-29 10:30:03 -06:00
Charles Kerr 5ce503f1ab
refactor: udp_core constructor (#4469)
* refactor: udp_core constructor

* refactor: invert dependency between tr_session.publicAddress() and tr_globalIPv6()
2022-12-28 02:03:35 -06:00
Mike Gelfand 5fd0aff818
Automatically (re)order include directives (GTK client) (#4475)
* Automatically (re)order include directives (GTK client)

Include our headers first to ease IWYU enforcement.

* Fix includes missing from headers (GTK client)

* Fix build on Mac after includes reordering
2022-12-26 21:13:21 +00:00
Charles Kerr ab9e971903
refactor: tr_globalIPv6() returns a std::optional<tr_address> (#4464) 2022-12-25 07:55:51 -06:00
Charles Kerr a3f561bcc0
refactor: add tr_address.is_global_unicast_address() (#4462)
Was previously private to net.cc. Expose here so that we can add tests.

Add tests.
2022-12-24 18:53:50 -06:00
Charles Kerr 1402cb2949
refactor: add TR_CONSTEXPR20 to make future C++20 migration easier (#4457) 2022-12-23 15:21:40 -06:00
Cœur 559b759ea0
Fix tr_torrent_view incorrectly returning is_folder false for single files in a single folder (#4454) 2022-12-23 13:52:16 -06:00
Cœur 3cee8bae36
Fixed crash on exit while downloading from webseed (#4451) 2022-12-23 11:34:08 -06:00
Charles Kerr 14a3d01e45
fix: sonarcloud (#4453) 2022-12-23 10:56:27 -06:00
Charles Kerr a1892f2c7c
fix: 4.0.0-beta.2 regression transmission-show --scrape did not exit cleanly (#4447) 2022-12-23 08:03:26 -06:00
Charles Kerr 07a5e560b7
fixup: peer counts (#4445) 2022-12-22 17:43:36 -06:00
Charles Kerr 4549cc74a0
refactor: add tr_torrent::do_idle_work() (#4434) 2022-12-21 17:21:28 -06:00
Charles Kerr c74ac4f4ed
perf: cache the peer, atom count instead of always recomputing it (#4431) 2022-12-21 12:07:40 -06:00
Charles Kerr 092d411663
refactor: tr_rand_buffer(), tr_rand_int() again (#4415) 2022-12-21 09:58:32 -06:00
Charles Kerr e17da3e19e
refactor: xunused (#4416)
* chore: remove unused function gtr_combo_box_new_enum()

* chore: remove unused function gtr_priority_combo_new()

* chore: remove unused function tr_logLevelToKey()

* refactor: remove unused tr_sessionGetDeleteSource()

* refactor: remove unused peer_atom::isValid()
2022-12-20 18:48:36 -06:00
Charles Kerr 1e734f36b1
perf: cache the result of thread_current_id() (#4425) 2022-12-20 14:59:02 -06:00
Charles Kerr ebc93788ce
perf: make bandwidth.allocate() bidirectional (#4424)
Previously `bandwidth.allocate()` was called twice in a row, once for
upload bandwidth and once for download bandwidth.

It has some semi-expensive housekeeping though, so avoid doing that work
twice by having a single call to `bandwidth.allocate()` operate on both
up and down bandwidth.
2022-12-20 13:49:37 -06:00
Charles Kerr 5493ed644e
refactor: use tr_rand_buf() in tr_bandwidth::phaseOne() (#4404) (#4411) 2022-12-19 17:31:24 -06:00
Charles Kerr d290ece0c8
perf: recycle DH MSE keys iff peer was unreachable (#4412) 2022-12-19 16:49:26 -06:00
Reed Morrison edfce44d35
refactor: remove unused UTP Socket code. (#4409) 2022-12-19 15:16:46 -06:00
Charles Kerr 5743758edd Revert "perf: recycle Diffie-Hellman keys iff peer was unreachable (#4408)"
This reverts commit 35a0211118.
2022-12-19 15:12:33 -06:00
Charles Kerr 35a0211118
perf: recycle Diffie-Hellman keys iff peer was unreachable (#4408) 2022-12-19 14:45:01 -06:00
Charles Kerr 76db72bc4b
perf: lazy-calculate torrent seconds-seeding stat (#4393) 2022-12-18 22:59:58 -06:00
Charles Kerr 9e6ffa351c
perf: reduce excess rand() calls in tr_bandwidth::phaseOne() (#4404) 2022-12-18 13:24:46 -06:00
Mike Gelfand 128cf34123
Move jsonsl and wildmat to third-party (#4402)
* Move jsonsl to third-party

This treats it as proper 3rd-party code to which our warning and style
settings don't extend.

* Move wildmat to third-party

This treats it as proper 3rd-party code to which our warning and style
settings don't extend.

* Fixup Xcode project to match new project structure
2022-12-18 19:19:07 +00:00
Charles Kerr 28b12f091f
perf: remove libtransmission::Buffer.vecs() (#4401)
Its two calls to evbuffer_peek() used 3.5% of CPU use (measured with perf
when built with RelWithDebInfo). I added vecs() so that libtransmsision
could send noncontiguous buffers via utp_writev(); but in my testing, all
the buffers being sent are contiguous and so this is unnecessary work.
2022-12-18 12:09:02 -06:00
Charles Kerr cc4141c619
fixup: 3899255 (#4394) 2022-12-18 11:18:25 -06:00
Cœur 4ff59b715d
Fixed implicit conversion warning: __LINE__ is a long (#4397) 2022-12-18 10:23:44 -06:00
Mike Gelfand e694c3e3a0
Use C++ (not C) warning flags for GTK client (#4395)
Use the opportunity to reduce duplication.
2022-12-18 01:02:03 +00:00
Charles Kerr 3899255f1c
fix: tear down utp _after_ peer-mgr (#4383) 2022-12-17 14:10:10 -06:00
Charles Kerr 616e79c0a8
refactor: group related tr_peerIo methods together (#4380)
* refactor: group related functions together in the source

* refactor: make tr_peerIo::decrypt() private

* refactor: make tr_peerIo::is_seed() private

* refactor: remove unused tr_isPeerIo()
2022-12-16 17:21:01 -06:00
Charles Kerr e6d75a4b77
refactor: tr_peerIo (#4372) 2022-12-16 01:23:12 -06:00
Cœur 669faf7474
Dropped tr_rand_int_weak where possible. (#4271) 2022-12-14 12:21:56 -06:00
Ștefan Talpalaru b0eaec47cd
fix: re-enable port forwarding (#4343) 2022-12-14 01:31:48 -06:00
Charles Kerr 6f1153cae4
refactor: tr_handshake (#4362) 2022-12-13 19:58:39 -06:00
Cœur 4a80f800a6
Fixed crash on exit in tr_utpPacket (#4348) 2022-12-13 16:51:54 -06:00
Charles Kerr 2f6315b649
refactor: tr_handshake lifecycle (#4358) 2022-12-13 11:59:21 -06:00
Cœur 9e0b42a61d
Fixed logic in tr_wildmat (#4353) 2022-12-12 16:35:40 -06:00
Cœur 7814e0736e
Fixed tr_bitfield::operator|= range (#4351) 2022-12-12 02:23:59 +00:00
Charles Kerr 5bd4f007ac
fix: remove invalid assertion from bitfield code (#4346) 2022-12-10 14:54:22 -06:00
Charles Kerr 0a69685a4e
refactor: tr_address cleanup (#4338)
* refactor: move tr_tracker_http_announce() helper funcs into their own namespace

* refactor: move tr_globalIPv6() helper funcs into their own namespace

* refactor: move tr_address_is_valid_for_peers() helper funcs into their own namespace

* refactor: make tr_address_compare() a private method

* refactor: rename tr_address::isIPv4() to is_ipv4()

* refactor: use snake_case for tr_address methods

* refactor: make tr_address_is_valid_for_peers() a member function
2022-12-08 20:27:52 -06:00
Charles Kerr 0061e4f9a9
refactor: tr_address::display_name() (#4335) 2022-12-08 16:44:19 -06:00
Charles Kerr f176bb299a
fix: broken detection of peer udp port (#4334) 2022-12-08 14:44:39 -06:00
Charles Kerr e06e304cc8
refactor: fix shutdown order of utp (#4331) 2022-12-06 14:28:48 -06:00
Charles Kerr 22a3a5db25
refactor: peer-socket pt 2 (#4326)
* refactor: tr_netOpenPeerSocket() now takes a tr_address reference

* refactor: disable copy assignment, copy constructor

* refactor: move log statements to peer_socket constructor
2022-12-06 10:28:28 -06:00
Charles Kerr 9a5d9a0ba2
refactor: tr_peer_socket (#4325)
* refactor: make tr_peer_socket.type private

* refactor: reimplement tr_peerIo::address() as a wrapper around tr_peer_socket::address()

* refactor: remove tr_address, tr_port from tr_peerIo

* refactor: replace tr_netClosePeerSocket() with tr_peer_socket::close()
2022-12-05 18:53:31 -06:00
Charles Kerr 468310300c
refactor: only need a single handshake mediator (#4322) 2022-12-05 11:47:11 -06:00
Charles Kerr 728e5b8350
refactor: stop tracking peerIo creation time (#4300) 2022-12-02 10:39:46 -06:00
Dmitry Antipov bf6c80ae35
refactor, ci: switch clang-format to LLVM 15 (#4297)
Bump required clang-format version to 15
2022-12-02 09:57:50 -06:00
A Cœur a656b3b8c9
fix: tr_rand_int modulo bias and fixed tr_rand_int for values larger than INT_MAX. (#4235) 2022-11-30 22:58:14 -06:00
Charles Kerr a7261526ac
fix: shut down utp sooner during session shutdown (#4287) 2022-11-30 16:35:10 -06:00
A Cœur e038121857
refactor: second log of UTP errors as 'trace' messages (#4283) 2022-11-30 14:06:08 -06:00
Charles Kerr f03fc9270b
Fix/long shutdown crash on shutdown (#4285) 2022-11-30 13:00:34 -06:00
Charles Kerr 595d0ac14a
refactor: add tr_announcer.startShutdown() (#4280) 2022-11-29 21:05:11 -06:00
Charles Kerr eeaefca6f3
refactor: UDP and TCP announces use same timeout interval (#4279)
* refactor: move announce, scrape timeout intervals into announcer-common.h

* refactor: udp and http announces, scrapes use same timeout vals
2022-11-29 19:38:53 -06:00
Charles Kerr 22d12aedc5
refactor: GTK favicon lookup improvements (#4278) 2022-11-29 18:09:32 -06:00
Charles Kerr 8900a1646e
refactor: do not report peer EOF as an error (#4275) 2022-11-29 10:48:20 -06:00
Charles Kerr 59335eac03
fix: sonarcloud cpp:S6004 (#4270)
reduce scope of variables by using if-based initializer
2022-11-28 21:03:28 -06:00
Charles Kerr 4adda4dc1e
fix: sonarcloud cpp:S6005 (#4268) 2022-11-28 18:26:03 -06:00
Charles Kerr af9f1b4e42
fix: potentially incorrect error message in rpc-server whitelist (#4264)
Fixes #928.
2022-11-28 15:46:30 -06:00
Charles Kerr f27c5fa0fa
refactor: make some local pointer vars pointer-to-const (#4262) 2022-11-28 09:45:39 -06:00
Charles Kerr 14dfafde32
refactor: add std::unique_ptr<evhttp> handler to utils-ev (#4261) 2022-11-28 08:07:04 -06:00
Charles Kerr 0ee93068bb
fix: TR_TORRENT_LABELS env var in scripts (#4260) 2022-11-27 21:59:45 -06:00
Charles Kerr 0efb96124b
perf: remove cpu bottleneck in tr_peerIo::write() (#4258) 2022-11-27 20:46:03 -06:00
Charles Kerr 49393daf01
refactor: use std::optional.value_or() (#4255) 2022-11-27 14:56:34 -06:00
Charles Kerr 33c1098ea0
refactor: reduce scope of TR_NATIVE_EOL_STR, TR_NATIVE_EOL_STR_SIZE (#4254) 2022-11-27 12:11:25 -06:00
Charles Kerr 3dd5cb439d
chore: updsate mime-types (#4246)
just running mime-types.js
2022-11-26 09:03:39 -06:00
Charles Kerr ec6cb67c5c
fix GTK client message log window does not restore level selection (#4242)
* fix: save log level, encryption mod, preallocation mode as ints

* fix: ensure log level is saved in tr_sessionGetSettings()

* fix: ensure the right verbosity row is selected
2022-11-26 07:32:51 -06:00
Charles Kerr feeea2649e
refactor: make tr_announcer.key a uint32_t (#4241) 2022-11-25 19:11:55 -06:00
Charles Kerr 8a35aa0903
refactor: add tr_rand_obj() (#4238)
* refactor: add tr_rand_obj()

There are a lot of places in the codebase where we need to populate
an integral type or a fixed-size array with random data. To do this,
we instantiate a local on the stack, fill it with tr_rand_buffer(),
and then use it.

This PR creates a helper function to make this a one-liner.
2022-11-25 15:04:37 -06:00
A Cœur 342484d14a
refactor: log UTP_ETIMEDOUT errors to 'trace' messages (#4237) 2022-11-25 14:44:49 -06:00
Charles Kerr 554ba06ae2
fix: coverity warnings, sonarcloud code smells (#4232) 2022-11-24 10:17:02 -06:00
Charles Kerr 19bc15523f
fix: new sonarcloud, coverity, gcc warnings (#4229) 2022-11-23 13:47:04 -06:00
Charles Kerr 046ba32d33
fixup: heap-use-after-free in announce, scrape response on shutdown (#4228)
fixes #4222.
2022-11-23 01:38:31 -06:00
Charles Kerr a8f2b840f7
perf: improve tr_peerMgrGetDesiredAvailable() (#4226) 2022-11-22 23:26:10 -06:00
Charles Kerr 40c7f5bceb
perf: constexpr and move work outside of loops (#4224) 2022-11-22 14:00:09 -06:00
Charles Kerr 43c57fb02a
perf: buffer iterators (#4220) 2022-11-21 23:54:28 -06:00
Charles Kerr a3772dc1fa
refactor: aggregate dh in peer io (#4218) 2022-11-21 18:08:06 -06:00
A Cœur d26db72d7e
Fix "Implicit conversion loses integer precision" (#4194) 2022-11-21 10:19:45 -06:00
Charles Kerr 76bea25f6e
perf: minor perf wins (#4216)
* perf: faster tr_buffer::toString()

* perf: faster tr_buffer::Iterator

* perf: get mutex lock in reconnectPulse() instead of closeBadPeers()
2022-11-21 09:28:46 -06:00
Herman Semenov ffd5e6bf50
refactor: remove unused vars, code simplify and minor optimize (#4172) 2022-11-19 09:46:03 -06:00
Charles Kerr d27c4c59ce
refactor: incremental announcer refactor pt. 2 (#4214) 2022-11-18 23:00:25 -06:00
A Cœur a187529f93
typo ICP -> TCP (#4213) 2022-11-18 21:53:16 -06:00
Charles Kerr 4cc0b77eec
refactor: incremental announcer improvements (#4211) 2022-11-17 20:23:54 -06:00
Charles Kerr f17cee97e5
fix: nullptr crash in peer-io (#4210) 2022-11-17 14:53:08 -06:00
Charles Kerr 42f26aad0b
fix: ftbfs on Windows (#4204) 2022-11-16 18:03:48 -06:00
Charles Kerr a45cc2a79d
refactor: try again to use getaddrinfo in announcer_udp (#4201) 2022-11-16 15:13:31 -06:00
Charles Kerr d2125ee965
perf: revert e065565cd to restore async dns lookups (#4182) 2022-11-15 11:16:49 -06:00
Charles Kerr d0639b5f0c
perf: tr_sys_path_basename() returns a std::string_view (#4176) 2022-11-15 08:29:00 -06:00
Charles Kerr 134363d83d
fixup! refactor: decouple session settings from the session class (#4053) (#4175)
fixes #4134
2022-11-14 19:10:19 -06:00
Charles Kerr 6bec2f22c8
fix: 4.0.0-beta.1 wrong RPC response for group-get (#4171) 2022-11-14 16:31:41 -06:00
Charles Kerr f9a6df6f41
refactor: use a condition_variable when removing a torrent from the verifier thread (#4166) 2022-11-13 23:11:48 -06:00
Charles Kerr 67e992ddf0
refactor: better TR_CURL_SSL_NO_VERIFY (#4159)
clear CURLOPT_CAINFO, CURLOPT_CAPATH iff verification is disabled
2022-11-13 17:17:16 -06:00
Charles Kerr 250e055c1d
fix: warnings from clang tidy sonarcloud coverity (#4143) 2022-11-12 09:53:09 -06:00
A Cœur 2aa46f840c
Remove std::enable_if<std::is_member_function_pointer> (#4139) 2022-11-11 11:18:17 -06:00
Charles Kerr 9e06cf8f2e
refactor: make DHT unblocking (#4122) 2022-11-11 10:09:24 -06:00
Charles Kerr d61e31c419
fix: more thread safety updates (#4136)
* fix: thread safety in tr_sessionLoadTorrents()

* refactor: use std::future in tr_sessionSet()

* refactor: use std::future in tr_sessionClose()
2022-11-10 12:04:49 -06:00
Charles Kerr 7e817b5a43
refactor: fix thread sanitizer warnings in tr_sessionClose() (#4130) 2022-11-09 20:30:34 -06:00
A Cœur 3e0ca88f7d
Fix "Forwarding reference passed to std::move" (#4114)
* Fix "Forwarding reference passed to std::move"

* Missing quotes in file references
2022-11-08 22:33:28 -06:00
Charles Kerr ab78759233
test: add libtransmission::Timer tests (#4121) 2022-11-08 16:20:21 -06:00
Charles Kerr 00cc28cf0b
perf: reuse existing evtimers instead of creating new ones (#4116) 2022-11-07 22:42:42 -06:00
Charles Kerr 162035a653
fix: minor recent clang warnings (#4111)
* refactor: fix modernize-use-default-member-init warning in session-thread.cc

* refactor: fix readability-named-parameter warning in session-thread.cc

* refactor: fix clang-diagnostic-unused-function warning for isSupportedSocket()

* refactor: fix clang-analyzer-deadcode.DeadStores warning in buildHandshakeMessage()

* chore: fix readability-identifier-naming warning for tr_session::session_mutex_

* chore: fix readability-identifier-naming warning for Watchdir::generic_rescan_interval_

* chore: fix readability-identifier-naming warning for __tr_current_time
2022-11-07 11:48:26 -06:00
A Cœur fd7bb4a287
Fix "upload/download connectivity is broken" (#4107) 2022-11-07 00:15:35 -06:00
Charles Kerr 4d8509c180
refactor: add libtransmission::evhelpers (#4104) 2022-11-06 15:11:30 -06:00
Charles Kerr 36edd516aa
refactor: replace tr_boundinfo with tr_session::BoundSocket (#4103) 2022-11-06 10:35:48 -06:00
Mike Gelfand bf17a3baf1
Fix web client directory name on Windows (#4099) 2022-11-05 08:45:34 +00:00
Charles Kerr 831eb8d40f
refactor: make `tr_session_thread` a unique_ptr owned by tr_session (#4069) 2022-11-04 16:20:27 -05:00
Charles Kerr e065565cd4
reafctor: use getaddrinfo() instead of evdns (#4094) 2022-11-04 13:29:56 -05:00
Charles Kerr 09bb1a60f0
refactor: add more nodiscard, constexpr, and noexcept (#4089) 2022-11-03 18:08:02 -05:00
Charles Kerr ee8a6bd130
refactor: simplify blocklist code (#4086) 2022-11-03 15:46:27 -05:00
A Cœur 8857e8c1a4
Declare TR_ETA_NOT_AVAIL as time_t (#4065) 2022-11-03 11:42:42 -05:00
A Cœur 84badfc66f
removing unreachable code (#4083) 2022-11-03 09:47:43 -05:00
SweetPPro 94eeae203b
fix: 4.0.0-beta.1 crash when updating blocklist (#4011) 2022-11-02 09:41:05 -05:00
A Cœur 64b5fde8b2
fixup: silence "empty expression statement has no effect" warning (#4074) 2022-11-02 09:04:22 -05:00
Charles Kerr 611d36ac84
refactor: decouple session settings from the session class (#4053) 2022-11-01 19:32:26 -05:00
Charles Kerr d5ef1ea80a
fix: test for tr_peerIo.gotError function pointer before use (#4051) 2022-10-29 16:59:24 -05:00
Charles Kerr cdf817f2e7
fix: FTBFS on Windows (#4036)
* refactor: getPiececLength() now returns size_t

* refactor: tr_torrentSetMetadataPiece() length arg is now size_t

* refactor: tr_peerIo::flushOutgoingProtocolMsgs() returns size_t, takes a tr_error** for reporting errors

* refactor: define tr_mode_t for convenience

* fix: suseconds_t portability fix
2022-10-28 19:12:37 -05:00
Charles Kerr 210bb03f2f
fix: recent signed-unsigned comparison warnings (#4034) 2022-10-26 11:20:10 -05:00
A Cœur 12e564096b
fix: "Implicit conversion loses integer precision" warnings (#3960) 2022-10-25 11:14:42 -05:00
A Cœur 14f2698cdc
Remove tr_generateAllowedSet declaration (#4029) 2022-10-25 08:50:53 -05:00
Charles Kerr 798e873b87
fix: sonarcloud warnings (#4023) 2022-10-24 22:13:09 -05:00
Charles Kerr 088e146cee
fix: crash on large udp announce response (#4022)
Fixes #4006.
2022-10-24 17:58:19 -05:00
Charles Kerr e8079835d3
fix: crash when a torrent autopauses after encountering an error (#4021) 2022-10-24 16:57:07 -05:00
Charles Kerr 2262efdb7f
fix: ignore unrecognized torrent-get fields (#4018)
Fixes #2916.

Not actually a Transmission bug, but restores undefined behavior to be
consistent with 3.00's undefined behavior in the RPC spec.
2022-10-24 15:02:48 -05:00
Charles Kerr b32f3e0a24
refactor: add tr_address::toCompact() (#4014)
* refactor: add tr_address::toCompact()

* test: use the theory.org compact ipv4/6 examples in NetTest.compact4, NetTest.compact6

* refactor: add tr_address::toCompact()

* test: add toCompact, fromCompact tests

* refactor: add compact <--> sockaddr_storage conversion
2022-10-24 13:40:12 -05:00
Mike Gelfand 70f623f32b
Add user data parameter for torrent removal callback (#4009) 2022-10-23 11:51:35 -05:00
Charles Kerr d191a04228
refactor: decouple tr_announcer_udp (#4002) 2022-10-21 13:15:14 -05:00
Derek Reiff 6187cfd67b
Refresh web interface across desktop and mobile (#3985)
* Add macOS section to Web-Interface docs

- Add minimal steps to enable web interface on macOS
- Clean up README.md with some markdown linting.

* Updating and modernizing web interface, colors, icons

In general:

- increase spacing and decrease font sizes in most inspectors (so far)
- replace icons  with emoji. may not be the way to go in the end

* update toolbar icon sizes to adjust for differences

* Switch from icons to buttons, other minor color changes

1. Add 'warn' class to dangerous actions
2. Add 'table-row' helper to overflow menu
3. Use text instead of icons for this new tab style

* Update icons using feathericons.com

* Rename files, replace some SVG and optimize PNG

* Remove more unused variables

* Update index.html to reflect new icons

* More minor svg changes; delete old images

* Updated build output

* Remove icons, add new feather svg icons

Build is now sub-200 KB
2022-10-21 12:22:59 -05:00
Charles Kerr 450f1dcadc
refactor: extract `tr_buffer` class from `tr_peerIo` (#3986) 2022-10-19 11:42:08 -05:00
Charles Kerr 7ee76a604d
feat: add libtransmission::Dns.cached() (#3984) 2022-10-17 20:17:01 -05:00
Charles Kerr c8e652c820
refactor: add dns interface class (#3977) 2022-10-17 14:41:42 -05:00