Commit graph

820 commits

Author SHA1 Message Date
Vladimir Golovnev (Glassez)
8bd9a97f6f
Fix unexpected torrent resume after app restart
Closes #12322.
2020-04-01 18:01:18 +03:00
sledgehammer999
bbe5465ba6
Merge pull request #12317 from sledgehammer999/fix_broken_save_path
Fix broken UNC paths in fastresumes on Windows
2020-03-31 18:34:31 +03:00
sledgehammer999
13af503003
Fix broken UNC paths in fastresumes on Windows
See #12245 and #12282
2020-03-30 15:21:15 +03:00
Mike Tzou
59f99bb984
Merge pull request #12282 from Tester798/fix-12245
Fix regression when fastresume contains network path
2020-03-30 12:53:17 +08:00
Mike Tzou
8a8607bf93
Merge pull request #12175 from NotTsunami/upnp
Add UPnP lease duration advanced option
2020-03-29 12:29:10 +08:00
NotTsunami
6b4925d222 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-03-28 00:32:32 -04:00
Tester798
1c6b4c0a79 Fix regression when fastresume contains network path
Closes #12245 after regression was introduced in #11785.
2020-03-26 18:54:13 +02:00
Chocobo1
54a685e953
Add logging for SOCKS5 proxy errors 2020-03-26 21:51:05 +08:00
Chocobo1
7de8a4d6e0
Construct QString more efficiently 2020-03-25 12:00:11 +08:00
Chocobo1
2c23840947
Allow to translate error messages 2020-03-25 12:00:11 +08:00
thalieht
18289f2395 Append new move storage job to queue
fixup e4ff206e3c
2020-03-16 22:39:31 +02:00
Vladimir Golovnev
5127156ba4
Merge pull request #12035 from glassez/move-storage
Move torrent storages one by one
2020-03-13 15:59:05 +03:00
Mike Tzou
73ee901c45
Merge pull request #12113 from Chocobo1/smart_ptr
Use helper functions to construct smart pointers
2020-03-06 13:12:41 +08:00
Chocobo1
290d198977
Use proper type for piece index 2020-03-06 01:47:28 +08:00
Chocobo1
2157e500ef
Use helper functions to construct smart pointers 2020-03-05 19:32:28 +08:00
Mike Tzou
ca01b049a6
Merge pull request #12108 from Chocobo1/bits
Avoid unnecessary memory writes
2020-03-04 23:50:12 +08:00
Mike Tzou
949daf6c73
Merge pull request #12037 from an0n666/seed-mode-fix
Check if file exists in seed mode
2020-03-04 23:49:47 +08:00
an0n666
f7d2085b0a Check if file exists in seed mode 2020-03-04 17:38:00 +06:00
Chocobo1
24cd7c3611
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-04 03:18:39 +08:00
Vladimir Golovnev
b519ece18b
Merge pull request #12095 from glassez/resume-torrent
Let libtorrent decide whether to resume a torrent
2020-03-01 19:54:16 +03:00
Vladimir Golovnev (Glassez)
74884d57ec
Let libtorrent decide whether to resume a torrent 2020-03-01 08:08:01 +03:00
Mike Tzou
9649c2a163
Merge pull request #12043 from FranciscoPombal/fix-embedded-tracker
Fix embedded tracker
2020-02-27 21:06:58 +08:00
Vladimir Golovnev
4d2943a782
Merge pull request #12033 from glassez/save-torrent
Allow to save downloaded metadata as torrent file
2020-02-27 08:49:40 +03:00
FranciscoPombal
966f891d91 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-02-26 20:47:33 +00:00
FranciscoPombal
af6f63f82c 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-02-26 20:44:09 +00:00
FranciscoPombal
abc69dfd20 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-02-26 20:42:14 +00:00
FranciscoPombal
9f045500d1 Fix IPv6 endianness 2020-02-26 20:42:07 +00:00
Vladimir Golovnev (Glassez)
e4ff206e3c
Move torrent storages one by one 2020-02-26 10:20:04 +03:00
Vladimir Golovnev (Glassez)
dd0cee44c1
Allow to save downloaded metadata as torrent file 2020-02-26 08:10:11 +03:00
FranciscoPombal
dc6a56afcb 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-02-21 14:47:37 +00:00
Chocobo1
e825473289
Simplify TrackerEntry::status() logic 2020-02-17 18:46:30 +08:00
Mike Tzou
04132f6266
Merge pull request #11999 from an0n666/fix-not-contacted-tracker
Do not list not contacted trackers as error
2020-02-16 20:27:41 +08:00
an0n666
8423f43209 Do not list not contacted trackers as error 2020-02-15 19:44:14 +00:00
Chocobo1
45c357dfe2
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-02-15 02:48:55 +08:00
Tester798
58711cbe7e Fix portable mode
Try to fix portable mode bug. Closes #11706, #11178, #7765.
2020-02-12 19:56:25 +02:00
Chocobo1
5de75eff05
Unify singleton pattern in Profile class
1. Use unified function names `initInstance()` and `freeInstance()` and
make them public.
2. Add `freeInstance()` to avoid noise from memory leak detectors.
3. Let `instance()`return a pointer directly to avoid unnecessary
indirections when invoking functions.
2020-02-11 15:30:59 +08:00
NotTsunami
6748e8d787 Remove redundant null checks
Attempting to delete a null pointer is a noop in C++.

