Charles Kerr
783fa500e7
fix: set the utp state change log level to trace ( #2809 )
...
Fixes #2808 .
2022-03-24 13:46:34 -05:00
Charles Kerr
f19c09ad9b
fix: bugprone-narrowing-conversions warnings in bitfield.cc ( #2806 )
2022-03-24 08:31:00 -05:00
Charles Kerr
b8c3778cf4
fix: sonarcloud warnings ( #2804 )
...
* fix: break will never be executed
* refactor: compile the name fallback string
* fix: replace redundant type with auto
* fix: use init-statement to reduce variable scope
* fix: implicit conversion loses precision
* fix: use in-class initializer
* fix: make variable a pointer-to-const
* fix: local variable name shadows class variable
* fix: implicit conversion may lose precision
2022-03-24 00:18:41 -05:00
Charles Kerr
6db3fbfe64
perf: tell curl_share to share everything ( #2802 )
2022-03-23 22:02:18 -05:00
SweetPPro
791f59e8ba
fix for editing magnet link tracker list ( #2793 )
...
Co-authored-by: SweetPPro <sweetppro@users.noreply.github.com>
2022-03-23 10:18:06 -05:00
David Beinder
53dc3a41b4
fix: return correct bitfield when fully downloaded ( #2799 )
...
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2022-03-22 14:01:07 -05:00
Charles Kerr
04a4f4a10c
refactor: a little more logging ( #2800 )
...
Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
2022-03-22 11:45:56 -05:00
SweetPPro
6e1b89d9a7
fixes "no data found..." error on restart for paused torrents ( #2797 )
...
Co-authored-by: SweetPPro <sweetppro@users.noreply.github.com>
2022-03-21 16:15:53 -05:00
Charles Kerr
03ee0028d4
refactor: tr_sys_path_dirname returns a std::string ( #2792 )
2022-03-21 15:22:50 -05:00
Charles Kerr
fcc1510ecb
refactor: use fmt to build the GTK client's user-visible strings ( #2788 )
...
Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
2022-03-21 09:15:48 -05:00
Charles Kerr
44e30bf092
perf: avoid excess filesystem checks ( #2786 )
2022-03-18 16:31:25 -05:00
Charles Kerr
7b837bca1f
fixup! refactor: remove deep logging ( #2749 ) ( #2785 )
...
handle new log levels in daemon cli invocation
2022-03-18 14:15:43 -05:00
Charles Kerr
22499c677a
refactor: aggregate bandwidth objects ( #2783 )
2022-03-18 11:34:29 -05:00
Matan Ziv-Av
c07bac4e19
Limit bandwidth used by a group of torrents ( #2761 )
...
* Add support for bandwidth groups. i.e. Bandwidth limit for a (user specified) group of torrents,
2022-03-18 08:11:59 -05:00
Charles Kerr
6cb0498486
fix: log unexpected announce/scrape keys ( #2778 )
...
Fixes #2765 .
2022-03-17 19:31:24 -05:00
Charles Kerr
fa8aaf7631
refactor: remove remaining vararg log messages ( #2776 )
2022-03-17 17:39:06 -05:00
Charles Kerr
5df252d1e1
fix: calculate ratio as uploaded / sizeWhenDone ( #2770 )
2022-03-17 13:41:48 -05:00
Charles Kerr
ce10a5314a
fixup! fix: ensure all bytes read / written to file ( #2682 ) ( #2780 )
...
fix: infinite loop when pread returns 0
2022-03-17 10:41:02 -05:00
Charles Kerr
54ef7341a2
refactor: fmt pt 4 ( #2774 )
...
Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
2022-03-16 19:23:44 -05:00
Charles Kerr
0be920156b
refactor: fmt part 3 ( #2773 )
2022-03-15 19:51:36 -05:00
Charles Kerr
72a67054ea
refactor: fmt part 2 ( #2771 )
2022-03-15 09:52:16 -05:00
Charles Kerr
a942c67199
refactor: use fmt ( #2758 )
...
* deps: use fmt (8.1.1 tag) to build log strings
Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
2022-03-13 23:43:35 -05:00
Charles Kerr
91d5388954
fix: memory corruption in RPC when fetching torrent piece info ( #2762 )
...
Thanks to MatanZ for finding and tracking down this problem
Fixes #2757 .
2022-03-12 10:39:34 -06:00
Charles Kerr
749bb591fb
feat: stop logging repetitive warnings ( #2756 )
...
Fixes #295
2022-03-11 16:06:58 -06:00
Charles Kerr
d2f8e1d4e0
refactor: set logging levels ( #2755 )
2022-03-11 15:09:22 -06:00
Charles Kerr
af339a15ed
refactor: remove deep logging ( #2749 )
...
* refactor: remove "deep logging"
2022-03-09 23:51:14 -06:00
Charles Kerr
1bafbd18ac
chore: add more descriptive assertion in bitfield ( #2748 )
...
Related to #2727
2022-03-09 17:43:42 -06:00
Charles Kerr
7a227917ff
fix: rpc-server shutdown assertion failure ( #2747 )
...
Fixes #2742 .
2022-03-09 11:13:51 -06:00
Charles Kerr
0ac8c6079a
refactor: remove redundant MAX_BLOCK_SIZE constant ( #2740 )
2022-03-04 23:35:22 -08:00
Charles Kerr
cdd819772d
feat: tr_runInEventThread() now takes std::function, typesafe args ( #2739 )
2022-03-04 20:26:03 -08:00
Charles Kerr
8d8ea2f4df
perf: use condition variables during tr thread startup ( #2737 )
...
* perf: use condition variables during tr thread startup
2022-03-04 14:43:56 -08:00
Charles Kerr
0cd3eb26ff
fix: webseed assertion failures ( #2735 )
2022-03-04 12:00:42 -08:00
LaserEyess
377c335d0f
fix broken ip address string size on windows ( #2733 )
...
Make sure the buffer is at least as big as an ipv6 address
Co-authored-by: LaserEyess <LaserEyess@users.noreply.github.com>
2022-03-03 21:17:28 -08:00
Charles Kerr
60ef1abadf
refactor: tr_torrents ( #2722 )
...
* refactor: add tr_torrents container
2022-03-01 15:06:29 -08:00
Charles Kerr
d115ee6dfb
refactor: remove utils dep from peer-io ( #2719 )
2022-02-28 14:26:26 -08:00
LaserEyess
3bc21fe8a6
fixup: unix socket implementation changes ( #2707 )
...
* Use std::unique_ptr for bindAddress
* fixup: unix socket implementation changes
Assortment of changes and comments from #2574
- actually assign variables in the tr_rpc_address union for ipv4 and
ipv6
- use std::size() instead of std::string.length()
- add [[maybe_unused]] to bindUnixSocket() args for Windows
- fix error log for windows to to actually print a string instead of
an enum int
- use C++ style cast for ecvonnlistener_new_bind()
- refactor rpc URL log line to only substitute a single string
- remove redundant tr_rpc+address_is_valid() check
* change TrUnixSocketPrefix to std::string_view
This allows for removing runtime overhead of strlen() in a few places.
Co-authored-by: WeebDataHoarder <57538841+WeebDataHoarder@users.noreply.github.com>
Co-authored-by: LaserEyess <LaserEyess@users.noreply.github.com>
2022-02-27 14:05:08 -08:00
Charles Kerr
2c7e167436
chore: exploratory change for #2571 ( #2717 )
...
This _may_ solve the problem by calling tier.useNextTracker(); but if not, it also adds new assertions to try and fail sooner if the announcer gets into a bad state.
2022-02-26 11:53:34 -06:00
Charles Kerr
1598774b8d
refactor: use std::map for handshake tracking ( #2715 )
2022-02-26 00:03:32 -06:00
Charles Kerr
70cce3abeb
perf: do not block on upnpDiscover() call during startup ( #2714 )
...
* perf: upnpDiscover() is a blocking call that can run for *seconds* on
some routers. Move it to a worker thread where it won't block startup.
2022-02-25 19:26:31 -06:00
Charles Kerr
412ebc63c6
fixup: webseed ( #2712 )
...
* fixup! refactor: tr_webseed simplification (#2613 )
call connection_limiter.taskStarted in the right place
* perf: put web thread to sleep when inactive
2022-02-25 14:45:00 -06:00
Charles Kerr
4450973d94
feat: stop announcing on not-registered tracker error ( #2708 )
...
Fixes #2051 .
2022-02-25 00:26:19 -06:00
Charles Kerr
e94ddc82fc
refactor: use std::string in tr_net_strerror() ( #2706 )
2022-02-24 18:53:01 -06:00
SweetPPro
943b57979f
support for resuming magnet links ( #2702 )
...
* support for resuming magnet links
magnet links are now saved as a text file the `Torrents` folder as `.magnet` files.
2022-02-24 15:52:29 -06:00
Charles Kerr
abfd47a4a8
refactor: remove unused tr_block_info.n_blocks_in_piece ( #2704 )
2022-02-24 12:14:46 -06:00
Charles Kerr
9c3acc7e8a
fixup: handle unhandled scrape/announce responses ( #2701 )
...
followup to the #2531 benc refactor
2022-02-24 07:59:58 -06:00
Charles Kerr
c1c1f7ac00
fix: allow 0-byte files when creating torrents ( #2698 )
...
Fixes #1453 .
2022-02-23 21:16:51 -06:00
Charles Kerr
cfb92c47f0
feat: warn when creating torrents with nonportable filenames ( #2695 )
...
* feat: check new torrents for nonportable filenames
* fix: parse torrents even if they have nonportable filenames in the info dict's 'file' string
2022-02-23 17:38:07 -06:00
LaserEyess
706735ca88
Support binding the RPC to a Unix socket on *nix platforms ( #2574 )
...
* Support binding the RPC to a Unix socket on *nix
This commit adds unix socket support for a RPC. Some refactoring was
required in order to split out the RPC server's address struct from the
normal network address struct used for peers. It would cause
unacceptable overhead to add the unix socket length to the union.
Co-authored-by: Malte Voos <malte@malvo.org>
* add RPC socket mode to control unix socket perms
Unix socket permissions are important to control for security reasons,
and libevent defaults to 0755, which may not be what users want.
Co-authored-by: LaserEyess <LaserEyess@users.noreply.github.com>
Co-authored-by: Malte Voos <malte@malvo.org>
2022-02-23 15:09:54 -06:00
Charles Kerr
13ad2b58dc
refactor: always use a blocksize of 16 KB ( #2694 )
...
Fixes #99 .
2022-02-23 14:25:06 -06:00
Charles Kerr
a0c25b21af
fixup! refactor: tr_web ( #2633 ) ( #2693 )
...
race condition in TR_ASSERT
2022-02-23 11:00:40 -06:00