Charles Kerr
a400682247
refactor: remove unused tr_torrent fields ( #3013 )
...
* refactor: remove unused field tr_torrent.prefetchMagnetMetadata
* refactor: remove unused field tr_torrent.dhtAnnounce6InProgress
* refactor: remove unused field tr_torrent.dhtAnnounceInProgress
* refactor: fold etaULSpeed and etaDLSpeed into one field
* refactor: re-arrange fields to avoid padding
2022-04-28 11:52:07 -05:00
Charles Kerr
7c2477dddf
refactor: reduce field padding in some structs ( #3006 )
...
* refactor: use smaller integral types in tr_bandwidth
* refactor: re-arrange tr_torrent fields to avoid padding
* refactor: re-arrange tr_torrent fields to avoid padding
* refactor: re-arrange tr_announcer fields to avoid padding
2022-04-28 08:44:24 -05:00
Charles Kerr
bf655a921d
refactor: use smaller integral types in some structs ( #3005 )
2022-04-27 20:06:51 -05:00
Charles Kerr
304fffa6b3
refactor: intern tr_torrent.bandwidth_group_ ( #3000 )
...
Most use cases involve either (a) using the default group or (b) sharing
a group with other torrents. In both cases, using a tr_quark is cheaper
than a std::string.
2022-04-27 10:41:28 -05:00
Charles Kerr
ca13842c84
refactor: make tr_torrent::verify_state_ private ( #2982 )
2022-04-24 22:43:26 -05:00
Charles Kerr
a52edbcbbe
refactor: remove tr_announce_list.tiers ( #2960 )
2022-04-21 15:48:30 -05:00
Charles Kerr
18da7eb125
refactor: use std::vector<tr_quark> for torrent labels ( #2942 )
2022-04-18 00:53:48 -05:00
Charles Kerr
881860ac6f
refactor: remove tr_torrent.magicNumber ( #2927 )
2022-04-16 10:48:51 -05:00
Charles Kerr
2866638e1b
refactor: add tr_torrent_files::move() and remove() ( #2919 )
2022-04-15 18:39:04 -05:00
Charles Kerr
ec57d10954
refactor: tr_files::hasAnyLocalData() ( #2911 )
2022-04-13 21:41:06 -05:00
Charles Kerr
9f9f60f1e3
refactor: tr_block_info ( #2908 )
2022-04-13 20:22:59 -05:00
Charles Kerr
4a65956cc9
refactor: extract some file management into tr_files class ( #2906 )
2022-04-12 10:00:02 -05:00
Charles Kerr
80dd460773
refactor: annotate nodiscard, constexpr, noexcept methods ( #2879 )
2022-04-04 22:51:56 -05:00
Charles Kerr
1cc9da26ba
fix: sonarcloud ( #2865 )
...
* refactor: implement FileTreeItem::children_ with a std::vector
* fix: std::move should not be called on forwarding reference
* fix: uninitialized scalar variable
* fix: unchecked return value from library
* fix: dereference before null check
* fix: unchecked return value from library
* fix: unchecked return value from library
* fixup! refactor: implement FileTreeItem::children_ with a std::vector
* fix: signed-unsigned comparison in libtransmission tests
* fix: avoid unnecessary copy by using const reference
* fix: function should be declared const
* refactor: use fmt::format to build log timestamps
* fix: use init-statement to reduce variable scope
* fixup! refactor: use fmt::format to build log timestamps
* fix: remove tau_tracker destructor for rule-of-zero
* fix: remove tr_peerIo destructor for rule-of-zero
* Revert "fix: dereference before null check"
This reverts commit cd78967815
.
* fix: signed-unsigned comparison in libtransmission tests
* fix: use init-statement to reduce variable scope
* fix: extract nested code block into separate method
* fix: extract nested code block into separate method
* fix: extract nested code block into separate method
* fix: use init-statement to reduce variable scope
* fix: extract nested code block into separate method
* fix: signed-unsigned comparison in libtransmission tests
* fixup! fix: extract nested code block into separate method
* fix: mark possibly-unused as [[maybe_unused]]
* fix: invalid stack memory reference in tr_found_file_t
* fix: signed-unsigned comparison in libtransmission tests
2022-04-02 09:06:02 -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
SweetPPro
bfd7797c5e
fix: magnet link metainfo corrupted on restart ( #2790 )
2022-04-01 15:28:55 -05:00
Charles Kerr
1f15933fda
fix: incorrect magnet size calcuation in tr_completion ( #2856 )
2022-04-01 08:49:54 -05:00
Charles Kerr
f4afb76695
perf: replace tr_torrentFindFile2() with tr_torrrent.findFile() ( #2839 )
2022-03-30 13:25:41 -05:00
Charles Kerr
2f677aebb0
refactor: add tracer assertionf or bug #2727 ( #2836 )
2022-03-28 23:29:35 -05:00
Charles Kerr
2996e223dd
refactor: strbuf for metainfo files ( #2833 )
...
* refactor: tr_ctorSaveContents takes a string_view filename
* refactor: remove tr_ctorSaveMagnetContents
* refactor: announce_list::save takes a std::string_view
* refactor: magnet() takes an OutputIt arg
Generate the magnet link URL into an output iterator
* refactor: remove deprecated calls to tr_http_escape
* refactor: tr_torrent.torrentFile takes an OutputIterator
* refactor: tr_torrent.torrentFile returns a tr_pathbuf
* refactor: tr_torrent_metainfo.makeFilename returns a tr_pathbuf
* refactor: use tr_urlbuf in announcer-http
2022-03-28 17:13:32 -05:00
Charles Kerr
44e30bf092
perf: avoid excess filesystem checks ( #2786 )
2022-03-18 16:31:25 -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
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
d2f8e1d4e0
refactor: set logging levels ( #2755 )
2022-03-11 15:09:22 -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
13ad2b58dc
refactor: always use a blocksize of 16 KB ( #2694 )
...
Fixes #99 .
2022-02-23 14:25:06 -06:00
Charles Kerr
7238724318
refactor: webseed ( #2689 )
...
* refactor: reduce nested conditional webseed logic
* refactor: use tr_block_info::Location in webseed
* request larger chunks at a time from webseeds
* fix: CURLOPT_MAXREDIRS to safeguard against loops
Discussion at https://trac.transmissionbt.com/ticket/6110 .
Reported by @x190 and @cfpp2p a few years back.
2022-02-23 07:38:18 -06:00
Charles Kerr
78ad90a4c5
refactor: use tr_block_info::Location in inout.cc ( #2658 )
2022-02-19 10:07:08 -06:00
Charles Kerr
f88f3c4b03
Feat: add tr_block_info::Location ( #2649 )
2022-02-18 17:17:19 -06:00
Charles Kerr
02b6cc76d1
feat: add tr_torrentSetTrackerList(), tr_torrentGetTrackerList() ( #2642 )
...
Add a getter/setter for torrent announce URLs as text that can be copied
and pasted: one URL per line, with a blank line between tiers.
C API: tr_torrentGetTrackerList() and tr_torrentSetTrackerList()
RPC APi: `trackerList` in `torrent-get` and `torrent-set`.
This deprecates `trackerAdd`, `trackerRemove`, and `trackerEdit`
from the RPC API.
2022-02-18 11:52:01 -06:00
LaserEyess
5565255d85
add labels to torrent-add rpc method ( #2539 )
...
This commit adds labels to the torrent-add method, allowing RPC users to
specify labels when adding a torrent. Labels metadata is commonly known
when adding torrents, so this removes the need to send another
torrent-set call to add labels.
Additionally, transmission-remote is updated to handle labels in
torrent-add.
Co-authored-by: LaserEyess <LaserEyess@users.noreply.github.com>
2022-02-03 00:02:30 -06:00
Charles Kerr
26bb9f3440
fix: sonarcloud code smells ( #2486 )
2022-01-23 18:53:35 -06:00
Charles Kerr
b45c831bcb
refactor: use C++ objects in announcer ( #2474 )
2022-01-22 23:41:01 -06:00
Charles Kerr
df1cca9b57
chore: update copyright years, make notices consistent ( #2463 )
2022-01-20 12:27:56 -06:00
Charles Kerr
8d75736ad1
fix: empty torrent filename ( #2435 )
...
fix torrents readded due to unremoved cfg files.
2022-01-17 23:14:00 -06:00
Charles Kerr
aa2183c9c5
fix: torrents readded due to unremoved cfg files ( #2433 )
...
Fixes #2430 .
When removing a torrent, try to remove config filenames under both old
and new filename formats. This prevents torrents from being incorrectly
re-added when old-format files aren't removed.
2022-01-17 20:36:41 -06:00
Charles Kerr
db23ca4c6b
refactor: replace tr_info with tr_torrent_metainfo ( #2397 )
...
* refactor: replace tr_info with tr_torrent_metafo
2022-01-15 13:33:57 -06:00
Charles Kerr
b0ee4007ff
refactor: include cleanups ( #2392 )
...
* refactor: include <memory> when using shared_ptr or unique_ptr
* refactor: include <cstdio> iff we use it
* refactor: include <cstring> iff we use it
* refactor: include <cstdlib> iff we use it
* refactor: include <string_view> or <string> iff we use it
* refactor: include <array> iff we use it
* refactor: include <ctime> iff we use it
* refactor: include <cctype> iff we use it
* refactor: misc #include cleanups in libtransmission
2022-01-12 20:13:58 -06:00
Charles Kerr
dfc06fe918
refactor: use std::vector in tr_info ( #2386 )
2022-01-09 10:55:09 -06:00
Charles Kerr
49f2823d6f
refactor: use std::string in tr_info ( #2384 )
2022-01-08 17:41:05 -06:00
Charles Kerr
79d244db82
refactor: rename tr_torrent.infoDictSize() ( #2383 )
2022-01-08 14:05:38 -06:00
Charles Kerr
8b65b660c8
refactor: use std::string in tr_file ( #2382 )
2022-01-08 12:53:35 -06:00
Charles Kerr
385a119fb1
refactor: make tr_torrent aggregates tr_block_info instead of subclassing ( #2376 )
2022-01-07 13:13:37 -06:00
Charles Kerr
a5c6168805
refactor: make tr_buildPath() private ( #2374 )
2022-01-02 11:51:59 -06:00
Charles Kerr
eafbf59832
refactor: avoid referencing tr_file struct directly ( #2373 )
2022-01-01 19:25:25 -06:00
Charles Kerr
6149870540
refactor: remove tr_file.priv ( #2349 )
2021-12-26 16:04:20 -06:00
Charles Kerr
af183b1423
chore: remove tr_pieceOffset() ( #2346 )
2021-12-26 11:25:51 -06:00
Charles Kerr
a515c1d94b
refactor: use tr_torrent_metainfo in tr ctor ( #2345 )
2021-12-26 10:25:07 -06:00
Charles Kerr
f3228e9670
refactor: further decouple tr_torrent and tr_info ( #2336 )
2021-12-24 15:12:33 -06:00
Charles Kerr
deee2b043e
refactor: take string_view in tr_loadFile(), tr_saveFile() ( #2335 )
2021-12-24 13:37:34 -06:00
Charles Kerr
33553c5331
refactor: move tr_ioFindFileLocation() to tr_file_piece_manager ( #2334 )
2021-12-24 00:39:55 -06:00
Charles Kerr
dd1379b0b6
refactor: add tr_interned_string ( #2332 )
2021-12-23 11:16:05 -06:00
Charles Kerr
bd68d3a2fd
refactor: use tr_sha1_digest_t everywhere ( #2330 )
2021-12-21 16:14:15 -06:00
Charles Kerr
b9406dfebb
refactor: even more torrent housekeeping ( #2323 )
2021-12-16 22:51:53 -06:00
Charles Kerr
e4a172d39c
fix: sonarcloud ( #2322 )
...
* fix: sonarcloud warning - redundant cast
* fix: sonarcloud warning - init-statement
* fix: sonarcloud warning - init-statement
* fix: sonarcloud warning - move #include to top of file
* fix: sonarcloud warning - implicit conversion loses precision
* fix: sonarcloud warning - confirm safe use of strlen
* fix: sonarcloud warning - refactor code to not nest more than three deep
* iwyu: cstring
* iwyu: algorithm
2021-12-16 16:58:58 -06:00
Charles Kerr
b93f3f0463
refactor: more tr_torrent housekeeping ( #2320 )
2021-12-16 03:43:51 -06:00
Charles Kerr
4ea2429217
refactor: tr_torrent housekeeping ( #2319 )
2021-12-16 02:49:04 -06:00
Charles Kerr
42b1362760
refactor: tidy libtransmission includes ( #2316 )
2021-12-15 15:25:42 -06:00
Charles Kerr
1c848cf174
refactor: add tr_info accessors to tr_torrent ( #2314 )
...
* refactor: add tr_info accessors to tr_torrent
2021-12-15 09:53:20 -06:00
Charles Kerr
d00be0dec7
refactor: tr_torrentIsSeed() -> tr_torrent::isDone() ( #2313 )
2021-12-15 01:04:26 -06:00
Charles Kerr
68518bc307
refactor: make some tr_torrentFoo() methods member functions ( #2312 )
2021-12-14 23:48:56 -06:00
Charles Kerr
1e20d676c1
refactor: make tr_torrentInfo() private ( #2285 )
...
* refactor: make tr_torrentInfo() private
2021-12-14 15:59:44 -06:00
Charles Kerr
656df477f2
refactor: add tr_announce_list ( #2308 )
...
* refactor: add tr_announce_list (#2308 )
2021-12-14 14:59:40 -06:00
Charles Kerr
cec7685a64
refactor: remove unused tr_torrent.dnd_pieces_ ( #2296 )
2021-12-09 20:54:44 -06:00
Charles Kerr
0cedfec630
fixup! refactor: add tr_torrentTrackers() ( #2282 ) ( #2294 )
...
ensure announcer tracker count is correct
2021-12-09 20:03:26 -06:00
Charles Kerr
ab0c49859e
refactor: add tr_torrentTrackers() ( #2282 )
...
* refactor: add tr_torrentTrackers()
2021-12-08 10:55:52 -06:00
Charles Kerr
c46ce2da06
refactor: add tr_torrentWebseed(), tr_torrentWebseedCount() ( #2277 )
...
* refactor: add tr_torrentWebseedCount()
2021-12-07 12:11:28 -06:00
Charles Kerr
5096bbae9b
refactor: add tr_torrent::file() ( #2274 )
...
* refactor: add tr_torrent::fileCount()
2021-12-06 22:18:17 -06:00
Charles Kerr
867a131e1d
refactor: add tr_torrent::fileCount() ( #2273 )
...
Provide an accessor to get a torrent's file count.
This is an incremental step towards making tr_torrent's impl private.
2021-12-06 15:26:04 -06:00
Charles Kerr
e2be142ad6
fix: new warnings ( #2270 )
...
* fix: avoid potential resource leak in metainfo test
Xref: https://scan5.coverity.com/reports.htm#v48014/p10174/fileInstanceId=205022335&defectInstanceId=52337396&mergedDefectId=1494638
* fix: use-init-statement warning
Xref: https://sonarcloud.io/project/issues?id=transmission_transmission&issues=AX2MsJ_lWODkx6cuASq6&open=AX2MsJ_lWODkx6cuASq6
* fix: omit-redundant-override-specifier warning
Xref: https://sonarcloud.io/project/issues?id=transmission_transmission&issues=AX2MsJ5GWODkx6cuASq5&open=AX2MsJ5GWODkx6cuASq5
* fix: improper-use-of-negative-value warning
Xref: https://scan5.coverity.com/reports.htm#v48014/p10174/fileInstanceId=205020121&defectInstanceId=52337394&mergedDefectId=1494639
* fix: unchecked return value warning
Xref: https://scan5.coverity.com/reports.htm#v48014/p10174/fileInstanceId=205020168&defectInstanceId=52304887&mergedDefectId=1491438
* fix: potential-divide-by-zero warning
Xref: https://scan5.coverity.com/reports.htm#v48014/p10174/fileInstanceId=205020106&defectInstanceId=52337395&mergedDefectId=1494438
2021-12-05 21:12:21 -06:00
Charles Kerr
c656bee061
refactor: add tr_saveFile() ( #2267 )
...
* refactor: add tr_saveFile()
* refactor: add tr_ctorSaveContents()
2021-12-04 19:32:35 -06:00
Charles Kerr
35fe175f2a
refactor: add file-piece-map ( #2246 )
...
* refactor: add file-piece-map
* refactor: use tr_file_priorities
* refactor: use tr_files_wanted
2021-11-28 19:12:54 -06:00
Charles Kerr
34881f6295
refactor: make parts of tr file private ( #2241 )
...
* refactor: make parts of tr_file private
2021-11-27 21:17:47 -06:00
Charles Kerr
f6f0db75e1
fix: sonarcloud warnings / code smells ( #2242 )
...
* fix: use-init-statement
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX1f6EvHJiycnfA7gfrG\&open\=AX1f6EvHJiycnfA7gfrG
* fix replace-use-of-new warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX1ZNs41ZmlvCveKTzon\&open\=AX1ZNs41ZmlvCveKTzon
* fix has-virtual-functions-but-non-virtual-destructor warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX1ZNs72ZmlvCveKTzo6\&open\=AX1ZNs72ZmlvCveKTzo6
* fix make-variable-const warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX0_a_OVNJn7rAzml_7B\&open\=AX0_a_OVNJn7rAzml_7B
* fix remove-redundant-static-specifiers
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St-81usi2gyYkPTb\&open\=AX06St-81usi2gyYkPTb
* fix function-should-be-declared-const
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St-81usi2gyYkPTd\&open\=AX06St-81usi2gyYkPTd
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St-81usi2gyYkPTc\&open\=AX06St-81usi2gyYkPTc
* fix class-has-virtual-functions-but-non-virtual-destructor warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06Stz41usi2gyYkPTS\&open\=AX06Stz41usi2gyYkPTS
* fix remove-commented-out-code warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St241usi2gyYkPTT\&open\=AX06St241usi2gyYkPTT
* fix remove-commented-out-code warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St241usi2gyYkPTV\&open\=AX06St241usi2gyYkPTV
* fix has-virtual-functions-but-non-virtual-destructor warning
https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06St241usi2gyYkPTW\&open\=AX06St241usi2gyYkPTW
* fix remove-commented-out-code warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX06SuCA1usi2gyYkPTh\&open\=AX06SuCA1usi2gyYkPTh
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX0rAQvnfJ-O-YIDS9xF\&open\=AX0rAQvnfJ-O-YIDS9xF
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX0rAQvnfJ-O-YIDS9xG\&open\=AX0rAQvnfJ-O-YIDS9xG
* fix remove-redundant-access-specifier warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX1ZNs5tZmlvCveKTzor\&open\=AX1ZNs5tZmlvCveKTzor
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX01Itl7f_SST5i7BN1l\&open\=AX01Itl7f_SST5i7BN1l
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX0wDijI2l89lDvp1C9P\&open\=AX0wDijI2l89lDvp1C9P
* fix use-automatically-managed-memory-instead-of-new warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX1f6E6HJiycnfA7gfrI\&open\=AX1f6E6HJiycnfA7gfrI
* fix use-init-statement warning
Xref: https://sonarcloud.io/project/issues\?id\=transmission_transmission\&issues\=AX0l8vknEafnvRiIHUEv\&open\=AX0l8vknEafnvRiIHUEv
* fixup! fix has-virtual-functions-but-non-virtual-destructor warning
2021-11-27 19:58:35 -06:00
Charles Kerr
dc36787378
fix: coverity warnings ( #2229 )
...
* fix: coverity uninitialized member warning
Xref: https://scan5.coverity.com/reports.htm\#v48014/p10174/fileInstanceId\=204371746\&defectInstanceId\=52288281\&mergedDefectId\=1494442\&eventId\=52288281-41
* fix: coverity uninitialized member warning
Xref: https://scan5.coverity.com/reports.htm\#v48014/p10174/fileInstanceId\=204371746\&defectInstanceId\=52288281\&mergedDefectId\=1494442\&eventId\=52288281-43
* fix: coverity unchecked return value
Xref: https://scan5.coverity.com/reports.htm\#v48014/p10174/fileInstanceId\=204371760\&defectInstanceId\=52254984\&mergedDefectId\=1494150
* fix: coverity false nullptr dereference warning
Xref: https://scan5.coverity.com/reports.htm\#v48014/p10174/fileInstanceId\=204369613\&defectInstanceId\=52254971\&mergedDefectId\=1493396
* fix: coverity unchecked return value
Xref: https://scan5.coverity.com/reports.htm\#v48014/p10174/fileInstanceId\=204369625\&defectInstanceId\=52288288\&mergedDefectId\=1491891
2021-11-25 18:14:25 -06:00
Charles Kerr
de169c7ec3
refactor: tr_completion ( #2220 )
...
* refactor: refactor tr_completion + add test coverage for it
2021-11-25 12:26:51 -06:00
Charles Kerr
68e3820ed1
fixup: crash after completing magnet link metainfo ( #2215 )
2021-11-24 14:12:32 -06:00
Charles Kerr
843e486d2a
refactor: tr_block_info class ( #2210 )
...
* refactor: add tr_block_info with tests
2021-11-24 08:48:52 -06:00
Charles Kerr
da855a7257
refactor: use std mutex/lock intead of bespoke ( #2194 )
...
* refactor: use std mutex/lock intead of bespoke
2021-11-20 15:20:45 -06:00
Charles Kerr
073c6af1d6
refactor: swarm ( #2103 )
...
* refactor: encapsulate request tracking in a class
Introduces a new class to peer-mgr, `ClientRequests`, which tracks what
active requests we've got pending: which blocks, when the requests were
sent, and who they were sent to.
This shouldn't change peer-mgr behavior. Its goal is to carve out some
of peer-mgr's data structures and encapsulte them behind an API that's
simpler to understand.
* refactor: move ActiveRequests to its own file
* perf: avoid duplicate call to tr_cpMissingBlocksInPiece
2021-11-19 12:37:38 -06:00
Charles Kerr
a21594b0ce
refactor: add tr_torrent::renamePath ( #2178 )
2021-11-15 22:10:36 -06:00
Charles Kerr
505d2ae428
refactor: tr_torrent.setLocation ( #2175 )
...
member version of tr_torrentSetLocation
2021-11-15 14:53:53 -06:00
Charles Kerr
7b772e73e6
fixup! refactor: remove tr_piece struct ( #2059 ) ( #2153 )
...
fix: off-by-one when marking a range of pieces as untested
2021-11-14 10:12:02 -06:00
Charles Kerr
d1f8c28fcd
refactor: make piece checksums private ( #2130 )
...
* refactor: remove tr_info.pieces
2021-11-12 10:42:51 -06:00
Charles Kerr
d8b57fe4dc
refactor: web_utils ( #2121 )
...
* chore: move web utils from web, utils to web-utils
2021-11-08 21:30:03 -06:00
Charles Kerr
7724111a8b
refactor: increase use of tr sha1 digest t ( #2091 )
...
* refactor: make tr_sha1_digest_t an array of std::byte
* refactor: increase use of tr_sha1_digest_t
2021-11-03 19:55:04 -05:00
Charles Kerr
002b45a95c
fixup! refactor: remove tr_piece struct ( #2059 ) ( #2086 )
...
perf: discard piece priorities when done downloading
2021-11-02 21:55:33 -05:00
Charles Kerr
9dca5f2086
perf: intern the announcer module's URL strings ( #2085 )
...
* perf: intern the announcer module's internal URLs
2021-11-02 18:00:01 -05:00
Charles Kerr
e5225ba8a2
refactor: tr_torrentFindFromHashString() takes a std::string_view ( #2082 )
...
* refactor: tr_torrentFindFromHashString() takes a string_view
2021-11-01 19:18:09 -05:00
Charles Kerr
cedec74d26
perf: add tr_buildBuf() ( #2068 )
...
* refactor: add tr_buildBuf() utility
2021-10-31 11:38:10 -05:00
Charles Kerr
d6032f829b
refactor: remove tr_piece struct ( #2059 )
...
* refactor: remove tr_piece struct
2021-10-29 13:24:30 -05:00
Charles Kerr
93d8a03d55
refactor: remove outvar args from tr_torGetFooBlockRange() functions ( #2041 )
2021-10-24 22:39:19 -05:00
Charles Kerr
b491da0ce4
refactor: add tr_peer_id_t ( #2004 )
...
* refactor: move handshake_done args into a convenience struct
* refactor: move peer_id from peerIo to tr_handshake
tr_handshake is a short-term object and tr_peerIo is long-term, so this
effectively narrows the scope of this field.
* chore: remove unused field tr_peerIo.isEncrypted
* refactor: add tr_peer_id_t type to hold peer ids.
this is a 'using' alias to a std::array<> so that code passing peer-ids
around doesn't have to memcmp / memcpy PEER_ID_LEN anymore. Also removes
the now-unused PEER_ID_LEN macro.
2021-10-21 21:40:55 -05:00
Charles Kerr
3b019ada3d
refactor: remove redundant assertions ( #2009 )
2021-10-21 19:02:38 -05:00
Charles Kerr
236a0965fa
refactor: tr_variant*Str() functions now take a std::string_view ( #1990 )
...
* refactor tr_variant*Str functions now take a std::string_view
* refactor: tr_torrentPrimaryMimeType returns a string-view
2021-10-19 21:30:50 -05:00
Charles Kerr
d7773c47b6
fix: crash on torrent with 65536 blocks per piece ( #1988 )
...
Fixes #1411 .
2021-10-18 19:25:00 -05:00
Dmytro Lytovchenko
953f07375a
Modernize bitfield.cc: Storage changes and refactor ( #1927 )
...
* Modernize bitfield.cc: Storage changed to vector of bytes, return vector from getRaw, new Span readonly memory view
Modernize bitfield.cc: Code style/review notes
Modernize bitfield.cc: Code format
* Modernize bitfield.cc: Swap end and begin in bit counting code assertion
* Modernize bitfield.cc: Rewrite states and simplify code
* Modernize bitfield.cc: Fixing the code and tests
* Modernize bitfield.cc: Fixing tests
* Modernize bitfield.cc: Formatting; +std::size, +const
2021-10-16 09:04:19 -05:00