Closes #2864.

[1] https://isocpp.org/wiki/faq/freestore-mgmt#delete-handles-null
2020-02-03 16:38:51 -05:00
Mike Tzou
11bea8d393
Merge pull request #11918 from thalieht/peerssameip
Show any multiple connections from the same IP in peer list
2020-01-30 12:59:17 +08:00
thalieht
5f415c292d Show any multiple connections from the same IP in peer list
The uniqueness of peers is now determined by their
IP, port and connection type (uTP etc.) instead of just their IP
2020-01-29 20:40:10 +02:00
Chocobo1
5905c085c6
Use systematic approach to generate hash
The basic idea is to hash each class member and then mix them with xor
operation.
However the `seed` must be handled with care, it should only be
introduced once when mixing the hashes of each class member, otherwise
under some circumstances the `seed` might xor with itself and thus break
the intended effect.
2020-01-27 18:14:27 +08:00
Chocobo1
1740f968df
Revise qHash function
Instead of xor and narrowing the integers ourselves, now we let qHash()
from Qt do the job properly.
2020-01-27 12:53:22 +08:00
Chocobo1
2b4490d8a7
Use faster hash function
qHash(QString) will need to hash/loop through all the data while the new
code will only need one memcpy() and a few bit manipulations.
2020-01-27 12:53:13 +08:00
Vladimir Golovnev
89e72b38ea
Merge pull request #11881 from glassez/extension
Simplify torrent startup handling
2020-01-22 06:11:33 +03:00
Vladimir Golovnev (Glassez)
f2285e1b63
Redesign torrent startup handling 2020-01-21 10:14:59 +03:00
Chocobo1
3fce1db2eb
Migrate away from deprecated settings
Libtorrent has deprecated `upnp_ignore_nonrouters` in
https://github.com/arvidn/libtorrent/pull/4251
2020-01-16 23:44:54 +08:00
Mike Tzou
146e8213a5
Merge pull request #11781 from FranciscoPombal/piece_extent_affinity
Add piece_extent_affinity to AdvancedSettings
2020-01-14 12:53:39 +08:00
FranciscoPombal
ed96a07a75 Add piece_extent_affinity to AdvancedSettings
Expose option in WebUI settings and WebAPI.

Requires WebAPI version bump.

Closes #11436.
2020-01-13 00:11:29 +00:00
An0n
bf32e90c40 Change placement of stop tracker timeout 2020-01-09 19:01:05 +00:00
Mike Tzou
057860584c
Merge pull request #11834 from an0n666/an0n666-expose-stop-tracker-timeout
Expose stop tracker timeout in Advanced Settings (GUI + WebUI)
2020-01-08 17:30:21 +08:00
an0n666
3f223c3a45 Expose stop_tracker_timeout in advanced settings 2020-01-08 08:21:55 +00:00
sledgehammer999
02a027144b
Tracker is errored only if all local endpoints fail
Closes #11691
2020-01-05 17:59:54 +02:00
Vladimir Golovnev (Glassez)
f56f817c77
Save resume data after recheck
Closes #11774.
2020-01-01 14:29:58 +03:00
Mike Tzou
5c3c1e07df
Merge pull request #11739 from Chocobo1/qt5_14
Migrate away from deprecated API in Qt 5.14
2019-12-26 12:43:04 +08:00
Chocobo1
2422d81de1
Migrate away from deprecated API in Qt 5.14 2019-12-25 19:23:37 +08:00
FranciscoPombal
30502de960 Change some settings defaults for better behaviour out of the box
- CheckingMemUsageSize (16 MiB -> 32 MiB): a 16 MiB increase in memory consumption seems worthwhile for a nice performance boost in most cases.
- DiskCacheSize (64 MiB -> Auto): auto yields the best performance without committing to a huge fixed value.
- UseRandomPort (false -> true): The initial port chosen by qBittorrent may clash with something else the user already has that is aways using that port (low probability, but still). Thus, qBittorrent will always fail listening on that port, causing unexpected problems for the user. Users who know they want a fixed port will go to the settings anyway.
2019-12-19 16:46:22 +00:00
sledgehammer999
18de63f743
Merge pull request #11433 from jagannatharjun/colors
Allow transfer list text color changes through QSS
2019-12-19 18:20:49 +02:00
Prince Gupta
d3aa45526a Allow transfer list text color changes through QSS 2019-12-19 12:45:26 +05:30
Mike Tzou
1e4c837d6c
Merge pull request #11678 from an0n666/patch-1
Disable Torrent Queue by default
2019-12-18 13:47:04 +08:00
sledgehammer999
3d43f1c800
Merge pull request #11642 from sledgehammer999/fix_save_path
Use the incomplete folder where appropriate
2019-12-17 20:37:57 +02:00
an0n666
e0d7876990
Disable Torrent Queue by default
It should remain disabled by default. Anyone that needs to Queue torrents for seeding/downloading should go to settings and change it to their preference.
2019-12-16 18:16:27 +06:00
sledgehammer999
564d845d87
Use the incomplete folder where appropriate
Restored torrents already have the correct path saved in their fastresume. Don't override it.
Magnets and new torrents have to be set explicitly to the incomplete folder if it is enabled.

