Don't hardcode lt::settings_pack::no_connect_privileged_ports. We
support the peer alert for it already, so connections blocked by this
setting should be logged.
Always store firstLastPiecePriority in resume data.
Don't recalculate firstLastPiecePriority value each time it is accessed.
Always store sequentialDownload in resume data as native libtorrent field.
- Bump minimum required version and
make use of more modern language features
- Rely more on target_...() commands to establish dependency
relationships between targets rather than directory property commands
- Improve libtorrent package discovery
- Enable and handle application features more explicitly
- Improve user-facing output
- Fix various compilation issues on Windows (MSVC and MinGW) and macOS
- Improve handling of translations
- Add explanatory comments where relevant
- Make CMake scripts fully independent of qmake files/details
- Remove old functions/macros
This PR exposes the LibTorrent Peer Turnover Settings in qBT Advanced Settings in order to allow users to adjust how frequently slow and uninteresting connections are closed to allow potentially better / faster connections to be made.
The default settings are to turnover peers when the number of connections is at least 90% of allowed global or per torrent connections, and to disconnect the least attractive 4% of these connections every 5 minutes.
See https://www.libtorrent.org/reference-Settings.html#peer_turnover
Closes#13029.
Fixes an issue with truncation of a QByteArray at the first '\0' byte
when parsing HTTP request query strings.
Previously, the operands of the ternary expression were of
different types. Most likely this was leading to a conversion
of the result to some kind of '\0'-terminated string type somewhere
along the way, in turn causing its truncation at the first '\0' byte
once converted back to QByteArray.
For some reason this bug was only present on Windows (MSVC).
libtorrent-2.0 introduced a type-safe alternative to void* (lt::client_data_t)
for passing user-data into plugins. qBT doesn't use any user data in its
plugins, but the signatures have changed nevertheless, and qBT need to update to
be compatible with libtorrent-2.0.
torrentcreatorthread.cpp does not need to include libtorrent/storage.hpp, but
just needs libtorrent/file_storage.hpp. The former header is for implementing a
custom storage. Change include to libtorrent/file_storage.hpp
The following is the warning from compiler:
rss_item.cpp:70:79: warning: ‘QRegularExpression::OptimizeOnFirstUsageOption’ is deprecated: This option does not have any effect since Qt 5.12 [-Wdeprecated-declarations]