Commit Graph

1222 Commits

Author SHA1 Message Date
Vladimir Golovnev (Glassez)
698ee94d0b Split TorrentHandle interface and implementation 2020-04-22 18:19:14 +03:00
jagannatharjun
65d1b588d9 Convert the Log widget to use custom View/Model
Co-authored-by: sledgehammer999 <hammered999@gmail.com>
2020-04-22 18:19:13 +03:00
an0n666
eea693979a Change default stop_tracker_timeout settings 2020-04-22 18:19:12 +03:00
Raif Atef
654bf85a71 Do not use 0.0.0.0 or [::] for outgoing interfaces
Fixes #12443
2020-04-22 18:19:11 +03:00
an0n666
8706a7c973 Remove deprecated strict super seeding mode from advanced settings 2020-04-22 18:19:10 +03:00
Chocobo1
e5bf83a594 Preallocate output buffer 2020-04-22 18:19:06 +03:00
Chocobo1
2a3e64933b Fix header inclusion order 2020-04-22 18:19:05 +03:00
Chocobo1
37354a9e29 Avoid holding encoded resume data in memory
Now it the encoded resume data will be streamed to file instead of a
temporary buffer holding the whole of it.
2020-04-22 18:19:02 +03:00
József Sallai
7cb14e2a5b Detect python3 executable on Windows 2020-04-22 18:19:01 +03:00
Vladimir Golovnev (Glassez)
4aae7266a5 Save "resume data" when torrent storage is moved 2020-04-22 18:19:00 +03:00
Raif Atef
075245c915 Fix outgoing interface is not getting assigned
Assignment was missing in main branch of condition statement.
Closes https://github.com/qbittorrent/qBittorrent/issues/12421
2020-04-22 18:18:59 +03:00
Chocobo1
7b0b5e3d7f Avoid inefficient behavior
Since the class needs to be copy-constructible, there may be many
copies of an instance. So instead of writing to the device on every
destructor call, only flush buffer on the last destructor call.
2020-04-22 18:18:56 +03:00
Chocobo1
4142722303 Sort locale language list 2020-04-22 18:18:55 +03:00
NotTsunami
8ebb11f981 Set disk cache size for older libtorrent versions
Libtorrent versions older than 1.2.6 have a bug when setting disk
cache size to auto.

See 6c880159c9.
2020-04-22 18:18:54 +03:00
Chocobo1
2f0c3f047a Avoid holding entire file in memory
Previously we need a file buffer that is as large as the file size and
this could be a problem when user has less free memory available or
having very large data. Now with the help of `FileOutputIterator`,
we can have a much smaller, fixed size immediate file buffer and also
the code looks nice with `lt::bencode()`.
2020-04-22 18:18:50 +03:00
Chocobo1
e98a887286 Improve logging for errors
This commit also allows the strings to be translated.
2020-04-22 18:18:37 +03:00
Vladimir Golovnev (Glassez)
67c6107892 Fix unexpected torrent resume after app restart
Closes #12322.
2020-04-02 00:17:45 +03:00
sledgehammer999
2794e883b6 Fix broken UNC paths in fastresumes on Windows
See #12245 and #12282
2020-04-01 17:18:38 +03:00
Tester798
e86249a4e8 Fix regression when fastresume contains network path
Closes #12245 after regression was introduced in #11785.
2020-04-01 17:18:37 +03:00
NotTsunami
6f45764629 Add UPnP lease duration advanced option
This is a new setting added that is pending addition to
libtorrent 1.2.6. This setting is important because some routers do
not support expiration times on port-maps and do not return an error
either, silently failing. The previous default of permanent leases is
retained.
2020-04-01 17:18:36 +03:00
Chocobo1
f3d878324b Initialize struct variables
clang static analyzer was emitting some warning about uninitialized
variable usage and this patch fixes it.
2020-04-01 17:18:34 +03:00
Chocobo1
43d9d16241 Add logging for SOCKS5 proxy errors 2020-04-01 17:18:33 +03:00
Chocobo1
aff4065e42 Rely on Qt ownership to free resources
The m_reply has already changed parent in
DownloadHandlerImpl::assignNetworkReply() and thus we can rely on Qt
ownership to delete the object.
2020-04-01 17:18:19 +03:00
Chocobo1
ea3c360901 Construct QString more efficiently 2020-04-01 17:18:16 +03:00
Chocobo1
39fe0025cd Allow to translate error messages 2020-04-01 17:18:02 +03:00
FranciscoPombal
f51cd36c29 WebAPI: fix matching uncategorized torrents
Closes #11748.
2020-03-24 16:15:12 +02:00
thalieht
553f443fbc Disable Auto TMM when not using default savepath from monitored folder 2020-03-24 16:15:11 +02:00
thalieht
716aad9483 Append new move storage job to queue
fixup e4ff206e3c
2020-03-24 16:15:09 +02:00
Chocobo1
03e6b6e09d Get library version strings at runtime
We mostly use boost in header-only mode, so it is a non-trivial job to
get the version string at runtime.
2020-03-24 16:15:07 +02:00
Vladimir Golovnev (Glassez)
f6b0abbd75 Move torrent storages one by one 2020-03-24 16:15:06 +02:00
Chocobo1
3e4c2193fb Drop python2 support
Closes #11811.
2020-03-24 16:15:00 +02:00
Chocobo1
ae9b8720af Use helper functions to construct smart pointers 2020-03-24 16:14:59 +02:00
Chocobo1
30f2d11203 Use proper type for piece index 2020-03-24 16:14:58 +02:00
Chocobo1
9a69afb34a Avoid unnecessary memory writes
Before this change, qbt spent ~1% in these two functions, now it
only spends about ~0.5% in my naive testing.
2020-03-24 16:14:57 +02:00
an0n666
923395b5c7 Check if file exists in seed mode 2020-03-24 16:14:56 +02:00
Vladimir Golovnev (Glassez)
21c8acd55c Let libtorrent decide whether to resume a torrent 2020-03-24 16:14:54 +02:00
FranciscoPombal
709198d2f1 Fix response to event=stopped
BEP-3 says all tracker responses to valid announce requests should be bencoded dictionaries with at least the "peers" and "interval" keys; the "peers" key can be empty.