Closes #11552
2019-12-13 20:31:38 +02:00
sledgehammer999
d09c5e529c
Merge pull request #11592 from sledgehammer999/refactor_listeningAddr
Rework the listening IP/interface selection code
2019-12-12 20:24:45 +02:00
Chocobo1
796595ffb6
Enable "Apply rate limit to peers on LAN" option by default
Because some ISP will deploy Carrier Grade NAT (means assigning private
IP address to user) and thus accidentally circumvent the speed limiter.

https://www.a10networks.com/blog/carrier-grade-nat/
2019-12-11 21:44:45 +08:00
sledgehammer999
8200ef6bd5
Rework the listening IP/interface selection code
Closes #11561
2019-12-11 09:56:45 +02:00
Mike Tzou
2e8b17e498
Merge pull request #11521 from Chocobo1/errorStatus
Fix stuck in wrong torrent state
2019-12-03 19:22:39 +08:00
Chocobo1
bf58555a7a
Migrate away from deprecated API 2019-11-29 02:57:31 +08:00
sledgehammer999
56c0f39593
Merge pull request #11520 from sledgehammer999/revert_fastresume_functionality
Revert fastresume functionality
2019-11-27 22:38:21 +02:00
Chocobo1
2ca70cf6cc
Fix stuck in wrong torrent state
Before this patch, adding the torrent in
https://github.com/qbittorrent/qBittorrent/issues/11511 and the torrrent
state will stay in torrent_status::checking_resume_data forever.
This is not the correct state since the `torrent_status.errc` field is
non-zero and this commit fixes it.
2019-11-26 03:15:48 +08:00
sledgehammer999
7aa01a1b51
Revert "Always save info dict when saving fastresume"
This reverts commit 4aab44e779.
2019-11-25 15:35:06 +02:00
sledgehammer999
005f0010ec
Revert "Fix unable to remove web seeds"
This reverts commit d657c87243.
2019-11-25 15:34:37 +02:00
Vladimir Golovnev (Glassez)
a4b9a4d9da
Fix compilation for Windows 7 with MinGW 2019-11-22 13:03:52 +03:00
Chocobo1
af52a18f82
Avoid session reconfiguration when limit has not changed
Fix up 5d46c9b2d6.
2019-11-20 12:22:18 +08:00
Mike Tzou
1bd739dd4a
Merge pull request #11493 from Chocobo1/speed
Revise "speed limits" related code
2019-11-18 18:40:31 +08:00
thalieht
4ffc0cff12 Reallow to force recheck torrents that aren't fully started 2019-11-16 22:13:35 +02:00
Chocobo1
5d46c9b2d6
Revise "speed limits" related code
The old code has a wrong comparison which compares speed limits
in different magnitude: bytes vs KiB. The comparison is removed.
Also the old code treats values that are smaller than 1024 as unlimited
speed which is clearly wrong.
2019-11-17 02:27:59 +08:00
Chocobo1
640f52c05f
Let eta function return signed integer
We already use signed integer internally so it make sense to return it
as-is.
2019-11-14 12:14:29 +08:00
Chocobo1
9ef2cd48e0
Fix translation not applied 2019-11-11 16:39:55 +08:00
Mike Tzou
d12468ffb5
Merge pull request #11354 from thalieht/pausechecking
Reallow to pause checking torrents
2019-11-09 09:28:18 +08:00
thalieht
f150b3077d Reallow to pause checking torrents 2019-11-08 19:14:50 +02:00
Chocobo1
b408a09755
Remove unused type alias 2019-11-04 13:47:30 +08:00
Chocobo1
1b47350952
Remove anonymous function forward declarations
Also reorder the functions slightly to make it compile.
2019-11-04 12:21:16 +08:00
Mike Tzou
2fb1182700
Merge pull request #11317 from Chocobo1/preview
Fix "preview file" action not working
2019-11-04 11:32:14 +08:00
Mike Tzou
6da39d9279
Merge pull request #11422 from Chocobo1/buffer
Reserve memory for file data buffers
2019-11-02 13:16:21 +08:00
Mike Tzou
565eb4cdc8
Merge pull request #11430 from Chocobo1/qt
Fix integer narrowing on x86
2019-11-01 10:34:56 +08:00
Chocobo1
e262b86c44
Reserve memory for file data buffers 2019-10-31 23:09:28 +08:00
Chocobo1
6fd678195c
Replace deprecated Qt functions
QSet::toList() is replaced by QSet::values()
2019-10-31 12:40:24 +08:00
Chocobo1
0f60121b94
Add option to control qBittorrent process memory priority
This is to avoid Windows swapping out other application data from
OS cache and put in torrent data which hinders other program
responsiveness.

