* feature: proxy support for web-connections
* forgotten changes
* fix code-styles
* Documentation for new setting "proxy-url"
* Create property proxyUrl for class tr_web. Lazy creation of tr_web object in tr_session after loaded settings from file
* Update docs/Editing-Configuration-Files.md
Simplify the documentation text
Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>
* Fix merge error
* Fix merge error.
* Simplify tr_web's lifecycle. Fix error. Rename quark to sneak_case-style
* Fix parameter value test
---------
Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: use new `tr_variant` API to save resume file
* refactor: use new `tr_variant` API to load resume file
* chore: rename functions to `snake_case`
* chore: update comments
* perf: short circuit loading `3.00` progress
* refactor: changed `MaxRememberedPeers` to unsigned type
* fix: operator== should return bool in tr_strbuf
Fixes build error with C++20/C++23
error: return type 'auto' of selected 'operator==' function for rewritten '!=' comparison is not 'bool'
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: explicitly specify Blocklist::size() return type as size_t
Fixes building with C++20/C++23
error: no matching function for call to 'size'
function 'size' with deduced return type cannot be used before it is defined
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime in library, daemon and cli
fmt::format_string ctor is consteval with C++20
See https://github.com/fmtlib/fmt/issues/2438
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: wrap runtime format strings with fmt::runtime for GTK client
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: allow to override C and CXX standard via cmdline or env
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: add job to check if transmission compiles with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by mikedld
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix new found fmt build errors
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Address code review by tearfur
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* fix: make tr_net_init_mgr singleton buildable with C++23
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
---------
Signed-off-by: Dzmitry Neviadomski <nevack.d@gmail.com>
Co-authored-by: Charles Kerr <charles@charleskerr.com>
* refactor: save length of PadA and PadB sent
* refactor: log outgoing `len(PadA)` and `len(PadB)`
* refactor: set `ia_len_` as the MSE handshake initiator
* fix: abort handshake if torrent isn't running
* fix: check if torrent is running in all cases
* fix: don't penalise peer if handshake failed because of us
* fix: tests
* perf: ensure copy-elision in `HandshakeMediator::torrent()`
* code review: more accurate log wording
Uses `fmt::print` to log failure messages. Results in a connection
failure being printed as:
Unable to send request to 'http://localhost:9091/transmission/rpc/': Couldn't connect to server
Fixes#7010
* Revert "feat: save queue order between sessions (#6753)"
This reverts commit 4db50dae10.
* refactor: new torrent queue class
* refactor: replace queue code with new class
* test: new tests for new class
* feat: store and load queue order across sessions
* build: xcode
* refactor: use set_difference instead of unordered_set
* code review: use `tr_torrent_id_t` as key
* fix: don't overflow when moving up/down
---------
Co-authored-by: Dzmitry Neviadomski <nevack.d@gmail.com>
* Fix: disconnect blocklisted peer on blocklist update.
Mark peer to be disconnected upon blocklist update.
Tested on my torrent, seems to be working.
Fix#732 .
* Add debug message when blocking peers
Add debug message each time a peer gets blocked during blocklist update.
* Change log api
Co-authored-by: Yat Ho <lagoho7@gmail.com>
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com>
* Sync translations with code
* Sync translations with Transifex
* Fix order of plurals for Slovenian
* Add new Mac translations
* Afrikaans (af)
* Greek (el)
* refactor: add `tr_pex::to/from_variant()`
* refactor: store peers as benc in resume
* fix: discard invalid pex in `tr_pex::from_variant()`
* fix: limit number of peers loaded from resume
* refactor: use metadata id to check for ut metadata support
* refactor: use pex id to check for ut pex support
* refactor: start pex timer after ltep handshake
* refactor: harden metadata xfer sanity checks
* code review: constexpr
* code review: don't save peer ut_pex_id and ut_metadata_id if on private torrent
* properly consume PadA in MSE handshake, check for invalid Ya+PadA
* refactor: make handshake constants public (needed for test coverage)
* test: split test MSE handshakes by blocking steps
* test: use `ASSERT_TRUE` instead of `assert`
* test: fix windows crash by using `recv` and `send`
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
* refactor: use `TR_IF_WIN32` for `LOCAL_SOCKETPAIR_AF`
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
---------
Co-authored-by: Yat Ho <lagoho7@gmail.com>
Co-authored-by: reardonia <reardonia@github.com>
Co-authored-by: Yat Ho <46261767+tearfur@users.noreply.github.com>
* refactor: calculate raw speed by OS buffer instead of application buffer
* refactor: limit transfer speed by raw speed
* refactor: early return write if no bytes
* refactor: remove code for guessing TCP/IP overhead
* refactor: remove code for uTP overhead