Also clarify support for BEP-21.
2020-03-24 16:14:54 +02:00
FranciscoPombal
87542b4f75 Don't use IPv4-mapped IPv6
Always register peers with either IPv4 or IPv6.
Fixes potential connection issues.

Also clarify related BEP-24 support.
2020-03-24 16:14:53 +02:00
FranciscoPombal
566ecefbcf Fix BEP-23 support
The embedded tracker was returning a non-compliant response.
The peer lists should be packed strings instead of lists.

Also clarify level of compliance with BEP-7.
2020-03-24 16:14:53 +02:00
FranciscoPombal
41061f3c39 Fix IPv6 endianness 2020-03-24 16:14:52 +02:00
Vladimir Golovnev (Glassez)
703330c40d Allow to save downloaded metadata as torrent file 2020-03-24 16:14:51 +02:00
FranciscoPombal
5a09f996ed Revert using random port by default
Revert change introduced in https://github.com/qbittorrent/qBittorrent/pull/11637 and also revert the associated follow-up https://github.com/qbittorrent/qBittorrent/pull/12000.

Reason: https://github.com/arvidn/libtorrent/pull/4335
2020-03-24 16:14:47 +02:00
sledgehammer999
84aa63a3c5 Use IP geolocation database by DB-IP instead of MaxMind
Closes #11792
2020-03-24 16:14:44 +02:00
Chocobo1
c2afc50c02 Simplify TrackerEntry::status() logic 2020-03-24 16:14:43 +02:00
FranciscoPombal
575bde1d1d Add stalled filters to GUI and Web API/UI
`/api/v2/torrents/info` can now take the following new values for the`filter` parameter: `stalled`, `stalled_uploading` and `stalled_downloading`.

Requires Web API version bump.

Closes #11787
2020-03-24 16:14:42 +02:00
an0n666
d15fdf2dde Do not list not contacted trackers as error 2020-03-24 16:14:41 +02:00
Chocobo1
66c2e70016 Include resume folder path in exception message
The message in RuntimeError exception will be displayed to the users and
users would be clueless if we don't show the path.
2020-03-24 16:14:39 +02:00
Vladimir Golovnev (Glassez)
89ee24fb3e Don't access download handler after it's finished 2020-03-24 16:14:39 +02:00
Chocobo1
b02eb32806 Expose WebUI ban duration to users 2020-03-24 16:14:38 +02:00
Chocobo1
b19153287b Expose WebUI ban counter to users 2020-03-24 16:14:36 +02:00