The default value "Below normal" is choosen because casual users have
other higher priority apps (such as browser) running and they don't
expect OS to swap out its data. Dedicated seeders most probably will not
have other app running on their system and would expect qbt has
priority over other background services.

The option only has effect on Windows >= 8.
2019-10-31 03:18:43 +08:00
Chocobo1
29fe0029f0
Rename variables in Session class 2019-10-30 11:56:16 +08:00
Chocobo1
89c58921de
Log error properly 2019-10-30 01:46:57 +08:00
Chocobo1
a3fd340187
Revise Session::getPendingAlerts function signature 2019-10-30 01:46:57 +08:00
Chocobo1
e32ef7f5c5
Use implicit sharing when getting categories from Session class 2019-10-30 01:46:57 +08:00
Chocobo1
865394a59c
Clean up Session class variable initialization 2019-10-30 01:46:56 +08:00
Chocobo1
abb3e7ace0
Move libtorrent session initialization to its own function
`m_IPFilteringChanged` default value has changed due to code unification.
2019-10-30 01:46:52 +08:00
Chocobo1
49266cb9e4
Replace boost::int64_t by std::int64_t 2019-10-23 13:43:49 +08:00
Chocobo1
cbe78baff1
Migrate to lt::error_code 2019-10-23 13:43:46 +08:00
Chocobo1
0d3152e4b0
Clean up "network interfaces configuration" code 2019-10-23 13:43:16 +08:00
Chocobo1
0607050ecc
Clean up PreviewSelectDialog class 2019-10-02 21:12:35 +08:00
Chocobo1
021908320e
Preserve relative order when moving to top/bottom in queue
Closes #11312.
2019-10-02 16:03:06 +08:00
Chocobo1
e0a23ba93d
Use InfoHash type in queueing operations
This avoids redundant type conversions.
2019-10-02 15:21:16 +08:00
Chocobo1
36056ad5af
Avoid redundant lookups 2019-09-29 15:13:25 +08:00
Chocobo1
d76adff81d
Change Session::deleteTorrent() first parameter to take InfoHash type 2019-09-29 09:52:51 +08:00
Chocobo1
7f453a80d3
Revise SessionSettingsEnums wrapper
This simplify the wrapper to become a namespace.
2019-09-29 09:52:13 +08:00
Chocobo1
7276a79cef
Call Windows API directly
We already bumped the OS requirement to Windows 7 and those functions
can be called directly without the need to load them first.
2019-09-29 09:52:13 +08:00
Mike Tzou
975b44d05f
Merge pull request #11241 from thalieht/delfolder
Add "Remove torrent and its files" option to share ratio limiting
2019-09-29 09:51:41 +08:00
thalieht
07eb261991 Add "Remove torrent and its files" option to share ratio limiting 2019-09-26 13:34:03 +03:00
Chocobo1
58fa5e004f
Improve "stats updated" signal handling in MainWindow class 2019-09-24 11:51:29 +08:00
Chocobo1
418164bee4
Move "torrent status report" functionality out of Session class 2019-09-23 21:08:59 +08:00
Chocobo1
9968eb53b2
Remove unused signal 2019-09-23 21:08:59 +08:00
Chocobo1
8bbed461a6
Sort signal declarations in Session class 2019-09-23 21:08:59 +08:00
Chocobo1
4d00435209
Improve error messages for url_seed_alert
Closes #10119.
2019-09-18 15:02:59 +08:00
Chocobo1
fccbc5318a
Drop logging level to warning for web seed errors 2019-09-15 14:55:16 +08:00
Mike Tzou
12c127b482
Merge pull request #11227 from Chocobo1/alert
Handle "alerts dropped" alert from libtorrent
2019-09-15 13:02:34 +08:00
Chocobo1
edcc74c1ae
Add option to align file to piece boundary when creating new torrent
Alignment is achieved by adding dummy pad files between files which is
handled by libtorrent.
Closes #10460.
2019-09-14 12:16:50 +08:00
Chocobo1
5e1e983928
Handle "alerts dropped" alert from libtorrent 2019-09-14 12:09:13 +08:00
Chocobo1
2396ef5bd6
Move error logging of adding peers to the proper place 2019-09-04 16:09:24 +08:00
Chocobo1
3104291734
Add check for null pointer
Fix up d657c87243.
2019-09-03 22:26:41 +08:00
Mike Tzou
4363082173
Merge pull request #11104 from Chocobo1/resume
Fix unable to remove web seeds
2019-09-03 12:12:56 +08:00
Chocobo1
2a66bb3127
Construct QHostAddress more efficiently 2019-09-01 22:33:01 +08:00
Chocobo1
4aab44e779
Always save info dict when saving fastresume
Otherwise torrents loaded from fastresume won't have it and needs
to redownload it from elsewhere and slowing down the startup process.
This is also required for the future where we will drop loading the
`info` dict from .torrent files.
2019-08-31 22:59:33 +08:00
Chocobo1
d657c87243
Fix unable to remove web seeds
As suggested in post [1] we don't need to assign the `ti` field anymore when fastresme
already contains the `info` dict.

