arvidn
f4b0dbf115
merged RC_1_1 into master
2018-07-20 09:28:21 +02:00
arvidn
1ebc5f9ef2
remove special handling of uTP peers
2018-07-20 07:47:08 +02:00
arvidn
9f6f23068c
make natpmp deal with address_v6 instead of the bytes_type, and use write_address instead of memcpy
2018-07-20 07:46:12 +02:00
arvidn
e92cf18340
fix some warnings around unused variables, dead stores, potentially dereferencing nullptr and calling virtual functions from constructor
2018-07-20 01:03:16 +02:00
arvidn
d8755066e8
give some magic numbers names
2018-07-20 00:58:34 +02:00
arvidn
a7b7623f23
return values instead of using out-params
2018-07-19 23:58:36 +02:00
Arvid Norberg
828c5dd097
merged RC_1_1 into master
2018-07-19 14:37:22 +02:00
Arvid Norberg
5bb5ba145f
fix exporting files from partfile while seeding
2018-07-18 10:56:24 +02:00
Arvid Norberg
e88a9a4dda
merged RC_1_1 into master
2018-07-18 10:48:36 +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
Alden Torres
d9d387d711
minor code cleanup, more use of const ( #3174 )
...
* minor code cleanup, more use of const, using u literal per lint
* revert use of unsigned literal
* reverted loop change
2018-07-16 18:23:38 +02:00
arvidn
4aa3c4573a
use the strong type for pause flags
2018-07-16 12:06:21 +02:00
arvidn
4633258fbe
make the DHT announce flags a strong type
2018-07-16 12:04:16 +02:00
Steven Siloti
e5be30157f
set port in handshake based on source address ( #3172 )
2018-07-15 21:15:04 +02:00
arvidn
52af3eaa7f
simplify preadv and pwritev emulation functions
2018-07-14 09:03:15 +02:00
Andrei Kurushin
7a34b27499
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:54:34 +02:00
Andrei Kurushin
5399a14027
Windows async read EOF handling ( #3162 )
...
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:30:50 +02:00
arvidn
7ce20fd9d0
fix bug in read/write resume data functions. add proper tests
2018-07-12 23:19:08 +02:00
arvidn
59343f4f95
merged RC_1_1 into master
2018-07-12 20:20:02 +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
37a6a47ea3
minor cleanups around saving resume data
2018-07-12 08:38:53 +02:00
Steven Siloti
76ef8b9d72
simplify SSL torrent announce flags logic
2018-07-12 08:36:57 +02:00
Steven Siloti
28b6f64c4b
dht: don't set implied_port for SSL torrents
2018-07-12 08:36:57 +02:00
Steven Siloti
961cf62cad
dht: announce with per-interface listen port
2018-07-12 08:36:57 +02:00
Alden Torres
965ca9a565
avoid copy of arrays in dht alerts constructors
2018-07-09 19:53:35 +02:00
Arvid Norberg
e317c72db3
merged RC_1_1 into master
2018-07-08 18:52:13 +02:00
arvidn
3c2b076eb0
deprecated anonymous_mode_alert
2018-07-08 18:26:47 +02:00
arvidn
b750b6cc2c
deprecate (and disable) the force-proxy setting. Instead, always use the proxy when set, never fall back on circumventing it
2018-07-08 18:26:47 +02:00
arvidn
2ba0e5ae2c
move the file priority vector throught the disk_io_job, to avoid copies
2018-07-08 18:25:06 +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
arvidn
e45df614fe
improve type safety of internal leave_seed_mode() function
2018-07-08 17:32:50 +02:00
Alden Torres
6d2f804d9f
code refactor related to the use of index_range and end index
2018-07-08 17:32:30 +02:00
arvidn
0659a929af
fix some validation issues in read_resume_data()
2018-07-08 17:32:14 +02:00
Arvid Norberg
b60912569f
back-port resume data validation fixes
2018-07-08 17:31:29 +02:00
Arvid Norberg
3fede4b223
merged RC_1_1 into master
2018-07-08 11:55:32 +02:00
arvidn
efe3036879
clean up proxy_settings constructors
2018-07-07 18:02:43 +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
Arvid Norberg
c7e705e158
merged RC_1_1 into master
2018-07-07 13:33:15 +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
arvidn
b76c149bdc
use std::aray for the temporary buffer in socks5 UDP socket
2018-07-04 08:17:35 +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
10deff2f91
fix some unintentional copies (with explicit moves)
2018-07-01 18:22:32 +02:00
arvidn
d439c8729a
qualify some assignment operators to disallow assignment to temporaries
2018-07-01 17:29:50 +02:00
Alden Torres
2c5da2778a
more lint oriented code refactor/cleanup
2018-06-29 13:27:29 +02:00
arvidn
4576723090
bump version to 1.1.8
2018-06-25 12:25:11 +02:00
Arvid Norberg
ab56bf964f
fix missing move of file object in part_file
2018-06-24 21:34:56 +02:00
arvidn
b67166b29d
merged RC_1_1 into master
2018-06-24 17:59:28 +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
Alden Torres
be78a43d05
more use of empty(), emplace_back, const and auto in disk_io_thread code
2018-06-24 07:02:17 +02:00
arvidn
2cb29f88ac
merged RC_1_1 into master
2018-06-23 23:22:26 +02:00
Alden Torres
f139afc1ad
minor code refactor, cleanup and typo in peer related code
2018-06-23 23:11:48 +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
16b32741ce
fix coalesce read bug
2018-06-23 21:46:52 +02:00
arvidn
7ca769884c
merged RC_1_1 into master
2018-06-22 08:33:44 +02:00
arvidn
0c147164bc
introduce a fast-path for the hash disk job
2018-06-20 01:00:16 +02:00
arvidn
f5a2015302
merge RC_1_1 into master
2018-06-19 22:26:01 +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
Alden Torres
03971be80b
some refactor, more use of auto and const in peer_connection.cpp ( #3105 )
2018-06-16 17:22:04 +02:00
Alden Torres
dfe47aa2a9
fixed sign implicit conversion warnings in new enum_net code ( #3107 )
2018-06-16 15:19:02 +02:00
arvidn
5530793c75
improve the API for iterating over all files and pieces, with the new strong index types.
2018-06-12 11:44:29 +02:00
Alden Torres
a2ea79de4e
minor code refactor in utp related code, more use of const
2018-06-12 11:41:32 +02:00
Arvid Norberg
b26467c04e
deprecate network-threads setting
2018-06-10 19:34:07 +02:00
Arvid Norberg
6647b0988d
add support for multi-home NAT-PMP and PCP
2018-06-10 16:55:42 +02:00
Steven Siloti
247672820c
report transport version in NAT-PMP send/receive logs
2018-06-09 16:40:46 -07:00
arvidn
e7fe7f1b89
fix boost::get<> invocation for variant
2018-06-10 00:56:55 +02:00
Steven Siloti
f039cffeb3
relax packet length check prior to checking response code
...
Don't assume that an unsupported version response will contain anything past
the response code.
2018-06-09 08:55:49 -07:00
Alden Torres
a357e490ed
minor code refactor, more use of auto
2018-06-08 21:56:06 +02:00
Steven Siloti
fbaa1afd62
return a vector of mapping ids from add_port_mapping
2018-06-07 18:18:31 -07:00
Steven Siloti
e523566622
add support for the Port Control Protocol (PCP)
2018-06-07 18:18:31 -07:00
Steven Siloti
f6720e31ed
don't re-map all listen sockets when changing listen_interfaces
...
New sockets will be mapped regardless of the remap parameter. Requesting
full re-mapping just creates unecessary network traffic.
2018-06-07 18:16:08 -07:00
Steven Siloti
78be52112f
create a natpmp instance for each listen socket
2018-06-07 18:16:08 -07:00
Steven Siloti
496cf46b25
enum_routes fixes on Linux
2018-06-07 18:09:51 -07:00
Steven Siloti
4a578b1450
fix scope_id in enum_routes on Windows
2018-06-07 18:09:51 -07:00
Steven Siloti
72cf4fd9ea
Remove UNC prefixes from device names on Windows
2018-06-07 18:09:51 -07:00
Steven Siloti
603e206f36
fix netmask of routes on Windows
...
The build_netmask function was incorrectly dividing the size of the bytes_type
by 8. Also use b.size() instead of sizeof for consistency.
I'm not 100% certain what the difference between DestinationPrefix.PrefixLength
and SitePrefixLength is. It looks like SitePrefixLength is something specific to
site-local addresses. Emperically I found DestinationPrefix.PrefixLength
contains reasonable values while SitePrefixLength is always zero.
2018-06-07 18:09:51 -07:00
Arvid Norberg
e88339378c
merged RC_1_1 into master
2018-06-07 00:30:23 +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
267ca40b28
merged RC_1_1 into master
2018-06-02 13:15:13 +02:00
arvidn
c55bc7dd42
improve error handling of failing to change file priority
2018-05-31 00:47:17 +02:00
Alden Torres
8a0ac58658
some lint oriented refactor, more use of const
2018-05-30 23:52:28 +02:00
arvidn
c56f6abf72
deliver notification of alerts being dropped via alerts_dropped_alert
2018-05-30 11:26:02 +02:00
Alden Torres
f9b43f3511
some cast cleanup, const modifier and lint refactor
2018-05-30 00:06:52 +02:00
Alden Torres
6c4869f044
moved instantiate_connection to aux namespace
2018-05-29 09:25:25 +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
arvidn
3b0ce8d2e1
merged RC_1_1 into master
2018-05-28 15:56:22 +02:00
Alden Torres
d6cecee8c0
some code cleanup and minor refactor
2018-05-24 23:46:37 +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
534276e7a5
refactor to use the utility function for bind_socket_to_device() instead of using the bind_to_device socket option directly, to make it best effort. include operation enum in udp_error alert.
2018-05-23 12:11:04 +02:00
Alden Torres
ff300ed224
some cleanup and refactor in torrent_info code ( #3054 )
2018-05-23 10:39:55 +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
arvidn
55a0a6e0df
fix production asserts
2018-05-22 12:12:33 +02:00