Charles Kerr
8a1a6dba49
perf: avoid extra heap alloc in block cache ( #5522 )
2023-05-13 14:16:00 -05:00
Charles Kerr
7cabeff24f
perf: use std::bitset instead of tr_bitfield in incoming_piece_data ( #5519 )
...
Since max size is small and known at compile time, we can avoid extra heap allocations
2023-05-12 19:31:59 -05:00
Charles Kerr
c2d48a7d11
refactor: use BufferReader, BufferWriter as function args ( #5518 )
2023-05-12 18:10:08 -05:00
Charles Kerr
51fd7056ba
refactor: add BufferReader, BufferWriter::reserve_space() ( #5513 )
2023-05-12 11:15:15 -05:00
Charles Kerr
0d3b321bac
refactor: use snake_case for libtransmission class methods ( #5497 )
2023-05-05 23:11:05 -05:00
Charles Kerr
9d2507c7e3
refactor: snake_case in libtransmission class methods ( #5428 )
2023-04-22 20:25:55 -05:00
Charles Kerr
ce4ffc3bdb
fix: 5422 use-after-free in peerMsgs::canRead ( #5425 )
2023-04-20 13:18:53 -05:00
Charles Kerr
a8e01ac38d
fix: minor warnings ( #5409 )
...
* chore: fix readability-qualified-auto warnings
* chore: fix clang-analyzer-core.uninitialized.Branch warning
* fix: collision of key 'ERROR' in transmission-qt
* chore: silence -Wshadow warning
* chore: silence warning C4100: 'iter': unreferenced formal parameter
* chore: fix warning C4127: conditional expression is constant warning
2023-04-17 23:11:09 -05:00
Charles Kerr
7d86d67bc7
chore: prefer fmt/core.h over fmt/format.h ( #5404 )
2023-04-16 15:34:19 -05:00
Charles Kerr
3af9645615
refactor: add tr_address::is_any() ( #5398 )
...
As suggested by @tearfur
Xref: https://github.com/transmission/transmission/pull/5329#discussion_r1166236165
2023-04-15 19:30:20 -05:00
Charles Kerr
e91af26923
perf: remove staging step for outbound peer msgs ( #5394 )
...
Write non-piece peer messages directly to the peer's outbuf instead of
waiting for a pulse() message to refill it. This can help with latency
sending messages out.
Change the semantics of `tr_peerIo::get_write_buffer_space()`: this is
now interpreted as the preferred minimum size, rather than the maximum.
It's OK to enqueue an outgoing piece message as long as there's _some_
space left, even if the message is larger than that space.
Build peer messages with template fold expressions. This lets us move
all the message-building to a single function and add some sanity checks
to the outgoing messages.
2023-04-14 19:31:09 -05:00
Charles Kerr
d445c7f061
fix: crash in peer stats ( #5279 )
2023-04-14 16:03:08 -05:00
Charles Kerr
d72cb67cfb
chore: include directory name in libtransmission #includes ( #5308 )
2023-04-14 14:33:23 -05:00
Charles Kerr
3aeefec203
chore: remove unused header includes ( #5227 )
2023-03-14 18:36:15 -05:00
Charles Kerr
dabd29f2b2
fix: std::clamp() assertion failure in maxAvailableReqs() ( #5203 )
2023-03-11 22:25:21 -06:00
Charles Kerr
47001a394e
fix: 7f9ef4730
use-after-free in peerMsgs::canRead ( #5152 )
2023-03-05 11:50:11 -06:00
Charles Kerr
7f9ef4730e
fix: assertion failure in readBtPiece() ( #5097 )
2023-03-03 17:43:51 -06:00
Charles Kerr
4461aa68d9
fix: handle block fragments that arrive from peers out-of-order ( #4890 )
2023-02-14 13:50:28 -06:00
Julien
4b8cfa2e57
chore: update copyrights to 2023 ( #4834 )
2023-02-11 14:49:42 -06:00
Charles Kerr
724a0f48f0
fix: clang-tidy header warnings ( #4686 )
2023-01-28 17:58:20 -06:00
Charles Kerr
948f597d15
refactor: buffer snake case ( #4682 )
2023-01-27 20:12:09 -06:00
Charles Kerr
7367d465b5
style: use the new paragraph comment style everywhere ( #4634 )
2023-01-22 13:21:30 -06:00
Charles Kerr
d9278bd167
refactor: misc-use-anonymous-namespace pt. 5 ( #4552 )
2023-01-07 16:55:00 -06:00
Charles Kerr
9678b26984
refactor: misc-use-anonymous-namespace pt. 3 ( #4539 )
2023-01-07 08:27:54 -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
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
Charles Kerr
ab9e971903
refactor: tr_globalIPv6() returns a std::optional<tr_address> ( #4464 )
2022-12-25 07:55:51 -06:00
Charles Kerr
07a5e560b7
fixup: peer counts ( #4445 )
2022-12-22 17:43:36 -06:00
Charles Kerr
e6d75a4b77
refactor: tr_peerIo ( #4372 )
2022-12-16 01:23:12 -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
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
728e5b8350
refactor: stop tracking peerIo creation time ( #4300 )
2022-12-02 10:39:46 -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
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
f27c5fa0fa
refactor: make some local pointer vars pointer-to-const ( #4262 )
2022-11-28 09:45:39 -06:00
Charles Kerr
554ba06ae2
fix: coverity warnings, sonarcloud code smells ( #4232 )
2022-11-24 10:17:02 -06:00
Charles Kerr
a8f2b840f7
perf: improve tr_peerMgrGetDesiredAvailable() ( #4226 )
2022-11-22 23:26:10 -06:00
Charles Kerr
09bb1a60f0
refactor: add more nodiscard, constexpr, and noexcept ( #4089 )
2022-11-03 18:08:02 -05:00
Charles Kerr
611d36ac84
refactor: decouple session settings from the session class ( #4053 )
2022-11-01 19:32:26 -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
A Cœur
12e564096b
fix: "Implicit conversion loses integer precision" warnings ( #3960 )
2022-10-25 11:14:42 -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
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
Charles Kerr
450f1dcadc
refactor: extract `tr_buffer` class from `tr_peerIo` ( #3986 )
2022-10-19 11:42:08 -05:00
Charles Kerr
79068c512a
refactor: decouple tr-dht from peerMsgs, peerMgr ( #3966 )
...
* refactor: decouple peer-mgr from tr-dht
* refactor: remove tr_dhtPort()
* refactor: decouple peer-msgs from tr-dht
* refactor: make tr_udp_core.udp_port_ const
* refactor: rename tr_udp_core::dhtUninit() as startShutdown()
2022-10-15 08:22:43 -05:00
Charles Kerr
0a0c15d17c
fix: circular dependency in udp core and dht init ( #3862 )
2022-10-02 13:18:23 -05:00
Charles Kerr
257d98545b
refactor: add tr_port_forwarding::Mediator ( #3855 )
...
* refactor: add a Mediator class to decouple tr_session and tr_port_forwarding
* refactor: add tr_port_forwarding::Mediator::privatePeerPort()
* refactor: add tr_port_forwarding::Mediator::onPortForwarded()
* chore: avoid unnecessary include of timer.h in other headers
* refactor: use a uniform timerMaker() API in mediators
2022-10-01 09:12:49 -05:00