[1]: https://github.com/arvidn/libtorrent/issues/3946#issuecomment-523300003
2019-08-31 22:52:22 +08:00
Mike Tzou
62a3938480
Merge pull request #11085 from Chocobo1/model
Better on-demand reloading of torrent data
2019-08-30 12:45:57 +08:00
Chocobo1
09503b58fa
Clean up loadTorrentResumeData() 2019-08-27 15:01:50 +08:00
Chocobo1
f3ce76110b
Simplify code
Instead of using dict_find_list() now we use the simpler dict_find()
since we are going to check its validness anyway.
2019-08-27 15:01:50 +08:00
Chocobo1
3a11c23efd
Fix wrong "added on" date
This only happens for magnet links when its metadata has yet to be retrieved.
Closes #11124.
2019-08-27 15:01:50 +08:00
Mike Tzou
5c7f9530ee
Merge pull request #11060 from Chocobo1/tracker
Improve embedded tracker
2019-08-22 12:18:56 +08:00
Chocobo1
8d0d8e4dcb
Improve embedded tracker
Now it conforms to BEPs more closely.
2019-08-21 18:05:50 +08:00
Chocobo1
bbecf87292
Handle invalid time activity properly
When there is no activity before m_nativeStatus.last_upload will be 0
and this commit will map it to -1 which retain the expected behavior as
before (libtorrent < 1.2 era).
2019-08-21 17:45:04 +08:00
Chocobo1
1f3bf75fff
Better on-demand reloading of torrent data 2019-08-17 15:44:16 +08:00
Chocobo1
94f7a095bb
Implement proper equal operators 2019-08-16 01:35:41 +08:00
Mike Tzou
767f024585
Merge pull request #7475 from thalieht/ratiosuperseed
Add option to enable Super Seeding mode once ratio/time limit is reached. Closes #7160.
2019-08-10 11:33:09 +08:00
thalieht
1f6f1716ad Enable Super Seeding mode once ratio/time limit is reached 2019-08-09 13:06:34 +03:00
Mike Tzou
2427f5d324
Merge pull request #11041 from Chocobo1/splitRef
Revise operations in TorrentHandle class
2019-08-09 12:27:44 +08:00
Chocobo1
c420ff29af
Revise operations in TorrentHandle class 2019-08-08 18:57:54 +08:00
Chocobo1
b5b678c58f
Replace QString::split() by faster alternatives 2019-08-08 18:57:54 +08:00
Chocobo1
672b44acba
Let OS assign listening port
This applies when "Use different port on startup" option is selected.
2019-08-08 13:14:25 +08:00
Chocobo1
c19f8f6b5e
Use a randomized port number for the first run 2019-08-08 13:14:23 +08:00
Mike Tzou
7f1bff4eb4
Merge pull request #11017 from Chocobo1/apictrl
Improvements to APIController class
2019-08-06 10:17:27 +08:00
Chocobo1
d92bf13706
Use a QString directly instead of QStringList 2019-08-05 20:56:16 +08:00
Chocobo1
e90a2c00a5
Replace QList by QVector 2019-08-05 20:56:15 +08:00
Chocobo1
f4e7b8c6bf
Replace QMap with QHash 2019-08-05 09:51:39 +08:00
Mike Tzou
3811612f80
Merge pull request #10982 from Chocobo1/cleanup
Code base cleanup
2019-07-31 14:24:42 +08:00
Chocobo1
c1659a189b
Fix messed up symbols in log 2019-07-31 02:10:22 +08:00
Chocobo1
38fa6d2aee
Fix incomplete file extension not applied for new torrents 2019-07-28 13:05:46 +08:00
Chocobo1
7ab3479a34
Replace static_cast by qOverload 2019-07-26 22:32:18 +08:00
Chocobo1
ccec50e18e
Improve parsing in BitTorrent::PeerAddress::parse 2019-07-24 22:22:02 +08:00
Vladimir Golovnev
02ab77053e
Merge pull request #10961 from glassez/fastresume
Save updated resume data for completed torrents
2019-07-23 18:47:30 +03:00
Vladimir Golovnev
cf2e7d77d6
Merge pull request #10950 from glassez/drop-deprecated
Don't use deprecated libtorrent features
2019-07-23 09:19:15 +03:00
Vladimir Golovnev (Glassez)
4021a0c7ce
Store libtorrent native file index in QHash 2019-07-23 06:43:39 +03:00
Vladimir Golovnev (Glassez)
3d70ebfc46
Save updated resume data for completed torrents
If fastresume data was rejected we need to save updated
resume data after torrent finishes rechecking.
2019-07-23 06:32:13 +03:00
Vladimir Golovnev (Glassez)
ad6a40d5f4
Extract PeerAddress class into separate file 2019-07-23 06:27:35 +03:00
Vladimir Golovnev (Glassez)
b822d2c380
Fix requested torrent resume data handling
Session should increase an appropriate counter each time
the torrent resume data is requested to save.
2019-07-22 14:22:26 +03:00
Vladimir Golovnev (Glassez)
60ffa3030e
Don't use deprecated libtorrent features 2019-07-21 19:28:28 +03:00
Chocobo1
4a90716843
Add override keyword to functions 2019-07-19 11:58:56 +08:00
Vladimir Golovnev
17541b0d34
Merge pull request #10921 from glassez/ignore-actions
Ignore some actions on uninitialized torrents
2019-07-15 08:44:42 +03:00
Vladimir Golovnev (Glassez)
87d98403f4
Don't break torrent checking 2019-07-14 12:34:50 +03:00
Vladimir Golovnev (Glassez)
9462685c78
Ignore some actions on uninitialized torrents
Some actions can lead to an inconsistent state if applied
to an uninitialized torrent, so we just ignore them.
2019-07-14 12:34:28 +03:00
Vladimir Golovnev
b9da9ebfdf
Merge pull request #10910 from glassez/fix-add-torrent
Avoid race conditions when adding torrent
2019-07-14 10:45:05 +03:00
thalieht
7b31868e3c Rename priority to queue in the context of torrents 2019-07-13 14:04:16 +03:00
Vladimir Golovnev (Glassez)
644dc9792d
Avoid race conditions when adding torrent 2019-07-13 12:06:07 +03:00
Mike Tzou
24932f6cb6
Merge pull request #10895 from Chocobo1/tracker
Add dialog to mass edit torrent's tracker
2019-07-12 10:59:50 +08:00
Chocobo1
9e7f50517e
Add "Tracker entries" dialog 2019-07-11 12:10:19 +08:00
Vladimir Golovnev (Glassez)
9399b876eb
Fix torrent checking issues
Start all torrents auto-managed to prevent simultaneous checking
of multiple torrents.
Handle checking state of paused torrent to prevent it from being
resumed when qBittorrent is closed until checking isn't complete.
2019-07-09 08:54:50 +03:00
Chocobo1
b9094ff8a5
Use proper log message when there are no error 2019-07-05 23:46:12 +08:00
Chocobo1
664cfe7d69
Fix torrent properties not saved for paused torrents 2019-07-05 23:46:12 +08:00
Chocobo1
c4dbe84832
Use newer libtorrent API 2019-07-05 23:46:12 +08:00
Chocobo1
ed2199b91c
Add "File pool size" option 2019-07-03 18:06:07 +08:00
Chocobo1
6286bc716c
Add "Socket backlog size" option
The default value in libtorrent is 5 which is too small nowadays.
The new default value 30 is chosen to be in line with
QTcpServer::maxPendingConnections().
2019-07-03 17:36:56 +08:00
Chocobo1
73cf3fb68f
Use LogMsg() helper 2019-07-02 22:34:22 +08:00
Chocobo1
2bc91fba3e
Use newer libtorrent API 2019-06-28 20:36:31 +08:00
Chocobo1
042cd4267f
Remove upper limit of "Disk cache" setting 2019-06-22 17:13:24 +08:00
Chocobo1
11fdf91196
Suppress compiler warning
The debug message is emitting a format mismatch warning.
Fixup 4880dc812c.

