Commit Graph

106 Commits

Author SHA1 Message Date
sledgehammer999
f3b4c4acfc Fix broken build. 2017-09-06 14:50:10 +03:00
Vladimir Golovnev
cbfdc8f721 Skip user input events when adding torrent
Closes #7327.
2017-09-05 22:00:37 +03:00
sledgehammer999
8b6e06cfff Options to better memory control by libtorrent. Closes #7029. 2017-09-05 21:57:16 +03:00
sledgehammer999
7e8f2ecc76 Fix connection problems when a specific interface/ip is configured.
Closes #7235.
Bug related to #7099 and Qt.
2017-09-05 21:57:07 +03:00
Vladimir Golovnev (Glassez)
8eb9117033 Fix temporary subfolder isn't deleted 2017-07-28 20:17:34 +03:00
Eugene Shalygin
ba8641f1ac Set interface for outgoing traffic.
This sets interface for outgoing traffic to the same as for ingoing
(listetning) with libtorrent 1.1.x.
2017-07-18 03:21:31 +03:00
Chocobo1
47ebb0df58 Add new webUI API. Closes #6457.
Now getting piece information for a specific torrent is possible via:

* Returns an array of states (integers) of pieces in order. Defined as:
  "0=not downloaded", "1=downloading", "2=downloaded".
  GET /query/getPieceStates/<torrent_hash>

* Returns an array of hashes (strings) of pieces in order:
  GET /query/getPieceHashes/<torrent_hash>
2017-05-31 00:34:20 +03:00
Frédéric Brière
2fa2d36c3b findIncompleteFiles(): Replace dir listing with individual checks. Closes #6265.
Looking for incomplete files in a new torrent by using a pre-generated
directory listing presents several disadvantages:

  - It requires us to extract the top-level directory name (in case it
    was renamed).
  - It requires us to know whether the top-level directory was stripped.
  - In the latter case, it may result in recursively traversing the
    entire contents of all downloaded torrents.

Calling QFile::exists() individually for each file solves all these
issues.

In so doing, the handling of single-file and multiple-file torrents are
rendered pretty much identical, and can therefore be merged.
2017-05-31 00:34:03 +03:00
Vladimir Golovnev
b6e1b6e501 Revert "Guard the flag used for deferred session configure." (#6733)
This reverts commit 5cbc7b16c0.
2017-05-31 00:33:57 +03:00
Vladimir Golovnev (Glassez)
91a38193f5 Remove torrent temp folder when torrent is deleted 2017-05-31 00:33:39 +03:00
Vladimir Golovnev (Glassez)
66b92f3bb4 Remove torrent temp folder if it becomes unneeded 2017-05-31 00:33:38 +03:00
Eugene Shalygin
b8eee9e1b8 Start up torrents after UI was created. Fixes #6454.
Commit dd0537d changed torrents startup code adding alerts processing
into it. Therefore alerts were processed before UI code subscribed to
signals and therefore part of alerts was not reflected in the UI.

Thus here we do not start torrents in Session constructor, but do that
from Application::exec() after UI was constructed and is ready to process
signals.
2017-05-31 00:33:21 +03:00
sledgehammer999
02c96fa5e2 Change the user-agent format in the session.cpp too. 2017-04-04 01:48:43 +03:00
Chocobo1
f0eab3f085 Follow http user-agent format
Add version variable without the starting "v"
2017-04-04 01:48:27 +03:00
Chocobo1
21212fdfe5 Prepend QBT_ for preprocessor variables 2017-04-04 01:48:26 +03:00
Vladimir Golovnev (Glassez)
a3eaee7e7e Remove exception-suppress macros
Remove SAFE_* macros from TorrentHandle class.
These macros using seems to be unneeded.
2017-04-04 01:48:03 +03:00
Chocobo1
8dcb792ac0 Replace rand() by a true uniform distribution generator 2017-03-05 18:47:37 +02:00
sledgehammer999
26c713851e Use new create_torrent constructor were available. 2017-03-04 01:17:26 +02:00
falco
dd0537d8d2 fix queue overload for add torrent at session start 2017-03-03 02:34:00 +02:00
dzmat
34e56eade8 reduce methods accessibility from public to private 2017-03-03 02:17:31 +02:00
sledgehammer999
f577a26fe2 Immediately update torrent_status after manipulating super seeding mode. Partially fixes #6072. 2017-03-03 02:14:35 +02:00
Falco
67bb2cc150 fix index overflow for torrents with invalid meta data or empty progress 2017-03-03 02:14:02 +02:00
Chocobo1
0333e23710 After files relocate, don't remove the old folder even if it is empty. 2017-03-03 02:08:00 +02:00
Chocobo1
7320a80caa Refactor 2017-03-03 02:07:59 +02:00
Chocobo1
d20d04299e Use the numbers from tracker scrape response. Closes #5048, #6117.
Add comments
Thanks to Ian Kent for helping investigate
2017-03-03 02:07:56 +02:00
dzmat
721d29edda DRY violation fixed 2017-03-03 02:07:54 +02:00
sledgehammer999
101b2f3ad2 Remove settings to exchange trackers. It wasn't used by non-libtorrent clients. Also it has a privacy risk and you might be DDoSing someone. DHT makes it obsolete anyway. 2017-03-03 02:07:51 +02:00
Eugene Shalygin
8041af72cd Fetch torrent status when generating final fastresume data
This is done to get correct queue position, which has to be written into
the fastresume file. See discussion in #6154.
2017-03-03 02:07:46 +02:00
Eugene Shalygin
4be6d0b30f Add queue repair code
This is a bit adjusted code created by nxd4, who shared it in issue
disappearing).
2017-03-03 02:07:45 +02:00
Eugene Shalygin
00d4f6141f Do not remove added files unconditionally. Closes #6248
If removing of added torrents is enabled and dialog for adding torrents
is disabled, file guard was assuming that torrent is added successfully.
And that can be not the case if a user trying to add a broken torrent
file (or not a torrent file at all). Then this file gets deleted always.

