Commit Graph

9367 Commits

Author SHA1 Message Date
arvidn 0e96ae2906 fix building with newer version of boost build, remove old option to turn off PIC on darwin 2018-08-13 07:09:24 +02:00
d_komarov 0bcf6cef23 Fix exporting files
To avoid overwriting existing files, before exporting anything from a
parts file, check whether it contains valid data.
2018-08-10 20:21:29 +02:00
arvidn 6d2541f131 improve connect-boost feature, to make new torrents quickly connect peers 2018-08-09 20:12:56 +02:00
Arvid Norberg 0a5b3c1bb0 update documentation for save_resume_data() and stop_when_ready() 2018-08-09 00:57:21 +02:00
Arvid Norberg 149c24e549 make test_ssl less likely to fail spuriously 2018-08-02 23:17:38 +02:00
arvidn 70d64327fd bump checking_mem_usage to be higher than the default in the high_performance_seed preset 2018-08-02 23:15:51 +02:00
arvidn 19df645012 apply piece priorities immediately, even though file priority updares are async. save both file- and piece priorities in fast resume. when loading, apply file prios first, then piece prios 2018-07-29 21:53:01 +02:00
arvidn 7980447480 added missing stats_metric python binding 2018-07-29 00:44:48 +02:00
arvidn c92f527b60 in torrent_handle::id(), only shift down the pointer by 10 bits 2018-07-28 10:03:30 +02:00
Arvid Norberg 2f56fa6c3e bump version to 1.1.9 2018-07-20 13:06:12 +02:00
arvidn 1ebc5f9ef2 remove special handling of uTP peers 2018-07-20 07:47:08 +02:00
Arvid Norberg 5bb5ba145f fix exporting files from partfile while seeding 2018-07-18 10:56:24 +02:00
arvidn 5d3ac8ff5c fix some warnings 2018-07-18 10:38:45 +02:00
arvidn f89c27183b remove unused function 2018-07-18 09:18:09 +02:00
arvidn 2e6f374319 fix typos 2018-07-13 16:45:22 +02:00
Andrei Kurushin 7a34b27499 fix Windows "file::preadv" emulation EOF handling 2018-07-12 23:54:34 +02:00
d-komarov 490d8eb328 Fix previous patch fixing deadlock in DllMain (#3158)
Simplify `get_manage_volume_privs()` and renamed it
2018-07-12 16:46:36 +02:00
arvidn d2d35b69fd raise priority of cache_flushed_alert and post it unconditionally when triggered explicily by the client 2018-07-08 18:23:44 +02:00
Arvid Norberg b60912569f back-port resume data validation fixes 2018-07-08 17:31:29 +02:00
arvidn b5cd959dd1 bump the minimum number of hash jobs per thread from 2 to 4 2018-07-07 18:02:24 +02:00
d_komarov 1c86e94de6 Fix deadlock when loading libtorrent Dll
Definition of `bool file::has_manage_volume_privs` involves a call to
`get_manage_volume_privs()`, causing restricted tasks to be performed
from within `DllMain` function. They introduce possibility that client
application deadlocks or crashes.

You should never perform the following tasks from within DllMain:

* Call `LoadLibrary` or `LoadLibraryEx` (either directly or indirectly).
  This can cause a deadlock or a crash.

* Call the registry functions. These functions are implemented in
  'Advapi32.dll'. If not initialized before your DLL, it can access
  uninitialized memory and cause the process to crash.
2018-07-07 18:00:07 +02:00
arvidn 3249b70cbd fix recent patch to support setting file priorities on torrents that don't have metadata yet 2018-07-07 11:34:11 +02:00
d-komarov 6d5a6f05ad Fix torrent files prioritization (#3133)
After setting file priority, any subsequent attempt to set different priorities will fail if there is a `file_priority` job running in in disk thread. This happens because `torrent::m_file_priority` is being updated before adding disk thread job. The problem is gone if the file priority vector owned by the torrent object, is modified in the `torrent::on_file_priority` callback, when disk job finishes.
2018-07-04 08:16:33 +02:00
arvidn 4576723090 bump version to 1.1.8 2018-06-25 12:25:11 +02:00
Arvid Norberg 78d9c284e9 use more threads when creating torrents 2018-06-24 16:49:57 +02:00
Arvid Norberg 56a25ce280 bump checking_mem_usage default setting 2018-06-24 07:44:58 +02:00
Arvid Norberg b0b1bfb7a9 enable coalesce_reads and coalesce_writes by default on windows 2018-06-24 07:39:59 +02:00
Steven Siloti b7f230316c set the minimum number of checking jobs based on the number of hasher threads
To effectively mask the latency of generating more hash jobs there need to be
at least two jobs in-flight for each hasher thread.
2018-06-23 23:10:55 +02:00
arvidn 1e3a7cf0f4 fix hash-job fast-path 2018-06-23 23:08:58 +02:00
arvidn 0c147164bc introduce a fast-path for the hash disk job 2018-06-20 01:00:16 +02:00
arvidn 4ae262d2d4 fix race condition in part_file 2018-06-19 14:50:02 +02:00
d-komarov 81ce7aa4ab Fix parts file i/o errors (#3110)
Since i/o operations are not synchronized, it is possible that one thread closes file handle, opened in another thread. With addition of `hidden` file attribute, an old bug in `part_file::open_file()` revealed both problems, causing a lot of random i/o errors in parts file. Fixing `open_file` bug should reduce the number of such errors back to 'normal'.
2018-06-18 14:34:39 +02:00
arvidn af686a3819 add switch to client_test to log session stats 2018-06-16 17:42:34 +02:00
arvidn 2364699292 clarify documentation for move_storage() 2018-06-11 00:05:36 +02:00
Arvid Norberg 049d867c12 fixed race condition in random number generator 2018-06-06 09:54:49 +02:00
Arvid Norberg 2408200475 fix race condition in stat_cache 2018-06-05 19:07:33 +02:00
Arvid Norberg 794ccf4f79 remove unused disk stats counters 2018-06-05 19:03:04 +02:00
arvidn 95cfc16bca fix integer overflow in alert_manager 2018-06-02 15:16:08 +02:00
arvidn c55bc7dd42 improve error handling of failing to change file priority 2018-05-31 00:47:17 +02:00
Steven Siloti 396c5dd3af remove use of deprecated function readdir_r
Ports 140b8ace onto RC_1_1 branch
2018-05-28 16:06:41 +02:00
sledgehammer_999 4cef1814b0 Add 1.1.7 release in the ChangeLog 2018-05-28 09:44:26 +02:00
Eugene Shalygin b1d7dd89c1 Reflect Boost version and C++11/14 interconnection in CMake build
C++ standard and Boost requirements are connected:
1. With C++11 onward, we require Boost system component, with
C++03 we need chrono and random components too
2. When building against boost 1.66 and newer, C++11 is required.

Closes #3011, partially closes #2966.
2018-05-27 22:59:13 +02:00
arvidn 35d7672432 raise priority of fastresum_rejected_alert 2018-05-27 22:33:24 +02:00
arvidn 6ec6c1b340 since moving an existing file into the part file isn't supported, just don't use the partfile for existing files when their priority is set to 0 2018-05-24 23:45:28 +02:00
arvidn 77191a3820 fix hidden attribute in file class 2018-05-23 10:39:10 +02:00
arvidn ed8fffc1a6 set the hidden attribute when creating the part file 2018-05-23 10:39:10 +02:00
Steven Siloti 54f00ce09d don't change state to downloading if the torrent is finished
Move the transition to downloading after the torrent has been checked
for being finished. This prevents a spurious state_changed_alert when
adding a torrent which is already completed.

Also move the posting of the torrent_checked_alert to maintain the
historical ordering of that alert with respect to the transition out of
checking_resume_data.
2018-05-20 08:45:24 +02:00
d_komarov 5f74b6e353 Bump `file_error_alert` priority
This alert's priority must be higher than `block_downloading_alert`'s
to allow custom handling of file errors.

With progress notifications enabled, network thread might fully load
alerts queue, so file errors from disk thread won't have a chance to
be delivered.
2018-05-17 00:55:07 +02:00
d_komarov 96700c15ff Set http request timeout to 5 seconds
Fixes random test failures in test_http_connection.
2018-05-17 00:54:12 +02:00
Steven Siloti 243353a144 account for partially downloaded pieces when announcing as a seed 2018-05-13 22:35:04 +02:00