And add curly brackets to if statement.
2019-06-21 00:32:12 +08:00
Chocobo1
e31c1ca780
Use functor based QMetaObject::invokeMethod 2019-06-20 11:36:38 +08:00
Chocobo1
4880dc812c
Use appropriate type 2019-06-19 18:52:24 +08:00
Chocobo1
a6c5a90630
Remove redundant variable 2019-06-19 18:52:24 +08:00
Chocobo1
623210df58
Improve handleFileErrorAlert error message 2019-06-19 18:52:23 +08:00
Vladimir Golovnev (Glassez)
8e65317d61
Rename "fromNativePath" to "toUniformPath"
Unlike "toNativePath" which name clearly reflects the function result
"fromNativePath" has no such clear meaning.
Since this function converts path into uniform format "toUniformPath"
is better name.
2019-06-17 15:55:49 +03:00
Chocobo1
a64f3bbc6a
Reorder if conditions slightly 2019-06-15 19:08:24 +08:00
Chocobo1
9893a415c0
Fix updated save path not saved for paused torrents 2019-06-15 19:08:23 +08:00
Chocobo1
7d860b6c24
Log save_resume_data_failed_alert 2019-06-15 19:08:23 +08:00
Chocobo1
4e87aebf55
Don't remove parent directories
QDir::rmpath removes *all* parent directories while QDir::rmdir removes
the specified directory.
2019-06-15 19:08:23 +08:00
Chocobo1
440860c4a9
Properly remove empty leftover folders after rename
TorrentInfo::origFilePath will return the very original path from
.torrent file, not the most recent file path before the rename operation
and thus the code would not be working as we expected.
2019-06-15 19:08:23 +08:00
Chocobo1
8191f1498a
Log file rename failed errors 2019-06-09 19:07:43 +08:00
Mike Tzou
c95650c4f3
Merge pull request #10752 from thalieht/fw-declare
Forward declare and remove some unused #include
2019-06-06 10:18:26 +08:00
thalieht
9995967fbf Remove some unused #include 2019-06-04 17:48:55 +03:00
thalieht
4370a7eb12 Forward declare in a few places 2019-06-04 17:48:55 +03:00
Vladimir Golovnev
6f6033cf1c
Merge pull request #10754 from glassez/fix-magnet
Disable "Upload mode" when start preloaded torrent. Closes #10751
2019-06-04 10:56:11 +03:00
Vladimir Golovnev (Glassez)
b644d6685f
Disable "Upload mode" when start preloaded torrent 2019-06-04 07:14:21 +03:00
Vladimir Golovnev (Glassez)
4ae4ae3cfc
Fix wrong indentation 2019-06-04 06:55:45 +03:00
Vladimir Golovnev (Glassez)
2c145fa57c
Fix incorrectly set torrent startup flag 2019-06-04 06:53:17 +03:00
Chocobo1
411b956009
Fix speed limit not applying to IPv6 peers
`TORRENT_USE_IPV6` is not used by libtorrent 1.2 anymore.
2019-06-02 15:00:27 +08:00
Chocobo1
3f2ce8a2b7
Remove unused stats_alert handler
Fixup 0fe9cd05c4.
2019-06-01 11:43:00 +08:00
Chocobo1
39830986c2
Use alert's timestamp
This way has better accuracy than running our own timer.
2019-06-01 11:40:23 +08:00
Chocobo1
0fe9cd05c4
Avoid using deprecated stats_alert
From libtorrent doc:
This alert has been superseded by calling post_torrent_updates() regularly on the session object.
2019-05-31 10:58:23 +08:00
Chocobo1
45bafab4e0
Log performance alerts from libtorrent 2019-05-27 14:46:33 +08:00
Chocobo1
9232dd30dc
Sort function declarations 2019-05-27 09:29:59 +08:00
Chocobo1
1b0ffd7781
Fix wrong logic
The error is caused by silly copy-paste error.
Fixup 09ff735007.
2019-05-25 14:55:27 +08:00
Chocobo1
09ff735007
Use newer libtorrent API
This commit covers trackerentry.cpp only.
2019-05-25 11:22:57 +08:00
Chocobo1
ed6bb0efdc
Replace QList by QVector for tracker related operations 2019-05-22 12:57:22 +08:00
Chocobo1
cb4c53c848
Follow the type used in libtorrent 2019-05-19 18:51:09 +08:00
Chocobo1
e92209475e
Use range-based for loops 2019-05-19 18:51:09 +08:00
Chocobo1
10e1c35998
Avoid unnecessary double lookup 2019-05-19 12:06:18 +08:00
Chocobo1
6738cdd715
Constify exception references 2019-05-19 12:06:18 +08:00
Chocobo1
e288de7ec1
Forward declare as much as possible 2019-05-19 12:06:18 +08:00
Mike Tzou
3d6dccc689
Merge pull request #10627 from Chocobo1/alg
Improve removeIf() to support other types
2019-05-16 10:45:55 +08:00
Chocobo1
459cdf6071
Fix assertion fail
When fileSize == 0, the second index could be smaller than the first index,
thus trigger the assert check in IndexInterval constructor.

