Commit Graph

15262 Commits

Author SHA1 Message Date
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 bc61565af7
build: fix utils tests on win32 (#4422)
tests depend on utils, so if we unconditionally enable tests we need to do the same for utils
2022-12-20 12:27:02 -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
Mike Gelfand 6d495fbf98
Don't use message dialog to display blocklist update status (#4392)
Make it behave [almost] the same way port test works: display update
status and final result in the label below the URL entry. The only
difference is that label returns to its usual mode showing total number
of rules after a while once update is finished; could probably have
done it differently but decided against it to avoid affecting
translations.
2022-12-17 23:12:25 +00:00
Mike Gelfand 4c5b180f5a
Make preferences dialog non-modal (#4391)
This regressed with the switch to `Gtk::Builder` because the dialog was
non-modal before.

This is the cause of the issue with blocklist update status dialog: it
seems that if there's a modal dialog running, showing another non-modal
dialog will make it inaccessible to the user until the first dialog is
closed thus leaving the modal mode.
2022-12-17 21:07:07 +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
Mike Gelfand 67c4e4081c
Add `ENABLE_WERROR` option for use on CI (#4381)
Defaults to `OFF`. Downstream packagers are advised against enabling it
as we can't guarantee it working on every possible configuration.

Added the actual compile flag in the GTK client subdirectory and not
the top-level CMakeLists.txt file due to other subprojects not being
ready.

Fixed the only GTK client warning reported by Clang on Mac.
2022-12-16 22:38:30 +00:00
Szepesi Tibor 0cb1ea8ed8
docs: add Qt dependencies for Windows build instructions and minor fixes (#4363) 2022-12-16 16:36:46 -06:00
SweetPPro 5d5893036d
fix: layout issues in macOS client torrent inspector window (#4366) 2022-12-16 12:27:37 -06:00
Mike Gelfand 0824c2da6d
Disconnect some more signals on widgets destruction (#4379)
This is applicable to any signals where emitter's lifetime isn't
controlled by the receiver.

There're still about 7 `Glib::signal_idle()` connections which aren't
tracked but I see the possibility of it leading to major issues as quite
low.
2022-12-16 17:40:28 +00:00
Charles Kerr e6d75a4b77
refactor: tr_peerIo (#4372) 2022-12-16 01:23:12 -06:00
SweetPPro 078dc8bd08
removed redunant code from AddMagnetWindow (#4374) 2022-12-16 00:04:59 -06:00
Cœur 578099bf1c
Replaced deprecated NSURLDownload with NSURLSessionDownloadTask. (#4308) 2022-12-15 18:19:27 -06:00
Cœur 30d3ce872f
feat: move the filter bar's search field one pixel up (#4367) 2022-12-14 20:44:21 -06:00
Cœur 669faf7474
Dropped tr_rand_int_weak where possible. (#4271) 2022-12-14 12:21:56 -06:00
Cœur fe1ee80342
Sorting by size should be instead by sizeWhenDone (#4365) 2022-12-14 11:46:32 -06:00
Cœur 0b0f8704d6
build: move CMAKE_OSX_DEPLOYMENT_TARGET FATAL_ERROR next to its default setting (#4323) 2022-12-14 10:11:32 -06:00
Ștefan Talpalaru b0eaec47cd
fix: re-enable port forwarding (#4343) 2022-12-14 01:31:48 -06:00
Cœur 84c0001e2f
Fixed `archivedDataWithRootObject:` is deprecated (#4310) 2022-12-14 00:42:49 -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
Mike Gelfand 3354634605
Improve error handling upon watch directory setup (#4355)
Failing to handle the exception may lead to a critical log message
(minor) and a crash during startup (major).
2022-12-12 17:12:30 +00:00
Cœur ec1e679395
Fixed memory leak in BlocklistDownloader (#4309) 2022-12-12 15:12:04 +00:00
Peter 7aad5870ce
Add windows build manual (#4291)
* Add windows build manual

* Total rewrite

* Update docs/Building-Transmission.md

Co-authored-by: Cœur <coeur@gmx.fr>

* Update Building-Transmission.md

* Update Building-Transmission.md

* Cmake command rewrite

* Update Building-Transmission.md

* Remove "Mingw" build manual

* Update Building-Transmission.md

Co-authored-by: Cœur <coeur@gmx.fr>
2022-12-12 15:10:36 +00:00
Mike Gelfand d2e0ca48a1
Simplify `PrefsDialog`'s `PageBase` further by passing builder via ctor (#4354) 2022-12-12 15:00:33 +00:00
Cœur 7814e0736e
Fixed tr_bitfield::operator|= range (#4351) 2022-12-12 02:23:59 +00:00
Mike Gelfand f58c238d4a
Show "Enable uTP" checkbox in preferences if supported (GTK client) (#4349)
Broken with switch to CMake. Ideally, need an API/RPC method to request
core capabilities to support remote sessions.
2022-12-11 21:58:17 +00:00
Charles Kerr 5bd4f007ac
fix: remove invalid assertion from bitfield code (#4346) 2022-12-10 14:54:22 -06:00
SweetPPro 9f2a981c8c
fix: empty tableview rows on macOS (#4333) 2022-12-09 13:06:00 -06:00
Mike Gelfand a937dfc897
Don't include MSVC redist MSM in Windows MSI package (#4339)
* Create Windows MSI package as part of GHA sanity build

* Don't include MSVC redist MSM in Windows MSI package

This approach is deprecated, and was probably never entirely correct to
begin with.
2022-12-09 12:30:43 +00: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
Mike Gelfand 26a8c17187
Use proper working directory (fixup #4337) 2022-12-08 22:48:35 +00:00
Charles Kerr 0061e4f9a9
refactor: tr_address::display_name() (#4335) 2022-12-08 16:44:19 -06:00
Mike Gelfand 32cc726e7d
Detect changes against branch off point, not origin/main (#4337) 2022-12-08 22:41:28 +00:00
Charles Kerr f176bb299a
fix: broken detection of peer udp port (#4334) 2022-12-08 14:44:39 -06:00