* test: new `tr_variant` API in `json-test.cc`
* test: new `tr_variant` API in `variant-test.cc`
* chore: housekeeping
* test: new `tr_variant` API in `dht-test.cc`
* fix: use `reinterpret_cast` in `tr_variant::make_raw()`
* fix: add missing `typename` in `tr_variant::make_raw()`
* test: new `tr_variant` API in `settings-test.cc`
* test: new `tr_variant` API in `move-test.cc`
* test: new `tr_variant` API in `rpc-test.cc`
* test: new `tr_variant` API in `makemeta-test.cc`
* test: new `tr_variant` API in `session-test.cc`
* Revert "fix: possible heap-use-after-free with magnet links (#6815)"
This reverts commit 09b67c84b1.
* fix: check if torrent still exists before verifying
* refactor: queue `on_have_all_metainfo()` in session thread instead
* ci: bump debian image from 11 to 12
debian 11 has npm 7.5.2, which is lower than our minimum required version 8.0.307.
* build: find `npm.cmd` on Windows
* chore: trigger CI
* Revert "chore: trigger CI"
This reverts commit adc8f4ec98.
* Revert "ci: bump debian image from 11 to 12"
This reverts commit 4730d350b3.
* ci: use `actions/setup-node` in debian 11
* ci: don't test `REBUILD_WEB` if only `libtransmission` changed
* ci: don't test `REBUILD_WEB` if only `third-party` changed
* fix: warning: deleted member function should be public [modernize-use-equals-delete]
* fix: warning: variable has inline specifier but is implicitly inlined [readability-redundant-inline-specifier]
* fix: warning: enum uses a larger base type than necessary for its value set [performance-enum-size]
* fix: warning: initializer for member is redundant [readability-redundant-member-init]
* warning: parameter is const-qualified in the function declaration; const-qualification of parameters only has an effect in function definitions [readability-avoid-const-params-in-decls]
* chore: housekeeping
* perf: short circuit peer has block check
* refactor: track active requests in each respective peer
* refactor: swap `ActiveRequests` with new request tracking method
* refactor: use bitfield to store active requests per peer
* perf: check active request numbers first
* refactor: initialise candidate values in constructor
* refactor: better naming
* refactor: use `find_by_block()` more
* refactor: store wishlist mediator in swarm object
* test: make it compile
* test: update endgame test
* test: new test for choke event
* test: remove redundant lines
* test: new test for request event
* test: new test for reject event
* refactor: cache block have state in wishlist
* test: fix `gotBlockResortsPiece`
* fixup! refactor: track active requests in each respective peer
* fixup! test: fix `gotBlockResortsPiece`
* fix: count webseeds when calculating active requests
* build: update xcode project
* fix: add missing `candidates_dirty_` checks
* chore: remove old `depends-on` comments
* fixup! refactor: use bitfield to store active requests per peer
* refactor: extract block peer event to separate function
* perf: reorder conditions by overhead
* perf: check for completed block instead of completed piece
* chore: remove duplicated "unrequested piece" check
* refactor: merge similar block size sanity check
* refactor: use map to store number of requests in wishlist
* refactor: add asserts
* refactor: flush write buffer as soon as there is new data
* refactor: more accurate function naming
* fix: account for corrupt pieces in wishlist
* fix: account for unaligned blocks in wishlist
* Revert "fix: account for unaligned blocks in wishlist"
This reverts commit c3fce93cbae49c11d62e26caccedf55c1987aa95.
* fixup! refactor: use map to store number of requests in wishlist
* fix: account for unaligned blocks in wishlist v2
* chore: add `[[nodiscard]]`
* fixup! fix: account for unaligned blocks in wishlist v2
* fix: crash when handshake finishes in the middle of function
the files web/prettier.config.js and web/stylelint.config.js were renamed in b9f4509, but web/CMakeLists.txt was not updated correspondingly.
hence, using `REBUILD_WEB` would cause FTFS.
`tr_peer_info::reconnect_interval_has_passed()` contains logic to increase the reconnect interval for unreachable peers, but it has no effect at all currently because they wouldn't be tried in the first place.
* refactor: add log warning for ut metadata in private torrent
* refactor: add log warning for ut pex in private torrent
* refactor: add log warning for ltep handshake without advertised support
* refactor: unify ltep handshake log format
* refactor: removed redundant ltep logs
* refactor: add back log for ut pex
* macOS autosize dock fix
* Fix: Move variable declaration inside block to minimize scope length
* Fix: Move comment to its own line for better readability
* Fix: Use dot syntax for accessing scrollViewHeight property in calculateScrollViewHeightWithDockAdjustment method
* Fix: Add CGFloat type declaration for height variable
* rollback alignment change for clang-format
---------
Co-authored-by: emeritaacuity0u <emerita.acuity_0u@icloud.com>
* fix: readability-math-missing-parentheses clang-tidy warnings
* chore: remove unused function tr_ctorGetSession()
* chore: remove unused function tr_ctorGetIncompleteDir()
* chore: make generatePublicKey() a lambda
* fix: readability-container-contains warnings
* fix: misc-use-internal-linkage warnings
* chore: inline generate_public_key() since it was only used once
* fix: update `date_done_` as long as the torrent is done
* fix: `mark_change()` should be called as long as torrent state changes
* chore: remove redundant completeness update in `tr_torrent::start_in_session_thread()`
* fix: log whenever torrent state changes
* chore: add comment to explain `recent_change`
* chore: housekeeping
* fix: recover torrents with missing date done