Closes #10611.
2019-05-15 10:22:21 +08:00
Chocobo1
c6f3da1097
Improve removeIf() to support set types
We can now replace QMutable*Iterator by removeIf() which usage is more consistent with other
algorithm functions.
2019-05-14 01:26:01 +08:00
Chocobo1
5aaf040300
Remove libtorrentfwd.h 2019-05-13 11:20:42 +08:00
Chocobo1
3955eef50d
Change to lt namespace
Quoting from libtorrent doc:
> In the future, libtorrent will be the alias and lt the namespace name.
2019-05-13 11:20:41 +08:00
Chocobo1
4b263f057d
Use newer libtorrent API
This commit covers session.cpp only.
2019-05-13 11:20:41 +08:00
Chocobo1
677a419f0b
Use upstream defined namespace
`lt` namespace is defined since libtorrent 1.1.6 and our master branch requires >= 1.1.10,
so there is no need to add #if condition for it.
2019-05-13 11:20:41 +08:00
Chocobo1
bd8d70bf60
Refactor HTTP query parsing 2019-05-09 12:41:30 +08:00
Chocobo1
69d29af097
Fix '+' char not decoded to space correctly
Closes #10606.
2019-05-09 11:17:41 +08:00
Chocobo1
ae793b7395
Use upstream defined namespace alias 2019-05-06 20:26:15 +08:00
Chocobo1
56434fc8b9
Replace obsoleted QDateTime::fromTime_t() 2019-05-06 20:26:15 +08:00
Chocobo1
3f962ba336
Fix displaying invalid creation date
The bug is only observed when using libtorrent 1.2.
2019-05-06 20:26:14 +08:00
Chocobo1
3f10ac55a3
Migrate to update-to-date libtorrent functions 2019-05-06 20:26:14 +08:00
Chocobo1
aaed5f7fe0
Remove unused headers 2019-05-01 11:09:25 +08:00
thalieht
2f3b7642c2 Show user friendly size in error 2019-04-10 11:39:27 +03:00
thalieht
25102b9c5d Increase the download size limit to 100 MiB 2019-04-10 11:39:27 +03:00
Vladimir Golovnev (Glassez)
ead078a38e
Add preliminary support of libtorrent v1.2
libtorrent v1.2 should be built with deprecated features enabled.
2019-03-18 15:17:03 +03:00
thalieht
4c53447d35 Remove the max half-open connections option from GUI
Its functionality was deprecated long ago.
2019-03-13 21:08:40 +02:00
Vladimir Golovnev
928ce940c9
Merge pull request #10346 from glassez/download-manager
Improve "Download manager"
2019-03-10 09:13:07 +03:00
Vladimir Golovnev (Glassez)
746916a963
Use DownloadHandler behind the scenes 2019-03-08 13:00:37 +03:00
sledgehammer999
c2d1af9853
Merge pull request #10338 from sledgehammer999/raise_qt5_ver
Raise minimum Qt version to 5.9.0
2019-03-08 00:42:26 +02:00
Vladimir Golovnev (Glassez)
6cb15706f5
Reduce number of DownloadManager signals 2019-03-05 11:28:29 +03:00
Chocobo1
adbd34c795
Move helper functions to Utils::Gui namespace 2019-03-05 14:55:22 +08:00
sledgehammer999
5c63ad3b95
Raise minimum Qt version to 5.9.0 2019-03-04 16:48:49 +02:00
Chocobo1
168d3fbdac
Replace deprecated trUtf8() 2019-02-28 12:01:36 +08:00
thalieht
89dce36e98 Use uniform initialization on some default arguments 2019-02-25 17:05:15 +02:00
thalieht
86df25a3e9 Remove some unused stuff 2019-02-16 18:54:18 +02:00
thalieht
8c944bd4e1 Avoid repeating the return type 2019-02-16 18:54:18 +02:00
thalieht
8a3f942385 Don't use 'else' after return/break 2019-02-13 18:23:25 +02:00
Mike Tzou
78ab0e4ba9
Merge pull request #10220 from thalieht/const
Add const to many vars and arguments
2019-02-13 12:11:00 +08:00
thalieht
445adb0ab4 Convert pass-by-value arguments to const refs where applicable 2019-02-12 02:45:55 +02:00
thalieht
ca3ce87e06 Add const to many vars and arguments
Also remove const in declarations' arguments that are passed by value
2019-02-11 20:19:41 +02:00
Vladimir Golovnev
0413a05246
Merge pull request #10242 from glassez/ordered-recheck
Force recheck multiple torrents one by one. Closes #9120
2019-02-08 08:19:30 +03:00
Mike Tzou
efed3fc78c
Merge pull request #10256 from Chocobo1/license
Add license header
2019-02-08 12:07:08 +08:00
Chocobo1
364a837dbd
Revise comments about C++14 2019-02-05 13:35:54 +08:00
Chocobo1
6d29a3af60
Make use of std algorithms 2019-02-05 13:35:54 +08:00
Chocobo1
f789df7edf
Add license header 2019-02-04 17:28:55 +08:00
Vladimir Golovnev (Glassez)
61925f74fd
Force recheck multiple torrents one by one
Closes #9120.
2019-02-01 18:15:54 +03:00
Vladimir Golovnev
5b82b681cb
Merge pull request #10225 from glassez/http-request
Separate URL components before percent-decoding. Closes #9116
2019-01-28 08:46:41 +03:00
sledgehammer999
6fdc02f947
Merge pull request #10201 from sledgehammer999/dead_code
Remove leftover tracker authentication code
2019-01-27 22:19:21 +02:00
Vladimir Golovnev (Glassez)
b0446380c6
Separate URL components before percent-decoding
Allow special characters in query string parameters.
Closes #9116.
2019-01-27 15:33:19 +03:00
sledgehammer999
4a414d50f1
Remove leftover tracker authentication code 2019-01-23 02:38:46 +02:00
Chocobo1
04227f5a41
Add QBT_APP_64BIT define
Now we use QT_POINTER_SIZE to detect CPU bitness, it has the advantage of applicable to all CPU
architectures not limiting to x86 arch.
2019-01-19 10:14:10 +08:00
Vladimir Golovnev (Glassez)
302c99d7d5
Drop support of libtorrent < 1.1.10 2019-01-11 15:13:17 +03:00
Chocobo1
06e82d10f6
Replace boost::function with std::function 2019-01-06 19:19:57 +08:00
Chocobo1
d013e0922d
Use the proper Qt type 2019-01-06 18:32:01 +08:00
Chocobo1
2b903fc3d1
Move Utils::Misc::isUrl() function
All usage of this function gets to call Net::DownloadManager eventually.
2018-12-31 20:00:15 +08:00