Charles Kerr
7dd55b64e1
fix: close all timers before destroying the event loop ( #3679 )
2022-08-19 19:28:24 -05:00
Charles Kerr
dde626d5e5
refactor: remove unused ( #3675 )
...
* refactor: remove unused define TR_PATH_DELIMITER_STR
* refactor: make TR_DEFAULT_BIND_ADDRESS_IPV4 private
* refactor: make TR_DEFAULT_BIND_ADDRESS_IPV6 private
* refactor: make TR_DEFAULT_RPC_HOST_WHITELIST private
* refactor: remove unused function tr_sessionSetRPCUrl()
* refactor: remove unused function tr_sessionGetRPCUrl()
* refactor: remove unused field native_local_path_prefix
* refactor: remove unused field native_unc_path_prefix
2022-08-18 22:47:23 -05:00
Charles Kerr
c625ec7e0f
refactor: make tr_session.rpc_server_private_ ( #3646 )
...
* refactor: make tr_session.rpc_server_ private
* chore: sort some fields to reduce number of padding holes
* chore: remove unused forward declarations
* refactor: aggregate tr_bitfield in tr_turtle
* chore: remove unused forward declarations
* chore: remove unused forward declarations
2022-08-15 16:25:55 -05:00
Charles Kerr
0fbfed60b1
refactor: make tr_session.speed_limit_Bps_ private ( #3645 )
...
* refactor: make tr_session.speed_limit_Bps_ private
* refactor: make tr_session.is_utp_enabled_ private
* refactor: make tr_session.is_prefetch_enabled_ private
* refactor: make tr_session.is_ratio_limited_ private
* refactor: make tr_session.upload_slots_per_torrent_ private
* refactor: make tr_session.peer_id_ttl_hours_ private
* refactor: make tr_session.blocklists_ private
* refactor: make tr_session.umask_ private
* refactor: make tr_session.evdns_base_ private
* fixup! refactor: make tr_session.blocklists_ private
* refactor: make tr_session.default_trackers_ private
* refactor: make tr_session.idle_limit_minutes_ private
* refactor: make tr_session.WebMediator private
* refactor: make tr_session.session_id_ private
* refactor: make tr_session.peer_socket_tos_ private
2022-08-15 12:48:05 -05:00
Charles Kerr
a4c1a23fae
refactor: make tr_session.is_incomplete_file_naming_enabled_ private ( #3642 )
...
* refactor: make tr_session.is_incomplete_file_naming_enabled_ private
* refactor: make session callback setters constexpr
* refactor: make tr_session.is_port_random_ private
* refactor: make tr_session.desired_ratio_ private
* refactor: make tr_session.is_pex_enabled_ private
* refactor: make tr_session.is_idle_limited_ private
2022-08-14 19:33:28 -05:00
Charles Kerr
44a291ca39
refactor: remove tr_session nonmember functions ( #3641 )
2022-08-14 14:41:57 -05:00
Charles Kerr
6beca85ae2
refactor: make tr_session.rpc_func_ private ( #3640 )
2022-08-14 10:40:03 -05:00
Charles Kerr
08ec882055
refactor: remove tr_isSession() ( #3638 )
2022-08-14 09:16:08 -05:00
Charles Kerr
5c8695025a
refactor: make tr_session.is_closing_private_ ( #3637 )
2022-08-13 20:04:36 -05:00
Charles Kerr
f6bf652043
refactor: make tr_session.peer_count private ( #3635 )
2022-08-13 17:41:42 -05:00
Charles Kerr
ed6ee619a6
refactor: make tr_session.queue fields private ( #3634 )
2022-08-13 14:56:10 -05:00
Charles Kerr
403e81e163
refactor: make tr_session.web_mediator_ private ( #3633 )
2022-08-13 13:36:34 -05:00
Charles Kerr
c7466b3ff4
fix: coverity warnings ( #3632 )
...
* fix: uninitialized field natpmp
* fix: unchecked downcast result
* fix: potential tr_error leak
* fix: potential tr_error leak
* fix: potential tr_error leak
* fix: potential nullptr dereference in test fixtures
* fix: handshake fields not initialized in constructor
* chore: cast unchecked return value to void
* chore: cast unchecked return value to void
* chore: cast unchecked return value to void
* chore: make single-arg constructors explicit
* fix: code smell make variable a pointer-to-const
* fix: code smell make variable a pointer-to-const
* chore: make single-arg constructors explicit
* chore: silence sonarcloud false warning on commented-out-code
* chore: fix code smell use std::array
* chore: make EvTimer::handleTimer() const
* chore: mark tr_bandwidth remove_child as noexcept
2022-08-13 12:11:07 -05:00
Charles Kerr
1c8032d23a
fix: tr_session field order ( #3630 )
2022-08-12 12:22:23 -05:00
Charles Kerr
7c5862a5f5
refactor: remove tr_new, tr_free pt. 1 ( #3626 )
...
* refactor: tr_torrentGetMetadataPiece() returns an optional vector
* refactor: use tr_pathbuf in create_temp_path()
* refactor: use tr_pathbuf in win32 create_temp_path()
* refactor: use std::vector in isPeerInteresting()
* refactor: remove tr_new0 from tr_peerMgrPeerStats()
* refactor: remove tr_new0 from rechokeUploads()
* refactor: silence clang nullptr dereference warning
* refactor: make tr_natpmp a C++ class
* refactor: use std::string in tr_log_message
2022-08-11 19:59:58 -05:00
Charles Kerr
e781ee1773
refactor: timer pt 3 ( #3624 )
2022-08-11 14:30:00 -05:00
Charles Kerr
63eab54fd5
refactor: timer pt 2 ( #3617 )
...
* feat: add convenience variants of TimerMaker::create()
* refactor: use libtransmission::Timer in peer-mgr
* refactor: use libtransmission::Timer in peer-msgs
* refactor: use libtransmission::Timer in tr-utp
* refactor: use libtransmission::Timer in tr-dht
* refactor: use libtransmission::Timer in port-forwarding
* refactor: use libtransmission::Timer in webseed
* refactor: use libtransmission::Timer in tr-lpd
* refactor: use libtransmission::Timer in rpc-server
* chore: remove unused function tr_timerAdd()
* chore: remove unused function tr_gettimeofday()
* fixup! chore: remove unused function tr_timerAdd()
* fixup! refactor: use libtransmission::Timer in port-forwarding
2022-08-11 12:28:37 -05:00
Charles Kerr
b49cccbd3e
refactor: add timer class ( #3603 )
...
Wraps around evtimer so that some of the codebase can use libevent without coupling to it.
2022-08-08 17:53:20 -05:00
Charles Kerr
83ffa6bf1b
chore: fix spdx abbreviations ( #3602 )
2022-08-08 13:05:39 -05:00
Charles Kerr
31a733fab7
refactor: make tr_session_id a class ( #3598 )
2022-08-06 14:27:37 -05:00
Charles Kerr
90f08f4fa1
refactor: fix recent sonarcloud warnings ( #3593 )
2022-08-05 20:37:21 -05:00
Charles Kerr
dab81c1af6
fix: readability-inconsistent-declaration-parameter-name warnings in libtransmission ( #3572 )
2022-08-03 01:15:37 -05:00
Charles Kerr
526d9fcdc4
refactor: aggregate bindinfo in tr_session ( #3545 )
2022-07-29 08:11:47 -05:00
Charles Kerr
9c7fcf85cf
refactor: tr_stats ( #3542 )
2022-07-28 18:56:40 -05:00
Charles Kerr
b889f0c395
chore: iwyu cstring, cstdlib, optional, unordered_set ( #3532 )
2022-07-27 16:53:39 -05:00
Charles Kerr
4f7051fe7f
refactor: make tr_session's directory fields private ( #3516 )
2022-07-23 02:13:18 -05:00
Charles Kerr
47fe7c47d2
refactor: replace per-torrent callbacks with per-session ones. ( #3495 )
2022-07-23 01:04:34 -05:00
Charles Kerr
0da1cbb6ec
fix: 3508 location invalidation ( #3511 )
...
* Revert "refactor: remove tr_sessionGetConfigDir() (#3506 )"
This reverts commit c50da43ae0 .
* Revert "fix: do not leak in tr_getWebClientDir() (#3502 )"
This reverts commit 5a75e37033 .
2022-07-22 00:52:48 -05:00
Charles Kerr
c50da43ae0
refactor: remove tr_sessionGetConfigDir() ( #3506 )
...
* refactor: remove tr_sessionGetConfigDir() from GTK client
* refactor: remove tr_sessionGetConfigDir() from daemon
* refactor: remove tr_sessionGetConfigDir()
* refactor: remove tr_getTorrentDir()
* fixup! refactor: remove tr_sessionGetConfigDir()
2022-07-21 20:12:45 -05:00
Viacheslav Chimishuk
de7986e01d
Add announce-ip and announce-ip-enabled parameters. ( #3461 )
2022-07-20 14:04:52 -05:00
Charles Kerr
71bc7143b8
Revert "refactor: tr_address cleanup ( #3422 )" ( #3426 )
...
This reverts commit 9a44eeaa27 .
2022-07-09 18:44:20 -05:00
Charles Kerr
9a44eeaa27
refactor: tr_address cleanup ( #3422 )
...
* refactor: remove tr_address_compare()
* refactor: remove tr_address_to_string()
* refactor: remove NUM_TR_AF_INET_TYPES
* refactor: replace tr_sessionGetPublicAddress with tr_session::getPublicAddress()
* refactor: tr_peerIo() takes tr_address by value
* refactor: replace tr_sessionIsAddressBlocked with tr_session::isAddressBlocked()
* refactor: tr_peerMgrAddIncoming now takes tr_address by value
* refactor: replace tr_address_is_valid_for_peers() with tr_address.isValidForPeers()
* refactor: tr_netOpenPeerSocket takes tr_address by value
* refactor: remove tr_generateAllowedSet()
* refactor: setup_sockaddr takes a tr_address by value
* refactor: tr_netBindTCP() takes a tr_address by value
* refactor: tr_dhtAddNode() takes a tr_address by value
* refactor: remove tr_address_from_string()
* refactor: rename tr_address.isValidForPeers() to .isValidPeerAddress()
* refactor: replace tr_address_from_sockaddr_storage() with tr_address::fromSockaddrStorage()
* refactor: minor cleanup to tr_address::readable()
2022-07-08 13:23:41 -05:00
Charles Kerr
745adf8332
Update libutp to 3.4+ (TRAC-5888) ( #3416 )
...
Co-authored-by: Mike Gelfand <mikedld@mikedld.com >
2022-07-08 10:13:22 -05:00
Charles Kerr
85a7d0e09d
refactor: rename Bandwidth as tr_bandwidth ( #3379 )
2022-06-29 15:08:58 -05:00
Dmytro Lytovchenko
d34bd0b4d6
refactor: modernize cache.cc ( #3108 )
...
* Modernize cache.cc: Convert tr_cache to a class
* Modernize cache.cc: Replaced ptrArray with vector
* refactor: Cache now takes a tr_torrents reference
* refactor: add Key type to Cache
* refactor: avoid std::back_inserter
* refactor: add Cache::flushOldest()
2022-06-11 19:46:30 -05:00
Charles Kerr
d1030b58b1
perf: use std::string_view for compile-time UserAgent ( #3161 )
2022-05-31 09:28:01 -05:00
Charles Kerr
46eb379205
fix: ESPIPE "illegal seek" error while seeding ( #3137 )
...
* fix: ESPIPE "illegal seek" error while seeding
The root cause is createSocket returning `{}` instead of `TR_BAD_SOCKET`
when we have too many peers in use. This defaulted to fd 0, which wound
up closing stdin.
Commit also includes some const-correctness changes made while tracking
the problem down.
2022-05-25 18:16:15 -05:00
Charles Kerr
a28b07b390
Revert "refactor: move tr_torrent callbacks to tr_session ( #3003 )" ( #3104 )
...
This reverts commit 27fbfd8da6 .
Fixes #3088 .
2022-05-16 13:48:43 -05:00
Dmytro Lytovchenko
aa502f9312
Modernize blocklist.cc: Rename, move members inside struct ( #2010 )
...
* Modernize blocklist.cc to C++
* Modernize blocklist.cc: Renamed BlocklistFile struct and moved IPv4 range struct inside it
Modernize bandwidth.cc: Review notes; Promote container of blocklists in session to vec of unique_ptrs
2022-05-15 11:32:22 -05:00
Charles Kerr
27fbfd8da6
refactor: move tr_torrent callbacks to tr_session ( #3003 )
...
* refactor: move tr_torrent callbacks to tr_session
* Support tr_sessionSet* (#3044 )
Co-authored-by: Antoine Cœur <coeur@gmx.fr >
2022-05-14 10:00:13 -05:00
Charles Kerr
5dbe1f4669
refactor: replace tr_fdlimit with tr_open_files ( #3016 )
2022-04-28 21:35:47 -05:00
Charles Kerr
aa2bb367ab
chore: iwyu cleanup ( #2981 )
2022-04-24 20:49:52 -05:00
Charles Kerr
0a3018d706
refactor: decouple peer limits from fdlimit ( #2969 )
2022-04-22 16:15:06 -05:00
Charles Kerr
7918113e0b
refactor: partially c++ifiy tr_rpc_server ( #2965 )
...
Replace the older C-style API methods to be class methods.
2022-04-22 09:19:20 -05:00
Charles Kerr
3643a8aee5
refactor: prefer std::vector as the default container ( #2964 )
2022-04-22 08:08:02 -05:00
Charles Kerr
32f854a7cf
refactor: add a tr_port safety class ( #2952 )
2022-04-21 10:58:13 -05:00
Charles Kerr
345b71ffda
refactor: use std::vector for tr_torrents.removed_ ( #2943 )
2022-04-18 14:24:20 -05:00
Charles Kerr
46cc95f72e
refactor: remove unused functions ( #2863 )
...
* refactor: annotate nodiscard, constexpr, noexcept methods
* refactor: remove unused tr_blocklistFileExists()
* refactor: remove unused tr_blocklistFileIsEnabled()
* refactor: remove unused tr_ctorGetContents
* refactor: remove unused tr_error_is_set()
* refactor: remove unused tr_handshakeGetAddr()
* refactor: remove unused tr_ctorSetLabels()
* refactor: remove unused tr_http_escape_sha1()
* refactor: remove unused tr_lpdEnabled()
* refactor: remove unused tr_ptrArrayPop()
* refactor: remove unused tr_torrentClearIdleLimitHitCallback()
* refactor: remove unused tr_torrentFindFromHash()
* refactor: remove unused tr_sha1_to_string()
* refactor: remove unused tr_torrents::get()
* refactor: remove unused tr_isEncryptionMode()
* refactor: remove unused tr_isPreallocationMode()
* refactor: remove unused tr_ptrArrayBack()
* refactor: remove unused tr_ptrArrayClear()
* refactor: remove unused tr_torrents::get()
* refactor: remove unused Session::torrentSet()
* refactor: remove unused peer_atom comparison operators
* refactor: remove unused peer_atom::compare()
* refactor: remove unused Qt variantInit(tr_variant*, unsigned)
2022-04-01 21:55:30 -05:00
Charles Kerr
ca5799a4a8
refactor: annotate nodiscard, constexpr, noexcept methods ( #2862 )
2022-04-01 19:48:09 -05:00
Charles Kerr
22499c677a
refactor: aggregate bandwidth objects ( #2783 )
2022-03-18 11:34:29 -05:00