Fix this by checking result of addTorrent_impl().
2017-03-03 01:46:56 +02:00
Eugene Shalygin
92428cee5d Set upper version limit for QTBUG-52633
The bug seems to be fixed in version 5.7.1.
2017-03-03 01:46:28 +02:00
sledgehammer999
4cf549ff25 Fix share ratio limiting. Broken by commit 259b5e51c4. Closes #6039 #6048. 2016-12-15 00:06:04 +02:00
Eugene Shalygin
9a0d25284c Add a workaround for QTBUG-52633, qBt issue #5073
The QTBUG-52633 results in food of network interface changed events, libtorrent IP
rebind calls and flood in the qBt log. The work around is the check not only for
interface name, but for IP address on that interface before triggering the libtorrent rebind.
2016-12-14 02:04:12 +02:00
dzmat
a790901691 minimizing the number of warnings about deprecated auto_ptr 2016-12-12 21:17:17 +02:00
sledgehammer999
106dcfd00e Decouple dependency between Session and BandwidthScheduler during Session init. Closes #6007. 2016-12-12 21:17:14 +02:00
Chocobo1
97d2c0d187 Fix warning C4267.
conversion from 'size_t' to 'int', possible loss of data.
2016-12-12 21:17:13 +02:00
Anton Lashkov
67e7315eae Fix name of variable same as class member 2016-12-12 21:16:34 +02:00
thalieht
642377bd65 Log: set embedded Tracker [OFF] msg type as info 2016-12-12 21:16:32 +02:00
sledgehammer999
09e3698b37 Don't ever stop seeding forced torrents. Closes #5784. 2016-12-12 21:15:51 +02:00
sledgehammer999
e9f38ebcfd Some more compiler warnings fixed. 2016-12-12 21:15:50 +02:00
sledgehammer999
4dba31f534 Fix warning due to stupid typo. 2016-12-12 21:15:50 +02:00
sledgehammer999
eaec8fcddd Fix setting a speed limit. 2016-12-12 21:15:49 +02:00
sledgehammer999
f86fd52d6f Add libtorrent's DHT bootstrap node to our bootstrap list. 2016-12-12 21:15:49 +02:00
sledgehammer999
f3f175570c Use the new API to add DHT bootstrap nodes for libtorrent 1.1.x and simplify the code a bit. 2016-12-12 21:15:49 +02:00
sledgehammer999
729c80f910 Use new libtorrent 1.1.2+ utility function to generate client ID instead. 2016-12-12 21:15:48 +02:00
sledgehammer999
fcaca558a0 Make sure that paths are loaded/saved using slashes as dir separators. 2016-12-12 21:15:48 +02:00
sledgehammer999
983df9113e Display message about libtorrent plugins for the correct case. 2016-12-12 21:15:48 +02:00
sledgehammer999
acf9874252 Migrate last setting related to interfaces to the new system. 2016-12-12 21:15:48 +02:00
sledgehammer999
558ea53cc2 Use better variable names for tracker announce IP setting. 2016-12-12 21:15:47 +02:00
sledgehammer999
4a5ab93c62 Guard the flag used for deferred session configure. 2016-12-12 21:15:46 +02:00