Steven Siloti
ca07ee83a3
mark all converstion to bool operators as explicit
2016-12-12 01:34:36 -05:00
Alden Torres
d9f8d4b642
refactor to more use of auto c++11 keyword ( #1404 )
...
refactor to more use of auto c++11 keyword
2016-12-11 20:50:30 -05:00
Alden Torres
21fb0e8c20
making tracker_manager::remove_request type specific
2016-12-11 14:20:37 -05:00
Alden Torres
3a92908f39
formatting, added std:: and spaces
2016-12-10 23:11:43 -05:00
Alden Torres
dd7179fb10
added a few consts to arguments and local variables
2016-12-10 18:19:14 -05:00
arvidn
bbfe58d03c
fix bind-to-device for UDP sockets
2016-12-10 18:18:54 -05:00
Alden Torres
6b70ac1f77
improved port reading in lsd, minor code refactor
2016-12-10 12:18:31 -05:00
Alden Torres
e73435a77b
fixed shorten-64-to-32 warnings for clang
2016-12-10 08:57:08 -05:00
Alden Torres
7266b0b360
fixing shorten-64-to-32 warnings, part 4
2016-12-09 17:24:07 -05:00
Alden Torres
123a6389cd
minor refactor in torrent_status and minor header cleanup in torrent_handle
2016-12-09 17:18:03 -05:00
Pavel Pimenov
d8b413c771
Fix c4996 strcpy ( #1395 )
...
use std::memcpy() instead of std::strcpy()
2016-12-09 17:17:27 -05:00
Steven Siloti
30303c17df
don't indicate interest in peers when in upload only mode
...
If the torrent is paused we don't want to mark peers as interesting
even if the torrent has not finished downloading.
2016-12-09 17:16:25 -05:00
Alden Torres
e1dcf82e2a
fixing shorten-64-to-32 warnings, part 3
2016-12-08 20:22:34 -05:00
Steven Siloti
5d0322d393
fix assertion in fingerprint::to_string
2016-12-07 20:52:45 -05:00
Alden Torres
4142dfe5eb
headers and code cleanup in udp_socket code
2016-12-06 22:54:29 -05:00
Alden Torres
ffdf5c0f5d
avoid unnecessary creation of strings in create_torrent
2016-12-06 22:53:55 -05:00
Alden Torres
0625606230
fixing shorten-64-to-32 warnings, part 2
2016-12-06 22:53:41 -05:00
Alden Torres
553cff97fb
minor fix of the use of TORRENT_USE_I2P
2016-12-06 00:39:27 -05:00
Alden Torres
37cbdc5b37
fixing shorten-64-to-32 warnings, part 1
2016-12-05 00:22:17 -05:00
arvidn
864fcfaced
initialize piece priorities to 4
2016-12-04 18:36:45 -05:00
Steven Siloti
b9169609df
support separate external ip for each interface ( #1383 )
...
support separate external ip for each interface
2016-12-04 15:58:51 -05:00
arvidn
8874a907ef
fix to file priorities
2016-12-03 00:57:52 -05:00
Alden Torres
69eff36a52
passing block size to smart_ban plugin methods for hashing
2016-12-02 18:08:04 -05:00
arvidn
09b5cfd688
remove build option to use narrower types in piece_picker (optimize_memory_usage)
2016-11-29 08:11:51 -05:00
Pavel Pimenov
e3c5a639ca
Add bt_peer_connection::write_dht_port() ( #1360 )
...
add void bt_peer_connection::write_dht_port()
2016-11-29 08:11:13 -05:00
Pavel Pimenov
ee61d5c308
Small optimisation identify_client ( #1361 )
...
small optimisation identify_client
2016-11-29 01:01:00 -05:00
arvidn
0f38acf829
don't send dht-port if we don't have a udp listen socket
2016-11-27 21:22:11 -05:00
arvidn
6579ae1994
fix listen_failed_alert socket_type report bug
2016-11-27 21:22:11 -05:00
Alden Torres
d5c4cd7280
fixed sign-compare warnings and some refactor ( #1354 )
...
fixed sign-compare warnings and some refactor. make sequence_number backed by std::int64_t
2016-11-27 08:46:53 -05:00
Arvid Norberg
0df9d1c641
upgrade some C-arrays to std::array in escape_string.cpp ( #1357 )
...
upgrade some C-arrays to std::array in escape_string.cpp
2016-11-26 23:38:25 -05:00
Arvid Norberg
54f052a97b
allocation slot type ( #1352 )
...
use a specialized type for allocation slot indices
2016-11-26 03:09:01 -05:00
Arvid Norberg
15ab8f387b
cleaning up of disk_interface and improving type safety ( #1353 )
...
cleaned up disk_interface and improved type safety. removed unused disk status code disk_check_aborted, and removed status code return value for async_hash
2016-11-26 01:51:47 -05:00
Alden Torres
c30027e4a1
more integral type conversion warning fixes, now only needs shorten-64-to-32 ( #1349 )
...
more integral type conversion warning fixes, now only needs shorten-64-to-32
2016-11-25 11:17:25 -05:00
arvidn
1d5f42d6d0
convert remaining disk io jobs
2016-11-23 19:02:05 -05:00
arvidn
f08501b869
update callback interface for async_check_files and async_flush_piece
2016-11-23 19:02:05 -05:00
arvidn
d8662533d5
update callback signature for async_move_storage and async_release_files
2016-11-23 19:02:05 -05:00
arvidn
fc9dabe1ab
start chipping away at removing disk_io_job from the disk_interface
2016-11-23 19:02:05 -05:00
Steven Siloti
06c53a41d1
revisions based on code review
...
Moved the logic to determine which sockets to keep to a separate function and
add unit tests for it.
Store the port which was originally specified for a listen socket so that we
can match sockets reliably even with port retries.
2016-11-23 01:09:05 -05:00
Steven Siloti
babb93fb1e
keep old listen sockets if they're still valid
...
This is to support multi-home. We need to be able to keep track of which socket
a DHT node or UTP connection should use. We also need to generate notifications
when local endpoints come and go so that the DHT tracker knows when to create
or delete nodes. The easiest way to do this is to keep the same socket for as
long as its local endpoint is valid. This way the nodes and connections can
simply reference the socket itself and generating notifications is trivial.
2016-11-23 01:09:05 -05:00
Steven Siloti
07650c8558
set scope id when enumerating IPv6 addresses
...
This is necessary to be able to correctly match enumerated addresses
with those stored in listen_socket_t::local_endpoint when there is a
non-default zone id.
2016-11-23 01:09:05 -05:00
Alden Torres
86251adb1b
more fixes of integral type conversion warnings
2016-11-21 20:22:18 -05:00
Alden Torres
84e0362180
more fixes in signed compare warnings ( #1345 )
...
more fixes in signed compare warnings
2016-11-21 01:49:56 -05:00
arvidn
0e33e62627
merged RC_1_1 into master
2016-11-20 11:18:16 -05:00
arvidn
d5b76d2237
move block_cache_reference out of disk_io_job header
2016-11-20 10:34:42 -05:00
arvidn
35126576ca
remove use of disk_io_job from buffer_holder
2016-11-20 10:34:42 -05:00
arvidn
5b3a730b1f
steps towards removing disk_io_job from disk_interface
2016-11-20 10:34:42 -05:00
arvidn
4df1ecbe25
re-enable some warnings and fix code
2016-11-20 01:05:16 -05:00
Arvid Norberg
13d9361da1
don't allocate handlers for proxy sockets in the heap, move them instead ( #1342 )
...
don't allocate handlers for proxy sockets in the heap, move them instead
2016-11-19 22:56:34 -05:00
Alden Torres
a59350687a
fixed a few warnings related to signed/unsigned conversions ( #1338 )
...
fixed a few warnings related to signed/unsigned conversions
2016-11-19 21:14:16 -05:00
Andrei Kurushin
998daf6e0e
fix windows-version=xp build ( #1327 )
...
fix sha512 support for windows xp, pre sp3
2016-11-19 11:07:33 -05:00
tnextday
b25ea5329f
updates `m_last_sent` in `peer_connection::setup_send()` instand of `peer_connection::keep_alive()`
2016-11-19 02:03:12 -05:00
Alden Torres
5490f802ec
fixed warning non-virtual-dtor and minor code refactor ( #1324 )
...
fixed warning non-virtual-dtor and minor code refactor
2016-11-18 08:21:42 -05:00
Alden Torres
4c7e24ea35
more use of std::make_shared, fixing warnings of over-aligned
2016-11-18 00:28:29 -05:00
Andrei Kurushin
0a31e26344
fix logging=off build
2016-11-16 23:14:28 -05:00
Alden Torres
9e1305ed75
auto loop, consts and minor cleanup refactor
2016-11-15 19:54:38 -05:00
Andrei Kurushin
c4f1a928a4
fix i2p=off build
2016-11-15 19:48:14 -05:00
arvidn
14236993ea
collapse logic in piece_manager into storage directly
2016-11-13 02:53:16 -05:00
Alden Torres
2b58cb9de3
using std instead of boost for integral types and some headers cleanup
2016-11-12 21:22:59 -05:00
arvidn
ccd539f977
pull check resume data logic out of piece_manager into disk_io_thread and simplify it
2016-11-12 18:03:18 -05:00
arvidn
c9333849e6
deprecate relative times in torrent_status, replaced by std::chrono::time_point
2016-11-12 17:37:10 -05:00
arvidn
bba121d010
fix recent regression causing potential duplicate add_torrent_alerts
2016-11-12 01:03:38 -05:00
arvidn
e447a50c9d
use enum class in udp_tracker_connection
2016-11-11 21:39:54 -05:00
arvidn
583082a3a0
merged RC_1_1 into master
2016-11-09 19:53:55 -05:00
arvidn
f33d1b32e3
add trackers from add_torrent_params/magnet links to separate tiers
2016-11-09 18:44:01 -05:00
Alden Torres
1a159666ff
some refactor in ip change notifier source code ( #1301 )
...
some refactor in ip change notifier source code. using NETLINK_ROUTE (value 0) as the default nl_family
2016-11-08 03:44:43 -05:00
Steven Siloti
e589e342ef
reopen listen sockets when the system's IP changes ( #1299 )
...
reopen listen sockets when the system's IP changes. Only Linux and Windows supported for now.
2016-11-07 07:40:09 -05:00
arvidn
11ca69b9fc
simplify disk_io_thread interface by setting the number of threads via settings rather than a separate function
2016-11-06 23:07:09 -05:00
arvidn
3ff89f29d7
remove explicit ticking of storage from the torrent. instead make the disk_io_thread do it automatically
2016-11-06 10:26:10 -05:00
arvidn
c72053a75c
remove unused clear_read_cache function
2016-11-05 21:39:45 -04:00
arvidn
2a999e1ea7
merge RC_1_1 into master
2016-11-03 23:58:35 -04:00
Arvid Norberg
f5c7a49d61
remove incorrect deleted-storages assert and add some more test coverage in test_metadata_extensions ( #1286 )
2016-11-03 19:39:42 -04:00
arvidn
d91f6f8c05
merged RC_1_1 into master
2016-11-03 01:19:38 -04:00
Alden Torres
aef614a74c
fix build warnings/errors, typos and minor cleanup ( #1277 )
...
fix build warnings/errors, typos and minor cleanup. no need to provide boost::throw_exception, better left it to the user
2016-11-02 01:03:12 -04:00
Arvid Norberg
09cbd0a51d
remove deprecated disk_io_thread operations ( #1284 )
2016-11-02 01:01:27 -04:00
Arvid Norberg
b61ebca14a
moved async-load-torrent feature out of disk-io-thread ( #1282 )
...
moved async-load-torrent feature out of disk-io-thread into a generic worker thread
2016-11-02 01:01:04 -04:00
Arvid Norberg
1c2a8fb96e
move coalescing of reclaim block from disk_io_thread to session_impl ( #1281 )
2016-10-31 23:48:30 -04:00
Arvid Norberg
21d05945f2
documentation and deprecation fixes ( #1275 )
...
documentation and deprecation fixes
2016-10-31 20:00:01 -04:00
Arvid Norberg
8daa200d11
simplify interaction with disk_io_thread by removing the uncork interface ( #1271 )
...
simplify the interaction with the disk_io_thread by removing the uncork interface. This should be turned into a transparent part of peer_connection instead and remove cork logic from peer_connection
2016-10-30 18:21:07 -04:00
arvidn
b97bb84a9f
merge RC_1_1 into master
2016-10-29 14:25:57 -04:00
Arvid Norberg
7476f7875e
don't check file-sizes resume data for files that likely is in the partfile ( #1268 )
2016-10-29 13:53:24 -04:00
Arvid Norberg
d1a59879cb
deprecate mmap_cache ( #1269 )
...
deprecated mmap_cache feature
2016-10-29 13:42:42 -04:00
Alden Torres
dac0b9ec64
more use of nullptr, minor refactor and formatting ( #1267 )
2016-10-28 12:28:27 -04:00
arvidn
500bb24dba
merged RC_1_1 into master
2016-10-26 23:30:58 -04:00
Arvid Norberg
5f3c52f406
transition to more default member initializers ( #1261 )
2016-10-26 20:41:57 -04:00
Steven Siloti
f5366bd816
use span for scatter/gather lists ( #1260 )
...
use span for gather/scatter buffers. remove explicit size parameter from file_op
2016-10-26 20:40:56 -04:00
Alden Torres
6751a1eeb1
removed spaces in template types and more c++11 auto/loop refactor
2016-10-26 00:08:00 -04:00
Alden Torres
4eebd0c68a
minor refactor, compilation fix when DEBUG_DISK_THREAD and missing convert_to_native ( #1256 )
2016-10-25 20:46:23 -04:00
Arvid Norberg
61af222d92
add utility function for generating peer ID fingerprint ( #1249 )
...
add utility function for generating peer ID fingerprint
2016-10-25 08:03:26 -04:00
Arvid Norberg
675d16a2c3
remove remainder of eviction/ghost torrent feature ( #1251 )
...
remove remainder of eviction/ghost torrent feature
2016-10-25 08:02:34 -04:00
Steven Siloti
cf7db392b6
assert that offset didn't change while hashing
2016-10-25 07:59:02 -04:00
Steven Siloti
f36b9a805a
avoid concurrent access to hash offset
...
Since partial_hash::offset is not an atomic it is technically UD to access it
concurrently from multiple threads.
2016-10-25 07:59:02 -04:00
Steven Siloti
241e9fd25a
add assert to detect index out-of-range
2016-10-25 07:59:02 -04:00
Alden Torres
8bdbaec872
minor cleanup refactor ( #1252 )
2016-10-24 20:19:01 -04:00
Arvid Norberg
f16d0b7953
add unit test for 'file_sizes' entry in resume data ( #1248 )
...
add unit test for 'file_sizes' entry in resume data. fix resume data bug in client_test for magnet links and minor resume data cleanup in default_storage
2016-10-23 22:01:09 -04:00
Arvid Norberg
5341be1e84
more improvement to error/exception handling ( #1247 )
...
improvement to error/exception handling
2016-10-22 22:00:47 -04:00
Steven Siloti
a6e5ba8804
return a span from TORRENT_ALLOCA ( #1244 )
...
return a span from TORRENT_ALLOCA
Unfortunately this requires moving the variable declaration inside the macro.
Due to alloca’s unique properties pretty much the only safe way to call it is
in a simple assign-to-pointer expression. Therefor we need to use a temporary
pointer to store the value returned from alloca before we can call span’s ctor.
This also causes double evaluation of the size parameter which is unfortunate,
but no current callers of TORRENT_ALLOCA have a problem with this. Passing
expressions with side effects to macros is bad mojo anyways.
2016-10-22 14:43:40 -04:00
Pavel Pimenov
e9f9c3ca22
Fix sizeof(values)/sizeof(values[0] ( #1246 )
2016-10-22 14:12:23 -04:00
Arvid Norberg
6148984426
remove whitespace at end of line ( #1245 )
2016-10-22 11:47:24 -04:00
arvidn
31d34fec41
fix issue in previous block_cache patch
2016-10-22 11:08:19 -04:00
Arvid Norberg
2d2874d252
minor block_cache cleanup. make hash be a unique_ptr ( #1241 )
2016-10-21 07:37:15 -04:00
Alden Torres
a12f62593e
minor code refactor in disk_io_thread and block_cache ( #1238 )
2016-10-21 00:25:48 -04:00
Pavel Pimenov
8c20f4e1fd
utp_match: Reduced call boost::asio::ip::address address() ( #1235 )
...
check connection ID before source address in uTP connection lookup
2016-10-20 20:49:59 -04:00
Alden Torres
ad6af13129
deleted mpi.cpp from merge of RC_1_1 ( #1236 )
2016-10-20 16:16:42 -04:00
arvidn
b1e22e6183
merged RC_1_1 into master
2016-10-20 00:36:54 -04:00
Arvid Norberg
5012fcf10b
fix bug in last-seen-complete ( #1234 )
2016-10-20 00:15:26 -04:00
Alden Torres
fe754453f4
backport of fix for LFS support in android ( #1232 )
2016-10-20 00:14:03 -04:00
Arvid Norberg
7009001f73
fix ambiguous call to abs() in tommath ( #1228 )
...
fix ambiguous call to abs() in tommath
2016-10-20 00:13:45 -04:00
Pavel Pimenov
037f349cee
Try resolve #1175 (for RC_1_1) ( #1230 )
...
https://github.com/arvidn/libtorrent/pull/1223
2016-10-19 17:29:35 -04:00
Pavel Pimenov
91845aa6c8
Prevent duplicate url ( #1231 )
...
prevent creating torrents with duplicate trackers as well as adding duplicate trackers to torrent_info
2016-10-19 17:28:35 -04:00
Alden Torres
5f04103a9d
ensure posix calls with LFS support are used in android ( #1226 )
2016-10-19 13:00:03 -04:00
Alden Torres
ded3ed6abf
refactor in alert types to use more const fields and more clear API ( #1222 )
...
refactor in alert types to use more const fields and more clear API
2016-10-19 01:32:15 -04:00
Arvid Norberg
524f7b1c27
fix error handling by exercising code paths where memory allocations fail ( #1221 )
...
fix error handling by exercising code paths where memory allocations fail
2016-10-19 01:18:05 -04:00
Arvid Norberg
85fe06659e
fix buffer overrun in dht_get_peers_reply_alert ( #1219 )
2016-10-16 19:40:39 -04:00
Alden Torres
0f20af3710
minor refactor, consts and cleanup in alerts ( #1210 )
...
minor refactor, consts and cleanup in alerts
2016-10-16 03:12:41 -04:00
Steven Siloti
fc7b4c1c4f
update comment to reflect new quota definition
2016-10-15 21:32:14 -04:00
Steven Siloti
c13286b945
take upload speed into account in round-robin choker
...
The unchoked peers need to be sorted by upload speed so that the slowest node
will get choked as part of optimistic unchoking.
Also change the minimum quanta to 1 minute instead of 256KB.
Also remove a useless multiply in the fastest peer choker since the priorities
are guarenteed to be equal at that point.
Fixes #1171
2016-10-15 21:32:14 -04:00
Arvid Norberg
c4119158a4
use in-class initializers for torrent_status ( #1215 )
2016-10-15 17:35:50 -04:00
Arvid Norberg
c18c12a144
remove ghost torrent/torrent eviction feature. ( #1214 )
...
remove ghost torrent/torrent eviction feature. It was very complex and did not solve the problem very well
2016-10-15 13:32:59 -04:00
Arvid Norberg
25195a7260
back port DHT fixes from master ( #1209 )
...
back port DHT fixes from master
2016-10-14 23:47:59 -04:00
Angel Leon
9cdf0ee50c
Boolean simplifications (oct 13th 2016) ( #1211 )
...
boolean simplifications
2016-10-14 16:13:18 -04:00
Alden Torres
8839722bec
minor http related code cleanup ( #1212 )
2016-10-14 16:12:02 -04:00
Arvid Norberg
540b5b28d7
use signed counters in traversa_algorithm, and add some more asserts ( #1208 )
...
use signed counters in traversal_algorithm, and add some more asserts
2016-10-14 08:03:09 -04:00
Arvid Norberg
e0c8ad738d
include target in DHT lookups, when queried from the session ( #1207 )
2016-10-12 23:39:00 -04:00
Alden Torres
e0d7729f87
using arm neon inline assembly and using it only if in 32 bits ( #1201 )
...
using arm neon inline assembly
2016-10-12 00:02:02 -04:00
Arvid Norberg
c966435d1c
fix issue where shutting down the session immediately and asynchronously starting the DHT would cause a shutdown hang ( #1203 )
2016-10-10 22:54:19 -04:00
Arvid Norberg
6bb2d7c017
Sanitize 1.1 ( #1197 )
...
enable address sanitizer
2016-10-09 17:00:20 -04:00
arvidn
57704d0249
Merge branch 'master' of https://github.com/arvidn/libtorrent
2016-10-08 14:18:12 -04:00
arvidn
1c89fcda48
merge RC_1_1 into master
2016-10-08 14:17:51 -04:00
Arvid Norberg
20f65946f2
make single-argument constructors explicit ( #1194 )
...
make single-argument constructors explicit
2016-10-08 14:07:11 -04:00
Arvid Norberg
5f7e2eb928
run undefined sanitier on travis/linux ( #1134 )
...
run undefined sanitizer on travis/linux. back-port ed25519 unit test from master
2016-10-08 12:29:46 -04:00
Arvid Norberg
7bfb97ba44
use in-class default initializers for utp_stream class members ( #1196 )
...
use in-class default initializers for utp_stream class members
2016-10-08 12:12:33 -04:00
Alden Torres
f580fcaa67
refactor in buffer.hpp to not use anonymous namespace in header ( #1192 )
...
refactor in buffer.hpp to not use anonymous namespace in header
2016-10-08 01:12:34 -04:00
Pavel Pimenov
93d8955750
Fix #1182 ( #1188 )
...
Add webseed URL duplicate check
2016-10-07 15:36:40 -04:00
Pavel Pimenov
af2a9a875b
Fix sizeof(X)/sizeof(T) and _countof ( #1189 )
...
https://msdn.microsoft.com/en-us/library/ms175773.aspx
http://www.viva64.com/en/w/V651/print/
2016-10-06 17:45:35 -04:00
Arvid Norberg
5c361715da
handle exceptions in session and torrent io_service jobs ( #1185 )
...
handle exceptions in session and torrent io_service jobs
2016-10-06 00:08:14 -04:00
Arvid Norberg
3c355bb3f8
use string_view in alert constructors ( #1186 )
2016-10-04 23:58:26 -04:00
Alden Torres
9343f2fbfb
minor header cleanup and refactor ( #1179 )
2016-10-04 07:43:34 -07:00
Alden Torres
be70afa4b8
refactor log methods in public peer_connection_handle for stable ABI ( #1180 )
...
expose log functions in peer_connection_handle with empty bodies when logging is disabled
2016-10-03 21:35:40 -07:00
Arvid Norberg
7a52a285a1
back-port error_code cleanup from master ( #1173 )
...
back-port error_code cleanup from master
2016-10-03 16:32:40 -07:00
Arvid Norberg
8bb7aa62ae
generalize and improve http redirect support for web seeds ( #1060 )
...
generalize and improve http redirect support for web seeds
2016-10-02 23:08:03 -07:00
Arvid Norberg
cebd976cc2
fix error_code vs. error_condition traits ( #1169 )
...
fix error_code vs. error_condition traits. deprecate get_*_category(), instead use *_category()
2016-10-02 12:27:50 -07:00
Alden Torres
1974dca150
minor refactor of dht_default_storage ( #1166 )
...
refactor of dht_default_storage structures
2016-09-30 20:42:57 -04:00
Alden Torres
331a8d53c0
refactor to use move with dht_state ( #1163 )
...
refactor to use move with dht_state
2016-09-29 08:25:51 -04:00
Alden Torres
af92e91a90
missing inc dht counter and minor cleanup ( #1164 )
2016-09-28 23:25:08 -04:00
Alden Torres
84e735c0ea
refactor for more use of move with settings_pack ( #1162 )
2016-09-28 13:28:43 -04:00
Steven Siloti
85dd682551
fix adding a node with unknown id ( #1161 )
...
Commit a414e4c3
broke adding nodes with unknown id to the routing table by
causing them to be evicted when they responded with their real id. This should
have been caught by test_bootstrap, but a typo caused that test to silently
exit early.
2016-09-28 13:28:21 -04:00
Alden Torres
8caebbd026
alerts refactor to use span, don't break ABI when logging, fix compilation ( #1159 )
...
alerts to use span, don't break ABI when logging, fix compilation
2016-09-27 23:21:18 -04:00
Arvid Norberg
f592d7fcb0
various cleanup and formatting updates ( #1158 )
2016-09-26 20:05:04 -04:00
Alden Torres
31ce1e5a2c
dht headers and minor cleanup ( #1157 )
2016-09-26 18:04:42 -04:00
Arvid Norberg
9cebd4569f
general cleanup of disk_buffer_holder and tailqueue ( #1156 )
...
general cleanup of disk_buffer_holder and tailqueue
2016-09-26 14:22:38 -04:00
Arvid Norberg
179e238561
move bitfield's find_first_set and find_last_clear into cpp file ( #1155 )
2016-09-26 10:58:09 -04:00
Arvid Norberg
97c6a75084
add proper error handling to peer connections and session ( #1149 )
...
add proper error handling to peer connections and session. i.e. catch exceptions in asio handlers and catch by const reference
2016-09-25 09:50:48 -04:00
Alden Torres
b60fe066e2
compare with generic_category in close_reason ( #1152 )
2016-09-25 01:42:45 -04:00
Alden Torres
4693fcf3f1
dht source code and headers cleanup ( #1150 )
2016-09-24 22:20:20 -04:00
Arvid Norberg
da8af033cc
modernize utf8 conversion functions to throw and move ( #1145 )
...
modernize utf8 conversion functions to throw and move
2016-09-24 22:16:10 -04:00
Arvid Norberg
372d992d8e
make connection_type enum an enum class ( #1146 )
2016-09-24 10:47:17 -07:00
Arvid Norberg
d2002c5248
separate piece_block and has_block out to their own headers ( #1148 )
2016-09-24 08:46:56 -07:00
Arvid Norberg
48a647a169
String view entry ( #1147 )
...
make entry support string_view in its interface, and make it efficient when in in C++14
2016-09-24 06:10:54 -07:00
Steven Siloti
2e0140b6f6
fix peer picking algorithm ( #1141 )
...
fix peer picking algorithm. The old code was always picking the first to_pick peers from the set.
2016-09-24 06:08:52 -07:00
Alden Torres
b1b74657f6
added consts and minor refactor ( #1137 )
...
added consts and minor refactor
2016-09-23 13:51:20 -07:00
Alden Torres
158ae3a4ba
consts, minor refactor, typos and test ( #1142 )
2016-09-23 13:49:39 -07:00
Arvid Norberg
24b271b7c1
Merge pull request #1133 from ssiloti/peer-picker
...
fix DHT peer picking algorithm. The old code was always picking the first to_pick peers from the set.
* use a sorted vector to store peer announcments
Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.
* shrink peers vectors with too much excess capacity
2016-09-23 13:48:00 -07:00
Steven Siloti
35cfc6b5d3
shrink peers vectors with too much excess capacity
2016-09-23 07:30:36 -07:00
Steven Siloti
89942bf3d4
use a sorted vector to store peer announcments
...
Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.
2016-09-22 21:54:10 -07:00
arvidn
70199041f7
merged RC_1_1 into master
2016-09-22 13:48:12 -07:00
Arvid Norberg
885e4f8fc4
use default member initializers instead of initialization lists in announce_entry ( #1129 )
2016-09-22 12:00:31 -07:00
Alden Torres
c7ec987a1b
refactor in msg verify_message and minor cleanup ( #1131 )
2016-09-21 23:04:05 -07:00
Steven Siloti
23e11af899
fix peer picking algorithm
...
The old code was always picking the first to_pick peers from the set.
2016-09-21 20:21:34 -07:00
Steven Siloti
c75b243490
remove redundant protocol parameter ( #1128 )
2016-09-21 20:00:39 -07:00
Arvid Norberg
269e384c2c
use string_view in create_torrent ( #1120 )
...
use string_view in create_torrent
2016-09-21 19:59:43 -07:00
Arvid Norberg
b20b3ad1ac
remove file size limit in torrent_info filename constructor ( #1126 )
2016-09-21 19:54:42 -07:00
Arvid Norberg
f712caa80d
deprecate send_stats property on trackers (since lt_tracker extension has been removed) ( #1125 )
2016-09-21 16:54:49 -07:00
Pavel Pimenov
62536c790d
Decreased performance. Ineffective use of the 'count' function. It can possibly be replaced by the call to the 'find' function ( #1127 )
2016-09-21 16:51:51 -07:00
Arvid Norberg
770b0def0c
Merge pull request #1122 from ssiloti/peers-storage-policy
...
new peers storage policy
2016-09-21 07:35:34 -07:00
Arvid Norberg
03068ffa0b
Merge pull request #1108 from arvidn/user-agent-1.1
...
user agent anonymous mode
2016-09-21 07:25:15 -07:00
Arvid Norberg
752ff24357
Merge pull request #1123 from aldenml/system-port-and-logs-1.2
...
* accept port 0 in listen_interfaces
* more session log and source code refactor
2016-09-20 23:50:49 -07:00
Arvid Norberg
3e7e806a77
deprecate old session_settings API (use settings_pack instead) ( #1117 )
...
deprecate old session_settings API (use settings_pack instead)
2016-09-20 23:49:23 -07:00
Alden Torres
f139776542
using consts refs in add_torrent_alert ( #1124 )
2016-09-20 23:14:42 -07:00
Arvid Norberg
4d716361c0
minor code cleanup ( #1116 )
2016-09-20 22:10:06 -07:00
Alden Torres
35f98f6a4d
added a few consts to file_storage and typos ( #1111 )
2016-09-20 22:06:07 -07:00
Steven Siloti
dad0000015
send write token if peer is alraedy stored
2016-09-20 19:35:24 -07:00
Alden Torres
4f6ea4a70d
more session log and source code refactor
2016-09-20 11:24:24 -04:00
Alden Torres
089d6c3144
accept port 0 in listen_interfaces
2016-09-20 11:11:24 -04:00
Steven Siloti
e2fefb074a
always drop the announcing peer when at capacity
2016-09-19 21:51:10 -07:00
Steven Siloti
6e24bbe77a
only send a write token if we have storage space available
2016-09-19 21:51:10 -07:00
arvidn
85a2a5c5cb
don't send user-agent in metadata http downloads or UPnP requests when in anonymous mode
2016-09-18 17:16:03 -07:00
Arvid Norberg
acf77a5385
fix tail-padding for last file in create_torrent ( #1106 )
2016-09-18 20:08:27 -04:00
Alden Torres
db14df5d0d
dht code related refactor and cleanup ( #1107 )
...
dht code related refactor and cleanup
2016-09-18 20:08:15 -04:00
Arvid Norberg
80ba45e1fb
clean up read_endpoint_list ( #1102 )
2016-09-18 10:12:54 -04:00
Arvid Norberg
219b2c36b4
upnp and natpmp modernization and cleanup ( #1103 )
...
upnp and natpmp modernization and cleanup
2016-09-18 10:11:56 -04:00
Arvid Norberg
527772420a
fix tail padding in file_storage::optimize and improve file placement with some tests ( #1105 )
2016-09-18 00:24:20 -04:00
Alden Torres
6c31ea3d44
created dht state and session params refactor ( #1100 )
...
created dht state and session params refactor
2016-09-17 09:42:04 -04:00
Alden Torres
b4da884f29
created lsd_callback, log optimization and cleanup in lsd ( #1099 )
2016-09-16 12:21:41 -04:00
Alden Torres
d94c317f02
created portmap_callback and refactor for natpmp and upnp log optimization ( #1096 )
...
created portmap_callback and refactor for natpmp and upnp log optimization
2016-09-16 09:53:17 -04:00
Alden Torres
d9489878a0
rpc_manager log optimization and minor refactor ( #1095 )
...
more on log optimization
2016-09-16 08:21:07 -04:00
Alden Torres
0507764d04
consts and refactor, hash_address returns the hash ( #1093 )
...
consts and refactor
2016-09-15 21:13:43 -04:00
Steven Siloti
0759b732c1
web_peer_connection: make a copy of the request before calling incomi… ( #1091 )
...
web_peer_connection: make a copy of the request before calling incoming_piece
2016-09-14 12:29:07 -04:00
Steven Siloti
3d3367387a
check the address family of peers in get_peers ( #1090 )
2016-09-14 11:29:27 -04:00
Alden Torres
c25bae163d
avoid warnings with clang and minor dht_tracker code changes ( #1092 )
2016-09-14 11:28:50 -04:00
Alden Torres
acf353e26a
general session, torrent and peer connection log optimization ( #1088 )
...
general session, torrent and peer connection log optimization
2016-09-13 22:46:07 -04:00
Arvid Norberg
392726a2a9
factor out code from alert_manager::should_post template into non-template ( #1089 )
2016-09-13 22:45:39 -04:00
Alden Torres
224ebc1ded
peer_connection log related optimization ( #1086 )
...
peer_connection log related optimization and making m_alert_mask atomic
2016-09-13 17:07:22 -04:00
sledgehammer999
22043fd186
Use std::random instead of Boost.Random when in c++11 mode. ( #1087 )
2016-09-13 17:07:01 -04:00
Alden Torres
65cdc15543
more on log, consts, refs and cleanup in dht related code ( #1082 )
...
more on log, consts, refs and cleanup in dht related code. moving print_state out of main source code
2016-09-13 08:18:47 -04:00
Steven Siloti
850eca1f21
don't pop request until we're done with it ( #1085 )
2016-09-13 02:37:00 -04:00
milesdong
dc4d9af2e6
fix invalid memory access in utp_stream and torrent ( #1084 )
...
fix invalid memory access in uTP PMTUd
2016-09-13 02:36:23 -04:00
Alden Torres
3fa74c6fd5
more consts refs and formatting ( #1080 )
2016-09-12 09:20:15 -04:00
arvidn
fbf926da1f
Merge branch 'master' of https://github.com/arvidn/libtorrent
2016-09-11 21:02:35 -04:00
arvidn
33414de68d
merged RC_1_1 into master
2016-09-11 21:01:03 -04:00
Alden Torres
1a0c6f5e61
more dht log optimizations ( #1079 )
2016-09-11 20:49:15 -04:00
Alden Torres
4d4eb66c8b
some refactor, more const refs and span use ( #1078 )
...
some refactor, more const refs and span use
2016-09-11 01:58:48 -04:00
Alden Torres
5480e2eedc
some consts refs and refactor ( #1075 )
...
some consts refs and refactor
2016-09-09 15:02:20 -04:00
Alden Torres
99da5c8017
dht log optimization, consts and refactor ( #1073 )
...
dht log optimization and refactor
2016-09-08 19:13:46 -04:00
Alden Torres
01e9810f7a
more boost types cleanup and handling of deprecated macos libcrypto ( #1072 )
...
more boost types cleanup and handling of deprecated macos libcrypto. more granular TORRENT_MACOS_DEPRECATED_LIBCRYPTO
2016-09-07 17:51:18 -04:00
Alden Torres
4c53d7b2da
refactor to use std unordered containers and minor cleanup ( #1070 )
2016-09-06 23:37:36 -04:00
Alden Torres
5e69dc700c
minor cleanup and refactor ( #1069 )
2016-09-06 18:34:03 -04:00
Alden Torres
e4a27c0b4b
backport of fix in resolve_links::match ( #1068 )
...
backport of fix in resolve_links::match
2016-09-06 18:30:30 -04:00
Alden Torres
7a0da72813
use of std::unordered_multimap and fix in resolve_links::match ( #1067 )
...
use of std::unordered_multimap and fix in resolve_links::match
2016-09-06 13:04:28 -04:00
Alden Torres
b313de3925
some refactor and cleanup ( #1065 )
2016-09-05 22:25:20 -04:00
Arvid Norberg
994a84cfe8
enable string tests on appveyor ( #1064 )
2016-09-05 15:17:12 -04:00
Alden Torres
0d64bda8d3
refactor to use unique_ptr with session_impl::m_work ( #1063 )
2016-09-04 21:49:11 -04:00
Alden Torres
e11f233086
minor cleanup/refactor ( #1062 )
2016-09-04 18:24:20 -04:00
Alden Torres
728e74eca7
refactor to avoid use of optional with piece_block_progress ( #1061 )
2016-09-04 12:31:02 -04:00
Alden Torres
29a4075555
refactor to use std::shared_ptr with dht observer ( #1057 )
...
refactor to use std::shared_ptr with dht observer
2016-09-02 21:05:11 -04:00
Alden Torres
fd4c09d7b2
refactor to use std::shared_ptr with traversal_algorithm ( #1056 )
...
refactor to use std::shared_ptr with traversal_algorithm. use a more stable linaro gcc link
2016-09-02 16:42:55 -04:00
Arvid Norberg
19dd9d323a
add some const and enum class ( #1055 )
2016-09-02 08:27:38 -04:00
Alden Torres
585a760588
headers cleanup ( #1054 )
...
headers cleanup
2016-09-01 15:04:58 -04:00
Alden Torres
3faa771843
removed use of boost::bind and boost::scoped_array ( #1053 )
2016-09-01 09:43:53 -04:00
Arvid Norberg
5f5589d137
deprecate and remove remote_dl_rate feature ( #1051 )
...
deprecate and remove remote_dl_rate feature
2016-09-01 09:43:08 -04:00
Arvid Norberg
c310d15cac
deprecate some settings that aren't in use anymore ( #1052 )
2016-09-01 09:42:49 -04:00
Steven Siloti
29e6cbbdae
fix exit condition when parsing nodes ( #1046 )
...
fix exit condition when parsing nodes
2016-09-01 00:49:21 -04:00
Alden Torres
bf0008933a
refactor to use std::shared_ptr with peer_connection, core and tests ( #1050 )
2016-08-31 21:42:18 -04:00
Alden Torres
6e891a0211
refactor to use std::shared_ptr with http_connection ( #1049 )
2016-08-31 12:45:45 -04:00
Alden Torres
cdb15ba886
refactor to use std::shared_ptr with torrent ( #1048 )
2016-08-31 08:27:36 -04:00
Arvid Norberg
44a761e5c8
Merge pull request #1047 from ssiloti/rpcm-cleanup
...
rpc_manager: remove unused timer
2016-08-31 02:04:00 -04:00
Steven Siloti
134d62ab08
rpc_manager: remove unused timer
2016-08-30 19:40:11 -07:00
Alden Torres
658fa46f0a
no warnings in random with openssl-1.1 and minor refactor
2016-08-30 21:23:08 -04:00
Arvid Norberg
33ec20f7b6
more use of std::shared_ptr refactor ( #1043 )
2016-08-30 21:16:34 -04:00
arvidn
b554909486
hint DHT bootstrap nodes of actual bootstrap request
2016-08-30 21:15:35 -04:00
Alden Torres
cfd2caeb74
no more extension_list_t type and uncommented call to torrent_plugin::on_load ( #1042 )
2016-08-30 17:36:44 -04:00
Alden Torres
e2487c4d24
more use of std::shared_ptr refactor
2016-08-30 10:10:53 -04:00
Arvid Norberg
88fe6ae8c3
don't link against sha1.cpp when using libcrypto's implementation ( #1040 )
2016-08-30 08:25:07 -04:00
Alden Torres
2ac45d17ef
ed25519 api refactor ( #1041 )
2016-08-30 02:37:51 -04:00
Alden Torres
ebe53883b5
refactor in escape_string and escape_path to use string_view ( #1039 )
2016-08-29 22:37:19 -04:00
Arvid Norberg
9ac7475a90
simplify some constructors with in-class initializers ( #1038 )
...
simplify peer_connection, torrent and session_impl's contstructors by moving simple parts to their header files
2016-08-29 20:29:27 -04:00
Alden Torres
32f5f8f257
better integration and API for ed25519 ( #1037 )
...
better integration and API for ed25519. using shared_ptr in ed25519_add_scalar
2016-08-29 20:28:42 -04:00
Alden Torres
118e30fd86
minor cleanup/refactor ( #1036 )
2016-08-28 00:04:16 -04:00
Arvid Norberg
c7eb76593c
deprecate torrent priority ( #1032 )
...
deprecate torrent priority
2016-08-26 12:37:23 -04:00
Alden Torres
227b630bd1
added string_ends_with to replace boost ( #1034 )
...
added string_ends_with to replace boost
2016-08-26 12:36:09 -04:00
Alden Torres
c05e29c48e
trivial cleanup and minor changes ( #1033 )
2016-08-26 00:14:11 -04:00
Steven Siloti
3a665a1040
fix inconsistant prefix calulcation ( #1030 )
...
The special case for calculating the prefix in the last bucket was being
applied to the condidate node but not the existing nodes in the bucket.
2016-08-25 19:26:48 -04:00
Alden Torres
44d9f456f8
adding support for a more configurable sha512 hasher ( #1028 )
...
adding support for a more configurable sha512 hasher, digest32 template, using hasher512.
2016-08-25 19:07:16 -04:00
Arvid Norberg
558ec097a2
fix applying settings to only take actual updates into account ( #1027 )
2016-08-22 21:38:57 -04:00
Alden Torres
73d6ba6ae3
using span in torrent_handle and no optional in torrent_info ( #1023 )
2016-08-22 11:02:51 -04:00
Arvid Norberg
2a36f9015d
build mpi.c as c++ to allow including boost headers ( #1026 )
...
build mpi.c as c++ to allow including boost headers
2016-08-22 07:59:46 -04:00
arvidn
97ce1b07bf
fix building tarball
2016-08-21 20:21:50 -04:00
Arvid Norberg
3f693fde42
fix build ( #1025 )
...
fix build
2016-08-21 20:20:46 -04:00
arvidn
74fc0fae9d
merged RC_1_1 into master
2016-08-21 16:28:49 -04:00
Arvid Norberg
debf3c6e36
update puff.c for gzip inflation ( #1022 )
...
update puff.c for gzip inflation
2016-08-21 14:43:44 -04:00
Alden Torres
00510d2b06
more use of span and std::shared_ptr ( #1018 )
...
more use of span and std::shared_ptr
2016-08-21 13:37:11 -04:00
Arvid Norberg
80e5ce9b32
add a default DHT bootstrap node when it's enabled on session startup ( #1008 )
...
make the dht bootstrap nodes part of settings_pack instead, to make it possible to set them on startup. and add default
2016-08-21 12:15:19 -04:00
Arvid Norberg
daa453ef3b
back-port windows stack trace function to 1.1 ( #1017 )
...
back port exception handling and stack trace printing from master -> RC_1_1
2016-08-21 01:07:02 -04:00
Alden Torres
4d96939b7b
minor cleanup and refactor ( #1016 )
...
minor cleanup and refactor
2016-08-20 19:46:55 -04:00
Alden Torres
bd557ca2b2
minor refactor to make it more swig friendly ( #1014 )
2016-08-20 11:29:31 -04:00
Arvid Norberg
b701fb252a
clear alert nofify function when calling abort on a session, to avoid touching a destructed session object ( #1015 )
2016-08-20 11:04:44 -04:00
Alden Torres
9fd83aaa10
more use of std::shared_ptr ( #1009 )
...
more std::shared_ptr transition
2016-08-18 17:08:40 -04:00
Alden Torres
5789b02e1b
storage_interface refactor to use span and references ( #1007 )
...
storage_interface refactor to use span and references
2016-08-18 11:57:50 -04:00
Alden Torres
bb388563b3
refactor to use torrent_info with std::shared_ptr ( #1006 )
2016-08-17 17:26:35 -04:00
Alden Torres
7cee486cf7
extensions refactor to use span and std::shared_ptr ( #1005 )
...
extensions refactor to use span. use std::shared_ptr instead of boost::shared_ptr.
2016-08-17 14:30:24 -04:00
Alden Torres
f4127ae12b
refactor in crypto_plugin::decrypt to use tuple
2016-08-16 10:21:17 -04:00
Alden Torres
7a2b21407c
refactor in crypto_plugin to use span
2016-08-15 23:09:30 -04:00
Alden Torres
9b0bc2ed5f
peer_plugin refactor ( #1002 )
...
refactor of ut_pex peer storage
2016-08-15 21:05:39 -04:00
Alden Torres
f51e782905
using string_view in node::incoming_request and plugin::on_dht_request ( #1001 )
...
use string_view in node::incoming_request. changed plugin::on_dht_request to use string_view
2016-08-15 16:17:13 -04:00
Alden Torres
2f7adfbb92
no more deprecated std::random_shuffle ( #999 )
...
replace deprecated std::random_shuffle. more aggressive random_shuffle in DHT simulation setup. use travis_retry.
2016-08-14 19:48:31 -04:00
Arvid Norberg
bc8c49dc15
make file_status return the vector instead of taking an out-parameter ( #1000 )
...
make file_status return the vector instead of taking an out-parameter
2016-08-14 13:11:59 -04:00
arvidn
e247473b86
bump version number
2016-08-13 07:12:23 -04:00
arvidn
8c8c3d5587
replace boost::function with std::function
2016-08-13 07:07:26 -04:00
Arvid Norberg
e36e5efaba
use boost::string_ref ( #996 )
...
use boost::string_ref/boost::string_view in various parts of the code, in file_storage, some file functions and in bdecode.
2016-08-13 07:04:53 -04:00
Alden Torres
a966458f8c
minor cleanup ( #997 )
...
minor cleanup
2016-08-12 19:24:03 -04:00
Alden Torres
74c8054e8d
created session_params and refactor ( #993 )
...
created session_params and new session constructor
2016-08-11 20:32:14 -04:00
arvidn
231dffd392
fix whitespace
2016-08-08 18:16:05 -04:00
Arvid Norberg
8007b947fd
make pad-file and symlink support conform to BEP47 ( #992 )
...
make pad-file and symlink support conform to BEP47
2016-08-07 22:37:10 -04:00
arvidn
42b3fbe20a
merged RC_1_1 into master
2016-08-07 17:23:40 -04:00
Alden Torres
af565e2b86
added support for flz (find last zero) and copied bitfield functions from PR #565 ( #986 )
...
added support for flz (find last zero) and copied bitfield functions from PR #565
2016-08-07 16:21:08 -04:00
Arvid Norberg
e9a7271aca
add piece picker test for re-prioritizing downloading/writing/partial pieces ( #989 )
...
add piece picker test for re-prioritizing partial pieces and forward port steven's piece picker fix from RC_1_1
2016-08-07 16:05:20 -04:00
Steven Siloti
bc369683df
handle short reads when exporting a file ( #990 )
...
handle short reads when exporting a file. Pieces in the part file are not guaranteed to be fully written so short reads need to be handled rather than asserting.
2016-08-07 16:04:29 -04:00
Steven Siloti
d4296730d0
fix re-prioritizing a piece while it is downloading ( #987 )
...
update_piece_state does not expect that the piece's priority has also changed
since the last time the piece was updated. Make sure the piece's priority is
updated before trying to update the state.
2016-08-07 15:27:04 -04:00
Arvid Norberg
71f5510d62
make the random function produce proper random distributions, based o… ( #981 )
...
make the random function produce proper random distributions, based on uniform_int_distribution of C++11. also clean up piece_picker's priority_range to return two results instead of taking pointers to out-parameters. fix recent pe-crypto regression exposed by this change
2016-08-06 13:18:48 -04:00
Alden Torres
7ea9e76b37
refactor for separation of clz software/hardware based ( #985 )
...
refactor for separation of clz software/hardware based
2016-08-05 15:51:37 -04:00
Arvid Norberg
1bae47479b
make settings_pack moveable ( #982 )
2016-08-05 00:28:03 -04:00
Alden Torres
fdfe69f414
fixed warnings and compilation issues ( #980 )
...
fixed warnings and compilation issues
2016-08-03 00:35:40 -04:00
Alden Torres
8fedfcdce6
more trivial cleanup ( #979 )
2016-08-02 17:58:15 -04:00
Alden Torres
3c9ed50d0b
some trivial cleanup ( #978 )
...
some trivial cleanup
2016-08-02 12:13:05 -04:00
Arvid Norberg
caa034b1ac
fix typo and add invariant check to piece_picker ( #977 )
...
fix typo and add invariant check to piece_picker
2016-08-02 07:20:13 -04:00
Arvid Norberg
5b230694e5
check autotools on travis ( #973 )
...
build and run tests with autotools on travis, and fix configure issues.
2016-08-02 00:46:15 -04:00
Alden Torres
0b3c64ee87
added TORRENT_EXPORT to avoid link weak symbol warning ( #975 )
2016-08-02 00:15:26 -04:00
Arvid Norberg
61031f1186
hack to allow timeout utp sockets that are about to be closed ( #976 )
2016-08-02 00:07:36 -04:00
Alden Torres
e55a310e79
use of BOOST_FALLTHROUGH, typos and minor cleanup
2016-08-01 11:42:18 -04:00
arvidn
24dd6d0945
fix warning
2016-07-31 10:02:54 -04:00
arvidn
192559f245
fix warnings of unused return values from ftruncate() calls
2016-07-31 03:19:31 -04:00
arvidn
0126f6f2c6
fix timestamp arithmetic overflow
2016-07-30 00:38:17 -04:00
arvidn
2bdeb9aa6b
fix build
2016-07-29 20:24:11 -04:00
arvidn
e5ecd73751
fix rebase
2016-07-29 18:47:05 -04:00
arvidn
83dba91168
use span for to_hex and from_hex functions
2016-07-29 18:42:18 -04:00
Arvid Norberg
1d514b3f99
Merge pull request #961 from ssiloti/dht-sanitizing
...
remove DHT nodes which change their id
2016-07-29 18:00:22 -04:00
Steven Siloti
0343bb382e
always check m_log before using it
2016-07-29 13:32:28 -07:00
Steven Siloti
44ce5c71e7
cleanup ip logging
2016-07-28 20:08:24 -07:00
Alden Torres
a88c733f92
mark encryption_handler with TORRENT_EXTRA_EXPORT and minor cleanup ( #963 )
2016-07-28 14:57:26 -04:00
Alden Torres
68b1fc2fe8
fixed span::fist logic and minor cleanup ( #960 )
2016-07-28 01:54:57 -04:00
Steven Siloti
6ebc61cef9
reject nodes with our id after checking for an existing entry
...
This allows us to evict nodes which start reporting our id as theirs.
2016-07-27 21:10:34 -07:00
Steven Siloti
9d75198f7f
re-ping nodes in a bucket when one changes id
2016-07-27 21:10:34 -07:00
Steven Siloti
a414e4c3fa
remove nodes which change their id
...
This is based on a suggestion from the8472 to prevent malicious nodes from
polluting the routing table.
https://github.com/the8472/mldht/blob/sanitizing-docs/docs/sanitizing-algorithms.rst
2016-07-27 21:10:33 -07:00
Alden Torres
98918d61f5
removed const_interval, mutable_buffer and const_buffer types ( #956 )
...
removed const_interval, mutable_buffer and const_buffer types
2016-07-27 22:31:08 -04:00
Arvid Norberg
634c2bce60
Span conversion ( #944 )
...
complete http_parser transition to use span. make xml_parse use span. remove buffer::interval. convert some of receive buffer management to use span<>
2016-07-26 02:15:31 -04:00
arvidn
680a09cfa5
merged RC_1_1 into master
2016-07-26 02:14:58 -04:00
terry zhao
48ca20968e
fix value of current_tracker when all tracker failed ( #932 )
...
fix torrent_status::current_tracker when all trackers fail.
2016-07-26 01:13:28 -04:00
Arvid Norberg
6777ec5d05
back-ported dbghlp fix ( #946 )
...
back-ported dbghlp fix
2016-07-26 01:05:32 -04:00
Alden Torres
9af2072bc9
minor changes, typos and gcc tests in windows ( #947 )
...
minor changes, typos and gcc tests in windows
2016-07-25 17:58:00 -04:00
Arvid Norberg
0ea449a7b5
make local service discovery cookie support not so random numbers, to make the test reliable ( #943 )
2016-07-25 08:05:54 -04:00
Arvid Norberg
7fdab0d9e9
fix dbghlp heap corruption on windows
...
synchronize access to dbghlp.dll on windows
2016-07-25 08:05:26 -04:00
Arvid Norberg
118d06b780
remove deprecated extensions lt_trackers and metadata_transfer ( #941 )
2016-07-24 23:39:56 -04:00
Arvid Norberg
6370d5bc81
deprecate lt_trackers extension ( #940 )
...
deprecate lt_trackers extension
2016-07-24 23:37:03 -04:00
Steven Siloti
3321ca10f1
update our id in the rpc manager when it changes ( #942 )
...
update our id in the rpc manager when it changes
2016-07-24 21:30:36 -04:00
Arvid Norberg
4f803353cf
transition part of http_parser to use span ( #936 )
...
transition parts of http_parser to use span
2016-07-24 00:52:20 -07:00
Arvid Norberg
9c2325ff6b
modernize and improve type-safety of the DHT put implementation and test ( #929 )
...
modernize and improve type-safety of the DHT put implementation and tests. use unique_ptr instead of malloc for dht put items.
2016-07-23 15:57:04 -07:00
Alden Torres
ddb274751f
using span in crypto_plugin encrypt/decrypt ( #934 )
2016-07-23 15:54:39 -07:00
Alden Torres
f57612b82d
rename of aux::array_view to span ( #933 )
2016-07-22 09:31:42 -07:00
Arvid Norberg
7bf49c0a1c
modernize hasher to use array_view ( #931 )
...
modernize hasher to use array_view as well as adding array_view support to entry
2016-07-22 07:29:39 -07:00
arvidn
b8bfc13d59
merge fix
2016-07-20 11:48:44 -07:00
arvidn
e405f0e02f
merged RC_1_1 into master
2016-07-20 11:34:29 -07:00
Alden Torres
7446a88425
version to 1.2 ( #924 )
...
update version to 1.2
2016-07-20 11:29:24 -07:00
Arvid Norberg
5bda955f8f
don't send bitfield to peers whose handshake we haven't fully received yet ( #925 )
2016-07-20 10:11:28 -07:00
terry zhao
e75bb120b4
fix range of lsd::cookie ( #920 )
...
fix cookie range of lsd in lsd::on_announce
2016-07-18 09:19:45 -07:00
Sivachandran
8f3bd1052e
fix mutable dht_get_item failure when salt is non-empty ( #909 )
2016-07-18 07:12:10 -07:00
Arvid Norberg
80fba1f748
fix crash in session::get_ip_filter when not having set one ( #914 )
2016-07-17 14:23:54 -07:00
Arvid Norberg
31fbbab89c
clean up memory allocation in bitfield ( #910 )
...
clean up memory allocation in bitfield
2016-07-16 14:31:25 -07:00
Arvid Norberg
e72f95e0d9
fix test_remap_files ( #905 )
...
fix test_remap_files
2016-07-15 14:35:57 -04:00
Arvid Norberg
0a3cb77d23
deprecate and remove guided read cache ( #904 )
2016-07-10 19:25:26 -04:00
Arvid Norberg
8c03718117
apply modernization transforms to headers too. nullptr, explicit constructors, = default ( #903 )
2016-07-10 14:27:42 -04:00
Arvid Norberg
a740a49fd6
modernize misc ( #898 )
...
modernize misc
2016-07-10 07:34:45 -04:00
Arvid Norberg
eaea4a81cc
modernize: remove redundant smart ptr get(), use fixed-width integer types ( #900 )
2016-07-10 07:31:58 -04:00
Arvid Norberg
fcac8c10ef
i2p_stream cleanup ( #899 )
2016-07-10 01:24:06 -04:00
Arvid Norberg
e801d2e6de
modernize replace deprecated headers ( #897 )
2016-07-09 23:17:55 -04:00
Arvid Norberg
e782783814
modernize use override ( #895 )
2016-07-09 20:10:38 -04:00
Arvid Norberg
770935cd46
modernize-use-nullptr ( #894 )
2016-07-09 16:26:26 -04:00
arvidn
3abd024ecc
fix warning
2016-07-09 10:31:48 -04:00
arvidn
76bb6db1ab
fixup
2016-07-09 02:34:50 -04:00
arvidn
2df81d0927
Merge branch 'RC_1_1'
2016-07-09 02:21:39 -04:00
Steven Siloti
f0d7ec3954
refactor optimistic unchoke extension API ( #888 )
...
refactor optimistic unchoke extension API. The new interface is more efficient to implement and only allows extensions to affect the unchoke order in cases where the last unchoked timestamp is equal.
This is safer because it prevents extensions from overriding the round-robin ordering of optimistic unchokes.
2016-07-07 08:34:52 -04:00
Arvid Norberg
e079d0291e
fix filename escaping when repairing torrents with broken web seeds ( #892 )
...
fix filename escaping when repairing torrents with broken web seeds
2016-07-07 02:22:15 -04:00
arvidn
98af1cd54e
merged RC_1_1 into master
2016-07-05 18:03:06 -04:00
Arvid Norberg
c299149dc0
fix cppcheck ( #887 )
...
fix cppcheck
2016-07-05 08:42:11 -04:00
Arvid Norberg
3ec48ec5b4
support CryptoAPI on windows, for SHA-1 hashing ( #882 )
...
support CryptoAPI on windows, for SHA-1 hashing. don't always use openssl in test build configurations
2016-07-05 08:40:09 -04:00
Arvid Norberg
cbb6f47f36
make some types movable ( #885 )
2016-07-04 18:19:55 -04:00
Steven Siloti
e0c0b14e6c
limit crypto messages to 1MB ( #884 )
...
limit crypto messages to 1MB
2016-07-04 02:48:13 -04:00
Arvid Norberg
cf65f85dc3
fix file_completed_alert ( #880 )
2016-07-03 14:48:18 -04:00
Arvid Norberg
44c048f4f5
fix seed mode and suggest mode ( #871 )
...
fix resume data when combining seed-mode with suggest-mode
2016-07-02 16:20:12 -04:00
Arvid Norberg
103d574cb0
build and run all tests in macOS ( #859 )
...
build and run all tests in macOS. fix test build invocation on travis. remove bdecode_benchmark
2016-07-02 00:41:48 -04:00
Arvid Norberg
1facf0eef6
clean-up more defines ( #872 )
...
clean-up more defines. remove TORRENT_DEBUG and TORRENT_DISABLE_INVARIANT_CHECKS (instead use TORRENT_USE_ASSERTS and TORRENT_USE_INVARIANT_CHECKS)
2016-07-01 19:46:59 -04:00
Alden Torres
39e971c2ce
added support for arm crc32c and changed to test in arm 32 bits ( #869 )
...
added support for arm crc32c and changed to test in arm 32 bits
2016-06-30 11:37:55 -04:00
Arvid Norberg
97ad7510af
minor refactoring to move-storage patch ( #680 )
...
minor refactoring to move-storage patch
2016-06-29 20:05:28 +03:00
Vladimir Golovnev
faef995cdc
Move storage "file-by-file" ( #632 )
...
When moving storage for a torrent, only move files belonging to the torrent, one by one.
2016-06-29 20:05:16 +03:00
arvidn
08aebd2729
format more log messages in alert constructors
2016-06-29 02:02:46 -04:00
arvidn
b1e36a53e3
print peer logs directly into the allocation
2016-06-29 02:02:46 -04:00
Alden Torres
40c343be93
fixed macro assert around assert_torrent_refcount ( #868 )
2016-06-28 13:42:18 -04:00
Alden Torres
ecb64a53a9
backport of popcnt asm for x86 and gcc/clang ( #864 )
...
backport of popcnt asm for x86 and gcc/clang
2016-06-28 00:34:21 -04:00
Arvid Norberg
a675682b6c
some cleanup of TORRENT_DEBUG defines ( #863 )
...
some cleanup of TORRENT_DEBUG defines
2016-06-27 22:28:51 -04:00
Alden Torres
f7515edc8b
added neon support for popcount ( #861 )
...
added neon support for popcount
2016-06-27 18:51:43 -04:00
Alden Torres
9233edae4e
using popcnt asm for x86 and gcc/clang ( #862 )
2016-06-27 18:51:00 -04:00
terry zhao
1a3e75b50a
fix msvc-8.0 build ( #860 )
2016-06-27 13:46:15 -04:00
Arvid Norberg
31b2a03005
some optimizations ( #858 )
...
allow disk I/O callback objects to be moved into disk io jobs
2016-06-27 01:02:00 -04:00
Arvid Norberg
c567a66f5e
simplify peer_connection's read handlers and the receive buffer. ( #853 )
...
simplify peer_connection's read handlers and the receive buffer. removed the concept of soft-packet-size. removed the secondary null-buffer receive path. removed try_read. simplify the buffer class to not be resizeable. make receive_buffer shrink the buffer allocation. add cap to growing the receive buffer. buffer sizes are always divisible by 8.
2016-06-26 20:41:03 -04:00
arvidn
263bd31782
merged RC_1_ into master
2016-06-26 18:07:21 -04:00
arvidn
b97ac65c01
don't perform expensive hash of piece data for logging
2016-06-26 13:11:52 -04:00
Arvid Norberg
7edc6b1cc2
insert invariant checks to try to catch async_check_files crash ( #856 )
2016-06-26 12:13:08 -04:00
Alden Torres
57ad035955
added arm __builtin_clz support and tests running in arm mode ( #854 )
...
added arm __builtin_clz support and tests running in arm mode inside travis
2016-06-26 12:01:42 -04:00
Arvid Norberg
eda956f13a
use standard library for suspending threads ( #855 )
...
use standard library for suspending threads
2016-06-26 09:24:06 -04:00
arvidn
be30bbd08b
merged RC_1_1 into master
2016-06-25 17:48:13 -04:00
arvidn
f56d698db6
fix asio-debugging
2016-06-25 17:29:40 -04:00
Alden Torres
c84aceea3f
using bsr even with no popcnt present ( #852 )
2016-06-24 17:43:29 -04:00
Alden Torres
9efba7d752
missing header when no cpuid is available ( #849 )
2016-06-23 22:36:31 -04:00
Alden Torres
ba6e1e9194
open default listen interface the same as no default ( #848 )
...
open default listen interface the same as no default
2016-06-23 17:54:31 -04:00
Alden Torres
436b781003
option to use only the openssl's sha1 implementation ( #845 )
...
separated ssl and crypto build options
2016-06-23 13:20:35 -04:00
Arvid Norberg
6917a11c6b
correct error introduced in add_torrent_impl refactor, with regards t… ( #846 )
...
correct error introduced in add_torrent_impl refactor, with regards to not having flag_duplicate_is_error set (which is not set by default)
2016-06-23 13:19:35 -04:00
Arvid Norberg
ce00ebf723
simplify and clean up some of torrent_info ( #847 )
...
simplify and clean up some of torrent_info
2016-06-23 11:34:26 -04:00
Arvid Norberg
21c1540ace
clean up natpmp and upnp logging ( #842 )
...
clean up natpmp and upnp logging. remove custom logging macro and use regular logging via alerts. honor TORRENT_DISABLE_LOGGING
2016-06-23 01:23:59 -04:00
arvidn
3b2a527ffb
Merge branch 'RC_1_1'
2016-06-22 00:41:02 -04:00
arvidn
763d313570
fix bug in enum_net() for BSD and Mac
2016-06-21 19:05:22 -04:00
Arvid Norberg
6aabe3762b
general modernization ( #836 )
...
general modernization. use nullptr instead of NULL, use std::tuple instead of boost::tuple, transition some unordered set/map from boost to std. some clean-up of includes
2016-06-20 11:32:06 -04:00
Arvid Norberg
a9dbbdea37
use array_view instead of std::vector in crypto_plugin interface ( #835 )
...
use array_view instead of std::vector in crypto_plugin interface. return a vector of const_buffers for prepending new buffers. use stack allocated (single buffer) iovecs for receives. general cleanup
2016-06-19 23:05:59 -04:00
Arvid Norberg
b2358666a1
remove lazy_bitfield ( #817 )
...
remove lazy_bitfield feature
2016-06-19 17:00:18 -04:00
Alden Torres
15bac1e9b5
config.h cleanup ( #834 )
...
config.hpp and .travis.yml cleanup
2016-06-19 02:32:12 -04:00
Arvid Norberg
717ed8bd3b
Msvc warnings ( #822 )
...
fix msvc warnings in python bindings and simulations
2016-06-18 19:24:27 -04:00
Steven Siloti
f1585d8317
Fix abort_jobs being called multiple times ( #831 )
...
disk_io_thread::abort_jobs must only be called once, but it was possible for
concurrent calls to be made from abort() and thread_fun() if the max threads
had been set to zero but there were still disk I/O threads running.
m_num_running_threads doesn't need to be atomic anymore
2016-06-18 16:53:23 -04:00
Arvid Norberg
ed077c8358
use cstdint intead of boost/cstdint.hpp ( #833 )
...
use cstdint intead of boost/cstdint.hpp
2016-06-18 14:01:38 -04:00
Arvid Norberg
ead11737b4
fix uses of defines for whether or not asserts are active ( #832 )
2016-06-18 08:31:07 -04:00
Alden Torres
d3cd568447
plugin callback refactor ( #823 )
...
grouping plugins per feature
2016-06-17 22:02:21 -04:00
Alden Torres
efa8bb0fc7
making disk_buffer_holder internal and include cleanup ( #827 )
...
making disk_buffer_holder internal and include cleanup
2016-06-17 17:40:22 -04:00
Alden Torres
2cc1054d7d
deprecate functions in torrent_handle ( #828 )
...
deprecate get_full_peer_list on torrent_handle
2016-06-17 16:07:28 -04:00
Arvid Norberg
4d927f4029
modernize disk_buffer_holder to be move-only ( #824 )
...
modernize disk_buffer_holder to be move-only
2016-06-16 08:24:41 -04:00
Steven Siloti
2fed4103f8
scalable thread pool ( #770 )
2016-06-15 20:49:28 -04:00
Arvid Norberg
c0fb61c5d7
replace the suggest-read-cache logic with something much simpler ( #815 )
...
replace the suggest-read-cache logic with something much simpler that doesn't schedule regular jobs and doesn't query the disk cache
2016-06-15 13:29:54 -04:00
Arvid Norberg
ce161a9d62
remove option to disable contiguous receive buffers ( #818 )
...
removed option to disable contiguous receive buffers
2016-06-15 08:04:53 -04:00
arvidn
4b186130e6
fix merge
2016-06-14 21:16:28 -04:00
Arvid Norberg
6f87c702fa
simplify dispatching of bittorrent messages ( #820 )
2016-06-14 15:19:32 -04:00
Alden Torres
38f4765ebc
added assert and documentation typos ( #816 )
2016-06-13 17:16:09 -04:00
Alden Torres
d759d8f742
not add peers from url if add_torrent_impl returns invalid handle ( #814 )
2016-06-13 07:47:16 -04:00
Arvid Norberg
6e55c0564f
suppress shift warnings in boost ( #811 )
...
suppress shift warnings in boost
2016-06-12 21:14:21 -04:00
Arvid Norberg
4e0a4db9b4
fixed inverted priority of incoming piece suggestions ( #809 )
2016-06-12 20:36:05 -04:00
Arvid Norberg
590f68cd3d
make parse_interface_list more robust and improve string tests ( #806 )
...
make parse_interface_list more robust and improve string tests
2016-06-12 02:00:10 -04:00
arvidn
0440c57f68
fix performance issue and assert with receiving metadata
2016-06-11 23:29:33 -04:00
Arvid Norberg
ef1a24518d
fix dht tests ( #803 )
...
fix tests
2016-06-11 15:37:28 -04:00
arvidn
dfc2206b9f
merged RC_1_1 into master
2016-06-11 01:00:41 -04:00
Arvid Norberg
5ecd00c5c5
fix osx build ( #804 )
...
fix osx build with asserts enabled
2016-06-11 00:48:13 -04:00
arvidn
1946e6c58b
merged RC_1_1 into master
2016-06-10 01:38:32 -04:00
Arvid Norberg
327af3a69e
optimize allow-fast logic ( #800 )
...
optimize allow-fast logic
2016-06-10 01:24:37 -04:00
Arvid Norberg
404d72b9b7
revert handshake round-trip optimization ( #797 )
...
revert handshake round-trip optimization. it prevents taking advantage of FAST extensions since the bitfield is sent before receiving the other peer's handshake
2016-06-10 01:14:37 -04:00
Alden Torres
0882d02c53
early resume data reset when fatal_disk_error ( #798 )
2016-06-10 01:09:49 -04:00
arvidn
f4a95131c5
improve asserts in dht_storage
2016-06-10 00:55:17 -04:00
Arvid Norberg
830a79dbcf
optimize allow-fast logic ( #800 )
...
optimize allow-fast logic
2016-06-09 08:02:41 -04:00
Arvid Norberg
5eaf713d1f
revert handshake round-trip optimization ( #797 )
...
revert handshake round-trip optimization. it prevents taking advantage of FAST extensions since the bitfield is sent before receiving the other peer's handshake
2016-06-07 21:45:48 -04:00
Alden Torres
c8f7d89652
early resume data reset when fatal_disk_error ( #798 )
2016-06-07 18:44:39 -04:00
Alden Torres
9d3cf5e68b
changed min_distance_exp for correctness and clarity ( #789 )
...
changed min_distance_exp for correctness and clarity
2016-06-06 18:22:33 -04:00
Alden Torres
3d5e0144c7
consider macro TORRENT_USE_IOSTREAM for sha1_hash iostream operators ( #790 )
2016-06-05 23:55:42 -04:00
Arvid Norberg
cbeb7adbde
fix .travis script to run simulations ( #791 )
...
fix .travis script to run simulations
2016-06-05 22:13:01 -04:00
Arvid Norberg
223f24ca27
some cleanup and transition to std::unique_ptr ( #786 )
...
some cleanup and transition to std::unique_ptr
2016-06-05 14:07:24 -04:00
Arvid Norberg
ae3b629649
improve invariant check of file_progress class ( #787 )
2016-06-05 14:06:11 -04:00
arvidn
8baf4f810a
fix graceful pause issue
2016-06-04 21:35:12 -04:00
arvidn
edf9f8070d
merged RC_1_1 into master
2016-06-04 14:09:19 -04:00
Alden Torres
db65eb320a
making dht counters additive ( #783 )
...
make dht counters additive to support both IPv4 and IPv6
2016-06-04 14:04:29 -04:00
Arvid Norberg
fa8232cd13
remove some old cruft and defines ( #785 )
...
remove some old cruft and defines
2016-06-04 10:03:13 -04:00
Arvid Norberg
8c8f5bb03b
deprecated public to_hex() and from_hex() functions ( #784 )
2016-06-04 10:01:43 -04:00
Arvid Norberg
3624ce6cfd
fixed crash on invalid input in http_parser ( #782 )
...
fixed crash on invalid input to http_parser
2016-06-04 09:53:23 -04:00
Alden Torres
7c4d92a627
Share the DHT storage for both IPv4 and IPv6 ( #762 )
2016-06-03 19:44:16 -04:00
Arvid Norberg
be67553897
simplify session pause mechanism by keeping two separate states in torrents and having the session explicitly tell torrents when it's pausing ( #779 )
2016-06-03 07:32:48 -04:00
Alden Torres
42a9022065
Refactor of listen alerts for separated fields address and port ( #778 )
...
Refactor of listen alerts for separated fields address and port
2016-06-02 22:38:56 -04:00
Alden Torres
cdd067fe4e
Minor cleanup ( #775 )
...
Minor cleanup
2016-06-02 07:25:06 -04:00
Arvid Norberg
14d085f607
rename allow_peers to paused ( #773 )
2016-06-01 01:05:32 -04:00
Arvid Norberg
92cd0ec7d1
simplify and clean up peer_list usage in torrent.cpp ( #772 )
2016-06-01 01:05:17 -04:00
arvidn
ec182492cc
improve add_torrent_params::flags documentation and fix related logging bug
2016-05-30 16:36:44 -07:00
Arvid Norberg
0583394af7
remove dependency on libtommath and use boost.multiprecision instead
...
remove dependency on libtommath and use boost.multiprecision instead
2016-05-30 14:33:24 -04:00
arvidn
7795b2ff6c
merged RC_1_1 into master
2016-05-29 10:01:55 -07:00
Arvid Norberg
b3bbb2f0f6
upgrade libtommath to 1.0 ( #765 )
...
upgrade libtommath to 1.0
2016-05-28 17:12:26 -04:00
arvidn
420b5f51e6
merged RC_1_1 into master
2016-05-27 12:35:53 -07:00
Alden Torres
7809863035
Removed unused cpp files ( #758 )
2016-05-27 13:28:04 -04:00
arvidn
67a497834a
back-port extra checks in pe_crypto from master
2016-05-27 09:51:06 -07:00
Arvid Norberg
6936405518
add more sanity checks to pe_crypto ( #761 )
2016-05-27 12:39:03 -04:00
Alden Torres
f8dcf30b2e
Ported support for magnet x.pe parameter from master ( #760 )
2016-05-27 12:12:32 -04:00
Alden Torres
10393697cb
Fix of parse_endpoint with invalid port character separator ( #757 )
2016-05-27 12:00:54 -04:00
Alden Torres
313006b8c7
Added support for x.pe parameter in parse_magnet_uri ( #755 )
2016-05-26 13:34:13 -04:00
Arvid Norberg
96999ad67f
replace uses of boost::bind with std::bind and lambdas ( #745 )
2016-05-25 00:31:52 -04:00
arvidn
98eabc63e9
using _WIN32 appears safer than WIN32
2016-05-23 23:02:52 -04:00
arvidn
0ce5a4c664
improve robustness in natpmp code a bit
2016-05-23 22:46:46 -04:00
Arvid Norberg
748af6eec1
general cleanup. remove valgrind markup, log_hash_failures and C headers ( #752 )
...
general cleanup. remove valgrind markup, log_hash_failures and C headers
2016-05-23 08:15:39 -04:00
arvidn
f1216686d2
merged RC_1_1 into master
2016-05-23 00:56:16 -04:00
Arvid Norberg
62fb7209ef
fix invariant check issue with a paused session ( #750 )
...
fix invariant check issue with a paused session
2016-05-22 22:58:11 -04:00
Arvid Norberg
cf3c95702b
Peer blocked alert ( #747 )
...
make peer_blocked_alert derive from peer_alert
2016-05-22 19:56:14 -04:00
Arvid Norberg
b5fc367d17
fix incorrect comparison function when deciding which peer to disconnect ( #746 )
...
fix incorrect comparison function when deciding which peer to disconnect
2016-05-22 13:46:37 -04:00
Arvid Norberg
584d74e2f0
fix union storage hacks ( #670 )
...
remove union storage hacks
2016-05-21 21:04:47 -04:00
Arvid Norberg
dceee3b065
simplify session call and replace session_handle and torrent_handle macros ( #741 )
...
remove use of macros in session_handle and torrent_handle forwarders
2016-05-21 19:05:42 -04:00
Alden Torres
afbfd6e890
Fixed compilation when TORRENT_UTP_LOG ( #738 )
2016-05-19 13:25:39 -04:00
arvidn
aa0d29b67d
merged RC_1_1 into master
2016-05-19 01:28:22 -04:00
Arvid Norberg
178a41b187
clean up natpmp logging infrastructure a bit as well as test_peer_list ( #735 )
...
clean up natpmp logging infrastructure a bit as well as test_peer_list
2016-05-18 01:54:37 -04:00
arvidn
35eff73662
fix missing include
2016-05-17 22:36:45 -04:00
Arvid Norberg
eb72bbf2d2
fix add_torrent_impl when adding a URL (which has been deprecated) when building with deprecated features disabled ( #733 )
2016-05-17 16:49:11 -04:00
Arvid Norberg
e8380e1d0b
factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows ( #732 )
2016-05-17 09:24:06 -04:00
Arvid Norberg
5b23bc81b6
fix print_backtrace build ( #731 )
2016-05-15 15:40:53 -04:00
Arvid Norberg
44a668db62
build with gcc/mingw on appveyor ( #722 )
...
enable gcc/mingw builds on appveyor. Some mingw tests crash currently, they need debugging and are currently disabled.
2016-05-15 13:28:22 -04:00
Arvid Norberg
1e7e01c671
transition to system_error as the exception type ( #730 )
...
transition to system_error as the exception type
2016-05-15 00:33:06 -04:00
Arvid Norberg
0d27a0acdd
fix assert when adding an empty file (as a torrent) ( #729 )
2016-05-14 13:24:29 -04:00
arvidn
c292696dcb
back-port fix adding empty file as torrent
2016-05-14 13:13:20 -04:00
Arvid Norberg
167cbe74b5
made alerts move-only and remove dispatch function and other deprecated alert functions requiring alert to be copyable ( #721 )
2016-05-13 08:19:44 -04:00
arvidn
84f70a77ee
fix assert
2016-05-13 00:16:51 -04:00
Arvid Norberg
53bd03558c
Dht stats 1.1 ( #720 )
...
fix missing dht stats counter updates
2016-05-12 21:27:11 -04:00
Arvid Norberg
a7213d3f5a
don't support older than msvc-14 (2015) ( #727 )
...
don't support older than msvc-14 (2015)
2016-05-12 21:24:45 -04:00
Andrei Kurushin
674641acce
fix file_storage::m_paths memory reuse ( #724 )
...
fix file_storage::m_paths memory reuse after rename_file with path delimiter
2016-05-12 16:45:23 -04:00
Arvid Norberg
4057aa0391
fix issue with comparison of cached time and real-time ( #719 )
2016-05-09 08:21:00 -04:00
arvidn
7c108e6c19
merged RC_1_1 into master
2016-05-09 00:30:30 -04:00
Arvid Norberg
5bedf3e7b3
post add_torrent_alert before any other torrent alert ( #717 )
...
post add_torrent_alert before any other torrent alert
2016-05-08 23:48:27 -04:00
Arvid Norberg
98bbeb68b8
transition some standard integer types from boost to std ( #711 )
2016-05-08 16:10:49 -04:00
Arvid Norberg
29902be3a0
some general C++ 11 cleanup. some typedefs and for loops ( #709 )
2016-05-07 18:46:42 -04:00
arvidn
254906eddc
back-port torrent peer-class fix from master
2016-05-07 14:56:22 -04:00
Arvid Norberg
8922990fc7
fix peer class leak in torrent and widen peer_class_t to allow for mo… ( #707 )
...
fix peer class leak in torrent and widen peer_class_t to allow for more instances
2016-05-07 14:52:10 -04:00
arvidn
29943ab0f0
fix warning
2016-05-07 09:24:05 -04:00
Steven Siloti
64409dae65
use move to avoid heap allocating the vector when posting watermark_callback ( #700 )
2016-05-07 00:55:38 -04:00
Arvid Norberg
bcb359cef6
use unsigned long for ioctl commands ( #705 )
2016-05-06 08:08:49 -04:00
arvidn
6cf5ac9dd1
merged RC_1_1 into master
2016-05-06 01:08:05 -04:00
Arvid Norberg
985436636e
added new preformatted type to bencode entry ( #698 )
...
added new preformatted type to bencode entry to support carrying a verbatim copy of an already bencoded subtree. This is to support saving torrents in resume data and create_torrent based on existing torrents, in order to preserve key order
2016-05-05 21:38:57 -04:00
Arvid Norberg
f9bc6dbc54
improvements to socks5 support (for 1.1.1 release) ( #567 )
...
capture listen IP and port from socks5 BIND response. add tests for socks5 and improve support for capturing the local endpoint (i.e. bind port) for BIND command socket connections. post listen_succeeded_alert when successfully bound to listen socket on SOCKS5 proxy. make sure to announce the socks5 listen port
2016-05-05 17:09:11 -04:00
arvidn
60088a1672
add missing file to makefile
2016-05-05 00:28:31 -04:00
Steven Siloti
fa693174e7
move vectors into alerts ( #699 )
2016-05-04 09:50:44 -04:00
Arvid Norberg
c6369194f0
simplify and optimize DHT routing table IP distance comparison ( #696 )
2016-05-03 23:22:25 -04:00
Arvid Norberg
077e9bb10c
improve node-id operations ( #693 )
...
improve node-id operations, to operate on 32 bits at a time instead of 8. move out some code into sha1_hash.cpp, from the header file
2016-05-03 08:29:27 -04:00
Jonathan McDougall
f065cacebf
* now calling stop_announcing() unconditionally instead of checking !is_paused(), which was always false when aborting a torrent and could cause infinite blocks while destroying a session ( #694 )
...
fixed torrent invariant check that wasn't using the m_abort flag and correctly stop trackers when shutting down
2016-05-03 01:34:43 -04:00
Arvid Norberg
f56c1f8b2f
remove mutex from tracker_manager ( #690 )
...
remove mutex from tracker_manager
2016-05-02 22:22:13 -04:00
Arvid Norberg
c91a700c07
Msvc warnings ( #685 )
...
fix msvc warnings and build examples with warnings-as-errors
2016-05-02 12:36:21 -04:00
Arvid Norberg
0d2c04cb2e
remove network thread pool feature ( #688 )
...
remove network thread pool feature (it was messy and mostly useful for bittorrent over SSL). The proper solution is to allow every peer run in its own asio strand and have multiple threads running the io service
2016-05-02 02:18:51 -04:00
Arvid Norberg
7048eb1f5c
be more conservative in marking packets as mtu-probes ( #689 )
2016-05-02 00:17:17 -04:00
Alden Torres
8ae1e9a21d
Moved disabled_storage and zero_storage for a private namespace in the compilation unit ( #687 )
2016-05-01 23:16:00 -04:00
Alden Torres
b85b501d92
Using address::is_multicast instead util function ( #686 )
2016-05-01 18:15:25 -04:00
arvidn
60c119c52d
remove mutex in natpmp
2016-05-01 12:28:16 -04:00
arvidn
accf13d93e
remove mutex in upnp
2016-05-01 12:24:54 -04:00
Arvid Norberg
0d5428a664
minor refactoring to move-storage patch ( #680 )
...
minor refactoring to move-storage patch
2016-05-01 12:23:02 -04:00
Arvid Norberg
53ca04036e
Merge pull request #681 from ssiloti/entry-move
...
add move ctor to entry
2016-05-01 10:12:18 -04:00
arvidn
fc4cc9e7ee
make the cached current time thread-safe
2016-05-01 08:50:23 -04:00
Steven Siloti
fef94a4c52
use standard random number classes ( #679 )
...
use standard random number classes
2016-05-01 08:35:28 -04:00
Arvid Norberg
770afadcda
use std::atomic instead of boost::atomic ( #678 )
...
use std::atomic instead of boost::atomic
2016-05-01 03:38:35 -04:00
Arvid Norberg
a3de04dffc
Merge pull request #675 from ssiloti/unique_ptr
...
Use unique_ptr where possible
2016-05-01 01:31:04 -04:00
Steven Siloti
f0b92a2047
add move ctor to entry
2016-04-30 21:02:22 -07:00
Steven Siloti
ff0675e64e
use standard array container ( #676 )
2016-04-30 23:10:47 -04:00
Vladimir Golovnev
64cb8b236a
Move storage "file-by-file" ( #632 )
...
When moving storage for a torrent, only move files belonging to the torrent, one by one.
2016-04-30 22:18:38 -04:00
Steven Siloti
2c00a613b2
use unique_ptr to network_thread_pool
2016-04-30 16:49:21 -07:00
Steven Siloti
0682e6146c
use a unique_ptr for the udp_socket receive buffer
2016-04-30 16:49:21 -07:00
Arvid Norberg
20b41ad0b9
Threads ( #671 )
...
use std::thread, std::mutex, std::condition_variable instead of pulling them in from boost.asio internals.
2016-04-30 18:54:23 -04:00
Arvid Norberg
98fb7df56f
use standard unordered containers ( #673 )
2016-04-30 16:53:20 -04:00
Arvid Norberg
4e97bf556c
use override and final keywords (unconditionally) ( #668 )
...
use override and final keywords instead of macros.
2016-04-30 11:05:54 -04:00
Arvid Norberg
f856b6bbe3
dial up cppcheck ( #663 )
...
increase cppcheck coverage and make sure there are no warnings
2016-04-30 00:24:45 -04:00
arvidn
36a5a11ee2
merge fix
2016-04-29 23:34:25 -04:00
Arvid Norberg
f0d95f5e3e
remove RSS feature ( #662 )
...
remove RSS feature
2016-04-29 15:54:21 -04:00
Arvid Norberg
84a35f5265
clean up settings_pack ( #665 )
2016-04-29 12:01:33 -04:00
Arvid Norberg
46b33f920b
remove explicit cache feature ( #661 )
...
remove explicit cache feature
2016-04-29 02:32:00 -04:00
arvidn
e0e05e3961
fix asserts firing in unit tests
2016-04-28 21:59:41 -04:00
arvidn
b8dad50757
fix whitespace
2016-04-28 17:14:41 -04:00
Arvid Norberg
10ec0234a7
remove resolve-country feature ( #656 )
2016-04-28 08:20:47 -04:00
Arvid Norberg
5f5aa2361e
use array_view more along the udp packet paths ( #655 )
2016-04-28 08:20:10 -04:00
Arvid Norberg
c557432431
attempt to run cppcheck on travis ( #644 )
...
run cppcheck on travis
2016-04-26 18:09:11 -04:00
Alden Torres
96b7d3ad46
Removed unused alert_observer.hpp ( #646 )
2016-04-26 11:48:43 -04:00
Alden Torres
d08bbbc0cc
Added asserts related to total_size in create_torrent ( #642 )
2016-04-26 00:37:47 -04:00
Arvid Norberg
3c785b96fc
Merge pull request #268 from ssiloti/dht-ipv6
...
Support DHT over IPv6
2016-04-25 19:19:48 -04:00
Andrei Kurushin
62eb956c54
fix x64 build with VS2015 UP2 compiler ( #640 )
...
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
Arvid Norberg
bbf411800a
remove pre-C++11 threadsafe static emulation ( #641 )
2016-04-25 08:38:48 -04:00
Alden Torres
7c4fabadfd
Removed unused statement ( #643 )
2016-04-24 23:47:57 -04:00
Steven Siloti
2d9a6b76f1
use asio::protcol instead of an enum/bool
2016-04-24 15:18:47 -07:00
Steven Siloti
d3ecc4c906
reduce the number of peers in a get_peers response with IPv6
...
Since IPv6 addresses are bigger we need to compensate to avoid generating
packets larger than 1500 bytes.
2016-04-24 14:26:57 -07:00
Steven Siloti
2abd9867ce
IPv6 DHT support
...
Fixes #110
2016-04-24 14:26:57 -07:00
Steven Siloti
356d2506bd
extend dht_observer to support IPv6 external addresses
2016-04-24 14:26:57 -07:00
Steven Siloti
11fa4f3e47
support IPv6 in node_entry and m_ips
2016-04-24 14:26:57 -07:00
arvidn
b5ecfa4f91
fix merge issues
2016-04-24 16:43:45 -04:00
arvidn
dec093dc1a
Merge branch 'RC_1_1'
2016-04-24 15:41:28 -04:00
Arvid Norberg
7251575d98
This patch does: ( #633 )
...
1. simplifies and regularizies creation of listen sockets based on the listen
interfaces setting.
2. simplifies and improves the behavior of UDP sockets, which are now explicitly
opened per listen interface
3. transitions udp tracker, DHT and uTP socket manager over to using the new
udp sockets
4. greatly simplified udp_socket to only wrap a single underlying socket (as
opposed to one IPv4 and IPv6 socket)
5. improved behavior of bind-to-device
6. introduce an array_view type to make udp packet passing code simpler
7. simplify and make setting of DF flag more robust
8. simplify and regularize port mapping of listen sockets
2016-04-24 15:26:28 -04:00
Arvid Norberg
c9c6dd2d3b
clean up the annotations used for asio debugging ( #639 )
...
clean up the annotations used for asio debugging (tracking outstanding async operations)
2016-04-23 17:29:25 -04:00
Arvid Norberg
a9f07a29bd
fix move_storage error handling bug ( #638 )
2016-04-23 10:02:52 -04:00
Alden Torres
6171c911a0
Added assert for total_size in create_torrent ( #636 )
2016-04-22 13:51:06 -04:00
arvidn
04a3c04075
merged RC_1_1 into master
2016-04-20 08:08:05 -04:00
Arvid Norberg
423ee1cef4
move some implementation details of bitfield into its own translation unit to not expose MMX and SSE internals (and fix shared linking) ( #630 )
2016-04-20 07:50:57 -04:00
Arvid Norberg
0b53fb70ad
add missing torrent_error_alert::filename function ( #629 )
2016-04-20 00:46:42 -04:00
Alden Torres
0fddd403b2
Better api for peers() method in dht_get_peers_reply_alert ( #628 )
2016-04-19 16:16:51 -04:00
arvidn
93408a02ff
fix classification of UDP packets as peer traffic
2016-04-18 01:29:46 -04:00
arvidn
ccc227f446
minor cleanup
2016-04-18 00:29:50 -04:00
Andrei Kurushin
7b5d48c02a
fix default release build with VS2015 UP2 compiler warnings ( #624 )
...
* fix default release build with VS2015 UP2 compiler warnings
this will allow to successfully build:
bjam toolset=msvc-14.0 release deprecated-functions=off character-set=unicode link=static warnings-as-errors=on
2016-04-17 16:56:07 -04:00
Alden Torres
a73d424b82
typos
2016-04-15 15:39:41 -04:00
arvidn
2529dbba7f
improve python binding of read_resume_data, and specifically add_torrent_params
2016-04-15 00:48:45 -04:00
arvidn
d17ae19391
Merge branch 'RC_1_1'
2016-04-11 02:08:06 -04:00
Steven Siloti
9ffadcde62
allow peers to resume allocating disk buffers when their last outstanding write completes
2016-04-09 16:48:05 -07:00
arvidn
5d499e83b6
fix uTP/SSL
2016-04-09 10:50:45 -04:00
arvidn
867b83ccda
merged RC_1_1 into master
2016-04-08 02:20:24 -04:00
Arvid Norberg
774735b046
Merge pull request #600 from arvidn/python-warnings-1.1
...
fix some build warnings in python binding
2016-04-08 02:17:45 -04:00
arvidn
5c17dc9f31
fix some build warnings in python binding
2016-04-07 22:45:23 -04:00
arvidn
cee2b16949
fix some coverity warnings and move out code to torrent_status.cpp
2016-04-07 21:44:24 -04:00
arvidn
876cef0d4c
restore the ipv6 http tracker argument, but restricted to only private torrents
2016-04-07 00:06:04 -04:00
Arvid Norberg
6767cf96f1
Merge pull request #546 from arvidn/move-into-self-1.1
...
fail correctly when move_storage is called to move into itself 1.1
2016-04-06 17:49:05 -04:00
arvidn
387498e54f
clean up in piece picker
2016-04-06 00:45:21 -04:00
Alden Torres
bb8d1d0e56
Revert utp log file to disable by default
...
Documentation typos
2016-04-03 22:32:06 -04:00
arvidn
dff0e7b0cd
fix concurrency issue in part_file::export_file
2016-04-02 21:29:20 -04:00
arvidn
31805ecec0
fix some clang build warnings
2016-04-02 12:27:42 -04:00
arvidn
6bc5de5903
fail correctly when move_storage is called to move into its own directory
2016-04-02 10:03:31 -04:00
arvidn
7f232dd195
fix python3 issue in binding
2016-03-30 23:35:47 -04:00
arvidn
fd4a46342f
merge RC_1_1 into master
2016-03-30 00:33:29 -04:00
arvidn
7649610807
fix test_optimistic_unchoking sim
2016-03-27 18:40:53 -04:00
arvidn
3e7a6b03e5
remove dead code in peer_connection
2016-03-21 18:47:17 -04:00
arvidn
b16f43132b
Merge branch 'RC_1_1'
2016-03-20 20:39:49 -04:00
arvidn
0095aa084f
make coalesce reads and coalesce writes actually work
2016-03-20 16:34:19 -04:00
arvidn
a9d12766d4
fix typo in hard_link()
2016-03-20 16:14:29 -04:00
Arvid Norberg
db214cc92d
Merge pull request #559 from arvidn/direct-io-1.1
...
remove unused O_DIRECT mode
2016-03-20 14:42:58 -04:00
arvidn
139fb29647
remove unused O_DIRECT mode, and relax/simplify alignment requirements for coalesce_buffers
2016-03-20 00:55:31 -04:00
arvidn
85cf5ac195
remove unused aligned_holder class. fix logging issue of out-of-bound piece requests
2016-03-19 23:32:50 -04:00
arvidn
96e2693d13
merge RC_1_1 into master
2016-03-19 16:02:46 -04:00
Arvid Norberg
e9b334ce63
Merge pull request #494 from arvidn/udp-bind-failure-1.1
...
attempt to fix issue with binding udp sockets on windows
2016-03-19 13:20:51 -04:00
arvidn
53b5e964d2
fix merge issue and properly close ssl udp socket when disabled, prevents the extra listen_succeeded alert for the ssl udp socket
2016-03-19 10:25:35 -04:00
arvidn
e9a5985609
if a udp socket is already bound to the IP and port we want to bind it to, don't reopen it
2016-03-19 10:25:30 -04:00
arvidn
d705dc2953
attempt to fix issue with binding udp sockets on windows
2016-03-19 10:25:30 -04:00
arvidn
f7c9062019
deprecate more parts of explicit cache as well as fixing typos of TORRENT_NO_DEPRECATE preprocessor tests
2016-03-19 07:54:29 -04:00
arvidn
c0033d0977
do not enable SSL listen sockets by default
2016-03-18 23:57:02 -04:00
arvidn
b446fe4bba
deprecate settings_pack::hashing_threads and replace it with aio_threads in documentation
2016-03-18 16:40:52 -04:00
arvidn
3c98868f6c
deprecate explicit cache feature
2016-03-18 12:15:03 -04:00
arvidn
6d1a744a5c
Merge branch 'RC_1_1'
2016-03-18 11:31:21 -04:00
arvidn
1cd5119178
remove/deprecate bad idea with mlock
2016-03-17 19:37:05 -04:00
arvidn
5c360247b6
move piece_bar into print.cpp in client_test. make client_test take arbitrary libtorrent settings
2016-03-17 08:19:11 -04:00
arvidn
77ce318a84
merged RC_1_1 into master
2016-03-17 00:46:05 -04:00
arvidn
317eb2fe2a
remove unused disk allocation code
2016-03-16 20:13:28 -04:00
arvidn
f79a9c7adf
merged RC_1_1 into master
2016-03-16 19:59:53 -04:00
Arvid Norberg
a1d60db706
Merge pull request #547 from arvidn/no-read-cache-1.1
...
fix use_read_cache=false
2016-03-16 08:14:15 -04:00
arvidn
4926081960
fix use_read_cache=false
2016-03-16 02:22:18 -04:00
arvidn
36d0cfe40d
fix shutdown issue caused by peer connections being kept alive by disk buffer pool callbacks
2016-03-16 00:28:19 -04:00
arvidn
08bac479be
allow each peer have at least 2 allocated disk blocks at any given time, to avoid stalling when cache_size setting is small. also deprecate use_write_cache
2016-03-16 00:28:11 -04:00
Steven Siloti
4331f57021
restrict check_cache_level to only runing on one thread at a time
...
If another thread trys to call check_cache_level then m_cache_check_state is set
to indicate that the thread currently in check_cache_level needs to call it again.
2016-03-14 19:03:12 -07:00
Steven Siloti
d405535a3f
try to free the piece after kicking the hasher and flushing
2016-03-14 19:03:12 -07:00
Steven Siloti
e8f93df700
fix indentation
2016-03-14 19:03:12 -07:00
Steven Siloti
826bbe35ee
always cache writes
2016-03-14 19:03:12 -07:00
Steven Siloti
6e8db41dd2
check_cache_level after performing a job rather than before
...
If dirty blocks are added while the job is running there is a chance of
deadlock if the dirty blocks cause the cache to exceed its size limit and
no further jobs come in to trigger another check.
2016-03-14 19:03:12 -07:00
Steven Siloti
9c5bb25d65
always clear outstanding_flush after attempting to flush a cached write
...
Also clear outstanding_flush before calling kick_hasher because kick_hasher
may unlock the cache mutex which can allow more dirty blocks to be added
which may require another flush_hashed job be added.
2016-03-14 19:03:12 -07:00
Arvid Norberg
82d177472e
Merge pull request #541 from arvidn/fix-test-transfer-1.1
...
improve message from listen_failed_alert
2016-03-14 21:43:34 -04:00
arvidn
c5861bcc04
fix failure to increment port when retrying socket binding
2016-03-14 18:52:43 -04:00
Arvid Norberg
42d423e992
Merge pull request #540 from arvidn/remove-purgable-control-1.1
...
remove the purgable control patch
2016-03-14 17:54:12 -04:00
arvidn
921cbeebed
add option to delete just the partfile when removing a torrent
2016-03-14 08:26:39 -04:00
arvidn
55cd19d1e2
remove the purgable control patch. It adds a lot of complexity and it does not perform well
2016-03-14 01:48:00 -04:00
Arvid Norberg
035f8e98d1
Merge pull request #542 from arvidn/request-timeout-1.1
...
fix seed timing-out unchoked peers for not sending requests
2016-03-14 01:44:50 -04:00
arvidn
58e73c1469
fix typo
2016-03-13 20:47:50 -04:00
Arvid Norberg
5652a46068
Merge pull request #508 from arvidn/part-file-1.1
...
attempt to fix issue where the partfile is not deleted
2016-03-13 18:05:01 -04:00
arvidn
8f14c74be8
fix issue where a seed could time-out an unchoked peer for not sending any requests, despite being busy servicing requests from the peer (and time out immediately when m_requests is drained)
2016-03-13 16:41:31 -04:00
arvidn
fb85e5e60f
improve message from listen_failed_alert. Post listen_failed_alert for every failure, including the ones that are re-tried
2016-03-13 16:18:44 -04:00
arvidn
0d0048d415
try to evict a volatile piece before allocating a new one for a hash check. It may be faster to check files without growing the cache, or reusing the same buffers.
2016-03-13 12:52:44 -04:00
arvidn
2178d1ad2b
improve robustness and performance of uTP PMTU discovery. fix duplicate ACK issue in uTP. demote an invariant check to 'expensive'
2016-03-13 12:40:59 -04:00
arvidn
6d85c7c5f0
merge RC_1_1 into master
2016-03-08 01:10:48 -05:00
arvidn
71e3fb8941
fix division by zero in super-seeding logic
2016-03-07 23:40:01 -05:00
arvidn
f5d5ac4f3a
fix bug where disk cache was wiped out after completion file-checking. factor out sim test utilities and reuse them in the regression test
2016-03-06 21:44:38 -05:00
Arvid Norberg
3fa3004b85
Merge pull request #526 from arvidn/rechecking-outstanding-1.1
...
always keep at least 2 async hash jobs outstanding
2016-03-06 20:05:56 -05:00
arvidn
442979c318
support filtering which parts of session state are loaded by load_state()
2016-03-06 16:35:49 -05:00
arvidn
67774d660d
always keep at least 2 async hash jobs outstanding when rechecking torrents (to keep the bandwidth delay product full)
2016-03-06 16:31:18 -05:00
arvidn
b40430f175
change the cache size calculation for auto cache size (-1) to be smaller, especially for machines with large amounts of RAM
2016-03-06 16:15:22 -05:00
arvidn
a02c1d2164
record cache settings in the job instead of checking it twice for more robust behavior
2016-03-06 16:15:13 -05:00
arvidn
8ca76f9d59
fix support for auto disk cache size and disk buffer pool allocator behavior
2016-03-06 16:14:55 -05:00
arvidn
26f88bb12d
add receive_buffer unit test and some more cleanup and asserts
2016-03-05 00:14:00 -05:00
arvidn
2efb9d9a6a
fix bug in receive_buffer
2016-03-05 00:13:59 -05:00
Arvid Norberg
be17b78c5f
Merge pull request #522 from arvidn/io-thread-assert-1.1
...
remove invalid assert in the disk thread
2016-03-04 23:16:02 -05:00
arvidn
2bd6ad9974
remove invalid assert in the disk thread
2016-03-04 20:20:49 -05:00
Arvid Norberg
00f3406402
Merge pull request #514 from arvidn/allowed-unchoke-1.1
...
attempt to uphold the invariant that the num_unchoke_slots
2016-03-04 16:43:38 -05:00
arvidn
b707a4de90
uphold the invariant that the num_unchoke_slots counter is int max as long as the unchoke slots limit < 0
2016-03-04 16:42:36 -05:00
Alden Torres
4998bfedc6
Documentation typos
2016-03-04 10:43:25 -05:00
arvidn
b9ec183e24
increase default connect speed. minor cleanup. add logging for short lived connections
2016-03-03 01:20:15 -05:00
arvidn
fbef47d3ec
fix edge case in uTP stream when receiving a close-reason code
2016-03-02 22:30:02 -05:00
arvidn
e1f4b5ad2d
fix typo in reporting file index in checking resume data
2016-03-02 18:43:16 -05:00
arvidn
e851b79865
fix issue when shutting down a torrent with outstanding async operations
2016-03-02 01:16:08 -05:00
arvidn
aeb9f1c5dd
fix bug in enum_net_interfaces
2016-02-29 18:14:10 -05:00
arvidn
2b6fdc1728
attempt to fix issue where the partfile is not deleted when asking to delete all files
2016-02-28 16:05:13 -05:00
arvidn
f563bf9cac
attempt to make the alert type backwards compatible with cloning the state when building with deprecated functions enabled
2016-02-27 20:25:17 -05:00
arvidn
ac2916c426
enable disk cache pool allocator by default. fix ansi escape code conversion in client_test on windows
2016-02-27 17:42:31 -05:00
arvidn
07ecf7c1bd
remove invalid assert
2016-02-27 00:25:21 -05:00
Steven Siloti
b52027a02a
set enable_dht to true in session::start_dht(entry)
...
This function needs to enable the dht to match its semantics in pre 1.1 versions
2016-02-26 19:22:28 -08:00
arvidn
8cb18d39a1
add missing file to src/Makefile
2016-02-26 18:54:27 -05:00
arvidn
2fd8047308
merged RC_1_1
2016-02-24 21:22:39 -05:00
Arvid Norberg
842d6fbca4
Merge pull request #492 from arvidn/fix-ssl-deprecated-1.1
...
fix build with openssl and deprecated functions disabled
2016-02-24 21:18:43 -05:00
arvidn
d4f259ccf0
attempt to fix race when closing a web seed while it's receiving data
2016-02-24 02:23:09 -05:00
arvidn
e5ccb63375
fix build with openssl and deprecated functions disabled
2016-02-24 02:07:27 -05:00
arvidn
dcd6af6473
more fixing of test_transfer proxy tests
2016-02-24 00:03:56 -05:00
arvidn
0b173c6651
merged RC_1_1
2016-02-23 23:48:29 -05:00
arvidn
57aa813135
fix auto-managed issue with torrents transitioning to 'slow' as they get paused, returning to life again later because of it
2016-02-23 01:28:58 -05:00
arvidn
ca75055c4b
fix documentation generation of listen_interfaces
2016-02-23 00:16:50 -05:00
arvidn
72a3771b87
attempt to fix logic around around actually closing udp sockets (specifically the SSL UDP socket)
2016-02-21 20:00:55 -05:00
arvidn
d8b88ba381
include protocol in portmap_alert
2016-02-21 19:16:00 -05:00
arvidn
61a67ece4a
fix non-openssl build
2016-02-21 18:40:06 -05:00
arvidn
cdfdbfd6aa
fix port mapping for SSL UDP socket
2016-02-21 17:40:27 -05:00
arvidn
967ec412a5
Merge branch 'RC_1_1'
2016-02-21 15:21:33 -05:00
Arvid Norberg
d172733c87
Merge pull request #487 from arvidn/fix-resume-checking-torrent
...
fix resuming of torrents that were checking files
2016-02-21 15:21:10 -05:00
arvidn
421bef5b68
fix resuming of torrents that were checking files
2016-02-21 11:32:50 -05:00
arvidn
cc8066bf11
properly deprecated adding torrents by http url
2016-02-21 11:31:42 -05:00
arvidn
3f3b366ed5
be a bit more strict about when the STL containers need complete types (to make it build under GCC with concept checks enabled). add proper assignment operator to types used in STL containers
2016-02-21 11:29:01 -05:00
arvidn
13e9eb6680
forward-port outgoing interface fix from RC_1_0
2016-02-20 20:35:52 -05:00
Arvid Norberg
5d18800e04
Merge pull request #486 from arvidn/force-recheck-1.1
...
make force recheck a bit more robust
2016-02-20 19:53:56 -05:00
arvidn
3231aa4c9d
make force recheck a bit more robust by initializing the progress state immediately
2016-02-20 15:53:43 -05:00
arvidn
3f40890eb6
simplify logic for saving resume a bit
2016-02-20 15:45:46 -05:00
arvidn
d599bef0ee
add unit test for read_resume_data
2016-02-20 13:26:21 -05:00
arvidn
b581fef437
resume checking of torrents
2016-02-20 13:26:21 -05:00
arvidn
a5d131b1bb
post fastresume_reject_alerts when building with deprecated functions enabled
2016-02-20 13:26:21 -05:00
arvidn
b23cb76b6f
load 'info-hash' in read_resume_data
2016-02-20 13:26:21 -05:00
arvidn
cc49b876bb
add flag for initializing m_need_save_resume_data when adding torrent
2016-02-20 13:26:21 -05:00
arvidn
40f6afc2f8
save and restore storage allocation mode in resume data
2016-02-20 13:26:21 -05:00
arvidn
8304cb07bc
update documentation
2016-02-20 13:26:20 -05:00
arvidn
67dbca14b7
move logic that loads torrent files from resume data into read_resume_data()
2016-02-20 13:26:20 -05:00
arvidn
c9d7e54d7b
make tests pass
2016-02-20 12:50:52 -05:00
arvidn
8135ea326f
rename async_check_fastresume to async_check_files, and make it take an add_torrent_params object instead of bencoded resume data
2016-02-20 02:00:07 -05:00
arvidn
4ef55073e3
transition mapped_files over to the new add_torrent_params
2016-02-20 02:00:07 -05:00
arvidn
6e88771981
transition merkle tree support over to the new read_resume_data()
2016-02-20 02:00:07 -05:00
arvidn
6223057b1e
added support for pieces, verified pieces and piece_priorities in new resume data scheme
2016-02-20 02:00:07 -05:00
arvidn
a60bbe0a1c
fix loading of peers and banned_peers from resume_data
2016-02-20 02:00:07 -05:00
arvidn
35b998f90d
introduce backwards-compatibility, of loading resume data and merging it with the add_torrent_params. add some more missing fields. deprecate some more flags in add_torrent_params
2016-02-20 02:00:07 -05:00
arvidn
e0ee12d4f3
remove m_resume_data and m_resume_data_loaded members from torrent
2016-02-20 02:00:06 -05:00
arvidn
197ded5a0d
revamp the way resume data is read, by providing a function for the client to parse resume data, capturing it in add_torrent_params
2016-02-20 02:00:06 -05:00
arvidn
1710b7c750
Merge branch 'RC_1_1'
2016-02-20 01:58:39 -05:00
arvidn
5cf36fd1d6
only save pieces in resume data that have actually been checked
2016-02-20 00:48:17 -05:00
arvidn
9d1f2b18ed
fix upnp mapping typo
2016-02-14 17:19:29 -08:00
arvidn
72a24b63ba
use bind_to_device for listen sockets
2016-02-12 15:46:18 -05:00
arvidn
6d77000ab0
deprecate ssl_listen setting. instead ssl sockets are specified by an 's' suffix of the port in listen_interfaces.
2016-02-12 15:46:12 -05:00
arvidn
887e79eb22
improve support for listening on multiple sockets and interfaces, with the listen_interfaces setting
2016-02-12 15:44:17 -05:00
arvidn
3842a0a197
Merge branch 'RC_1_1'
2016-02-12 15:43:13 -05:00
arvidn
828e79472d
forward port enum_net MTU fix
2016-02-11 00:46:28 -05:00
Arvid Norberg
7d8566f694
Merge pull request #473 from arvidn/bind-ssl-fix-1.1
...
fix issue in socket binding and back-port ssl test reliability fix
2016-02-10 19:47:34 -05:00
arvidn
58f8fb164e
Merge branch 'RC_1_1'
2016-02-10 18:28:54 -05:00
arvidn
ee14337894
revert listen_failed_alert::port
2016-02-10 18:28:34 -05:00
arvidn
ceb0ac6148
fix issue in socket binding and back-port ssl test reliability fix
2016-02-10 02:09:12 -05:00
arvidn
d1e4b57ad4
rename a few members of session_impl to be more descriptive
2016-02-08 18:15:47 -05:00
arvidn
4f40f84a7e
Merge branch 'RC_1_1'
2016-02-08 15:28:34 -05:00
arvidn
44abd1a59b
forward port fix to post torrent_added_alert earlier, from RC_1_0
2016-02-08 15:28:13 -05:00
arvidn
dd48faa8d4
minor debug logging issue in test facility wait-for-alert and fix minor shutdown issue with udp_socket packet subscription
2016-02-08 02:05:00 -05:00
Arvid Norberg
7b1a8ff6f1
Merge pull request #465 from arvidn/got-tracker-1.1
...
removed unused field in torrent
2016-02-07 14:50:08 -05:00
arvidn
f4627db97f
removed unused field in torrent
2016-02-07 02:37:32 -05:00
arvidn
f8a53d17ec
un-deprecate the endpoint field in listen_failed_alert
2016-02-07 02:12:58 -05:00
arvidn
660647b590
improve abstraction level of stats cache and fix test
2016-02-06 15:51:00 -05:00
arvidn
ae7058e119
remove the timestamps and file sizes from the resume data. This makes saving resume data alot cheaper, since it doesn't have to go via the disk thread. It also removes an old-standing API usage issue where there was easily a race condition introduced between saving resume data and pausing a torrent.
2016-02-06 15:50:55 -05:00
arvidn
df353bc3f9
forward port typo fix in udp_socket from RC_1_0
2016-02-06 15:49:25 -05:00
arvidn
6b63016b05
Merge branch 'RC_1_1'
2016-02-05 01:09:11 -05:00
arvidn
74554de330
forward port GetAdaptersAddresses from RC_1_0 and fix error categories in enum_net.cpp
2016-02-05 01:08:09 -05:00
arvidn
b0cc0f84ab
support NULL being passed as the listen interface to session constructor
2016-02-02 23:17:51 -05:00
arvidn
3a4f957b63
Merge branch 'RC_1_1'
2016-02-02 02:02:24 -05:00
arvidn
0f747695b7
fix error handling bug in logging
2016-02-02 01:57:56 -05:00
arvidn
e3fc6083bb
fix typo in listen_failed_alert
2016-02-01 20:53:58 -05:00
arvidn
88b7e3768f
add sim test for optimistic unchoke round-robin distribution
2016-02-01 20:28:30 -05:00
arvidn
f2ce2284da
optimize the optimistic unchoke logic. extend the API for extensions to be able to affect the order of optimistic unchokes
2016-02-01 20:28:22 -05:00
Arvid Norberg
764c8a7f0c
Merge pull request #446 from arvidn/default-gateway-fix-1.1
...
forward port removal of special case for windows and mingw-1.1
2016-02-01 01:50:28 -05:00
arvidn
55024ccc4b
forward port removal of special case for windows and mingw in get_default_gateway that appeared wrong
2016-01-31 21:14:15 -05:00
arvidn
e113e8cdf3
minor cleanup of listen sockets
2016-01-31 19:40:31 -05:00
arvidn
e584c30b29
forward-port reuse address patch for windows
2016-01-31 18:16:26 -05:00
arvidn
acd929381e
restore the endpoint field in listen_failed_alert (but deprecated) and add a port field
2016-01-31 10:20:10 -05:00
arvidn
9f1b27cf5f
Merge branch 'RC_1_1'
2016-01-30 01:47:19 -05:00
arvidn
efe32c6a0e
rewrite most of web_peer_connection::on_receive to make it a lot simpler and fix edge cases with pad-files
2016-01-28 01:58:33 -05:00
arvidn
f31d17c9c5
allow specifying which tracker to scrape in torrent_hadnle::scrape_tracker
2016-01-26 18:14:32 -05:00
arvidn
73289cb8ae
fix use of uninitialized variables in default_storage
2016-01-25 19:11:57 -05:00
Alden Torres
f71d775238
Allow xp compilation with the use GetFileInformationByHandleEx.
2016-01-25 12:22:33 -05:00
Steven Siloti
21feab838d
Enable SNI for outgoing SSL connections
...
Fixes #429
2016-01-24 12:24:33 -08:00
arvidn
2a0e64df46
add run-time check to file_storage::map_block and improve its documentation
2016-01-22 17:17:35 -05:00
arvidn
3153521367
merged RC_1_1 into master
2016-01-21 23:59:30 -05:00
Alden Torres
5c94b286b0
Removed file::m_path windows specific field
...
Removed default_storage::sparse_end
Typos
2016-01-21 12:11:33 -05:00
Alden Torres
218d33c545
Documentation typos and minor cleanup
2016-01-20 20:48:23 -05:00
arvidn
fbb246094b
fix windows build
2016-01-19 21:21:00 -05:00
arvidn
2fa84b3aa5
fix incorrect use of WaitForMultipleObjects
2016-01-19 18:47:21 -05:00
arvidn
784f8806a4
fix asio debugging feature
2016-01-18 23:13:50 -05:00
arvidn
2262a3dcaf
Merge branch 'RC_1_1'
2016-01-18 20:51:37 -05:00
arvidn
595fe157a9
fix shutdown issue
2016-01-18 20:48:27 -05:00
Arvid Norberg
a80c4f4777
Merge pull request #397 from arvidn/dht-rate-limit
...
move the DHT rate limiter into the dht_tracker class
2016-01-18 15:39:37 -05:00
arvidn
d5203c67d9
add DHT rate limit test (simulation). introduce a new counter for dropped incoming dht messages.
2016-01-18 14:34:42 -05:00
arvidn
06b52f1421
some cleanup of the dht_socket_interface and fix tests and simulations to build with the dht disabled
2016-01-18 14:34:42 -05:00
arvidn
297b8943d0
move the DHT rate limiter into the dht_tracker class and remove the rate_limited_udp_socket type. This further simplifies the udp socket (preparing for moving it into the listen_socket structure)
2016-01-18 14:34:41 -05:00
arvidn
4cbbb0620e
only strip trailing dots and spaces from filenames on windows
2016-01-18 13:07:04 -05:00
arvidn
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -05:00
Arvid Norberg
fa391d4961
Merge pull request #394 from arvidn/forward-port-http-fix
...
forward port fix for web seeds not being used by torrents added by URL
2016-01-17 17:47:25 -05:00
arvidn
0c971d0d62
forward port fix for web seeds not being used by torrents added by URL
2016-01-16 23:57:33 -05:00
arvidn
3cd57b59e0
when a tracker is force announced or scraped by the user/client, the resulting response or failure alert is now posted regardless of the alert mask. Since it's user initiated, it's reasonable to expect the user to be interested in the response
2016-01-16 21:24:04 -05:00
arvidn
78d306157b
forward port of windows symlink fix from RC_1_0
2016-01-16 01:53:27 -05:00
Arvid Norberg
cdc3e720d6
Merge pull request #386 from arvidn/win-file-error-handling
...
fix missing error handling in windows preadv/pwritev emulation
2016-01-13 21:50:49 -05:00
arvidn
c8f119c1a1
fix typo
2016-01-13 01:07:27 -05:00
arvidn
4a28e95ce0
fix missing error handling in windows preadv/pwritev emulation
2016-01-13 00:49:17 -05:00
arvidn
13f03ce38a
print the actual stats in session_stats_alert::message() and make parse_session_stats.py parse the alert output. add stats_metric objects for all performance counters
2016-01-12 23:34:37 -05:00
arvidn
f4d643bd2d
instead of restarting the whole DHT when changing external IP, just rebuild the routing table and change the node IDs
2016-01-11 21:17:25 -05:00
Alden Torres
20d8f4e3f7
Removed unused fields in field class
2016-01-11 12:07:36 -05:00
arvidn
4cc2e879c4
comment out verbose pex logging. fix bug in disabled_storage and an error reporting issue on short reads in default_storage
2016-01-10 11:50:56 -05:00
Alden Torres
0f442f59f3
Avoid pass IPv6 address to current implementation of DHT while adding a node
2016-01-09 18:46:19 -05:00
arvidn
e06daa68a4
overhaul the dht simulator (setup_dht) to be more flexible and cheaper to run thousands of nodes
2016-01-09 01:08:52 -05:00
Alden Torres
7b34379c87
Doc typos
2016-01-05 08:31:04 -05:00
Arvid Norberg
7282195ef0
Merge pull request #355 from arvidn/dht-add-node
...
simplify dht routing table add
2016-01-03 09:54:30 -05:00
arvidn
d954ae1b18
simplify dht routing table add
2016-01-02 20:03:18 -05:00
Alden Torres
b9a5525ab2
Store dht_settings::max_peers in session state
2016-01-02 11:49:07 -05:00
arvidn
07ddb010c5
split buckets when exceeding the next bucket's size, to make sure we split before risking discarding nodes because the next bucket is smaller
2016-01-02 00:45:44 -05:00
arvidn
e3ba811ae4
improve name of m_timer in dht_tracker
2016-01-01 16:42:44 -05:00
arvidn
01e6b93854
simplify and improve unit test for distance_exp. make some immutable variables const in the DHT implementation. instead of waking up periodically just to check if it's time to refresh the DHT secret key, set the timer to only wake up to refresh the key. If we don't have a DHT observer (to ask for our external IP) or if we don't know our external IP, don't generate a node ID based on 0.0.0.0, just generate a random ID instead. Simplified and improved node replacement logic in the routing table a little bit
2016-01-01 16:42:37 -05:00
Arvid Norberg
ffb78f0378
Merge pull request #312 from ssiloti/export-verify-message
...
export verify_message and incoming_error
2015-12-30 22:51:38 -05:00
Steven Siloti
ac01ccc43a
add templated wrapper around verify_message
...
It was too easy to forget to update the ret and size parameters
when the size of desec changed. With this change we now automatically
get the size of desc and enforce that ret has the same size.
It would be nice if we could use bdecode_node ret[static Size] from C99
but that is not widely supported.
2015-12-29 20:35:36 -08:00
arvidn
1698dc75dc
remove redundant boost::bind
2015-12-25 15:59:50 -05:00
Arvid Norberg
03e90d45d8
Merge pull request #339 from arvidn/dht-storage-test
...
extend the unit test of dht_storage
2015-12-20 02:02:56 -05:00
arvidn
626baade75
fix dht_storage bug
2015-12-19 22:06:25 -05:00
arvidn
3460f203f3
extend testing of sanitize_append_path_element
2015-12-19 20:11:22 -05:00
arvidn
28749466a2
fix build
2015-12-19 02:40:10 -05:00
arvidn
15ec839d33
extend the unit test of dht_storage
2015-12-19 02:09:06 -05:00
arvidn
e9b98c7d2e
GetFileAttributesEx fix
2015-12-19 00:12:11 -05:00
arvidn
1f3f06a836
forward port fix for deleting files of magnet link to master
2015-12-18 18:33:31 -05:00
arvidn
645b121df6
deprecate resolve-countries
2015-12-14 21:32:30 -05:00
Arvid Norberg
87dcd690d8
Merge pull request #327 from arvidn/stop-when-ready-fix
...
polish the stop-when-ready flag and improve documentation
2015-12-14 00:42:57 -05:00
Arvid Norberg
3516e53fa2
Merge pull request #329 from arvidn/warnings-fix
...
mark up some override functions and fix other clang warnings
2015-12-13 22:12:52 -05:00
arvidn
1712a8e4b4
polish the stop-when-ready flag and improve documentation
2015-12-13 20:31:28 -05:00
arvidn
505ae508f4
mark up some override functions and fix other clang warnings
2015-12-13 19:44:42 -05:00
arvidn
4b6e11cc07
deprecate set_tracker_login
2015-12-13 15:14:19 -05:00
Arvid Norberg
9e51700739
Merge pull request #325 from arvidn/set_web_seeds
...
add set_web_seeds to torrent_info
2015-12-13 11:24:59 -05:00
arvidn
121b686a39
add set_web_seeds to torrent_info
2015-12-12 18:36:15 -05:00
arvidn
0f9d82ab22
fix bug in handling force-started checking torrents
2015-12-12 15:08:38 -05:00
Arvid Norberg
550b0bb047
Merge pull request #313 from arvidn/setup-swarm-cleanup
...
clean up setup-swarm simulation utility to be more flexible
2015-12-12 14:07:26 -05:00
arvidn
d505f93d7a
port sim tests to use the new setup_swarm API
2015-12-12 00:41:47 -05:00
arvidn
d80a129871
fix gcc warnings
2015-12-12 07:15:24 +02:00
Steven Siloti
c6f1e0bd7b
export verify_message and incoming_error
...
Also move these functions to a new msg.cpp. They are useful for plugins
which implement DHT extensions.
2015-12-05 18:20:08 -08:00
arvidn
cc3b064cff
fix graceful pause issue. peers regularly check whether they should disconnect or not
2015-12-04 23:27:43 -05:00
Alden Torres
409cfaccc1
Fix num_alert_types.
2015-12-03 22:04:32 -05:00
arvidn
8732863a9a
another fix to receiving malformed DHT error message
2015-12-03 01:08:27 -05:00
arvidn
2acb3dcb24
clean up use of getrlimit() by wrapping it and move it to platform_util.cpp. Also take the opportunity to make it simulator friendly (consistent in simulation)
2015-12-02 00:45:34 -05:00
arvidn
12dde0f415
actually add a test to the unit test
2015-11-30 19:07:35 -05:00
arvidn
7540a6e5cc
correctly check incoming DHT error messages
2015-11-30 18:02:00 -05:00
Arvid Norberg
d0da753fb8
Merge pull request #302 from arvidn/fix-save-resume
...
fix save_resume_data in client_test
2015-11-30 17:17:57 -05:00
arvidn
60df41cd85
fix save_resume_data in client_test and make torrent a bit more instrumentable. This could be greatly simplified if resume data would not have file_sizes and timestamps
2015-11-29 20:31:57 -05:00
arvidn
87b64f083a
fix python build
2015-11-29 11:12:58 -05:00
arvidn
332799bff2
make alert types declared final and disable the log alert declarations when logging is disabled
2015-11-29 10:16:02 -05:00
arvidn
e9c0fc8eb5
fix bug that disabled rarest-first piece picking. introduced when removing speed-affinity in the piece picker
2015-11-29 08:26:00 -05:00
arvidn
fd3b53604c
add new piece picker logging alert category
2015-11-29 08:25:55 -05:00
arvidn
2c3d7ee0ef
fix a bug where the torrent's invariant was not always maintained as well as a shutdown issue (now covered by test as well)
2015-11-28 14:14:49 -05:00
Arvid Norberg
359fc5648b
Merge pull request #296 from arvidn/udp-read-handler
...
more efficient handler allocation for udp and second_tick
2015-11-28 01:06:10 -05:00
arvidn
a8e31fd8ca
add first coverage of test_transfer as a proper sim
2015-11-28 00:59:39 -05:00
arvidn
98c3b75b55
use more efficient (in-place) handler allocation for udp async_read and session second_tick
2015-11-28 00:57:44 -05:00
arvidn
51df32a25b
fix logging issue
2015-11-27 14:04:46 -05:00
arvidn
847cd340ee
extend tracker sim test and fix some bugs in tracker error reporting
2015-11-24 23:38:49 -05:00
arvidn
06b648203f
clean up use of error categories
2015-11-24 00:50:51 -05:00
arvidn
e3dad98fbe
fix an old use of posix_category. make http_connection translate IPs into proper endpoints when connecting over socks (instead of passing the IP on as a hostname string). add test coverage
2015-11-24 00:39:02 -05:00
arvidn
92236a9923
clean up error_code use, and use error_condition to test for errors in test_http_connection
2015-11-24 00:39:01 -05:00
arvidn
174e0aeb46
fix semantics of socks5_stream and http_connection to make them not close themselves. Add socks5 and socks4 proxy coverage in test_http_connection
2015-11-24 00:39:01 -05:00
arvidn
91868f2086
add test for gzipped http responses
2015-11-24 00:39:01 -05:00
Thomas Yuan
603ef84c65
Fix observer_size.
2015-11-23 11:06:20 -05:00
Steven Siloti
9c7edf803e
add override and a TODO
2015-11-22 18:58:32 -08:00
Steven Siloti
9f7aa7f3a6
fix segfault in put_data
...
If less than three nodes are found to put an item to then traversal_algorithm::start
will add router nodes. This leads to a crash in put_data::invoke when it tries to
read a token from uninitialized memory in a null_observer.
2015-11-22 16:05:24 -08:00
Steven Siloti
1f13343a70
const correctness
2015-11-22 10:02:26 -08:00
Steven Siloti
8a984effa7
allow done() with a non-zero invoke count
2015-11-22 10:02:26 -08:00
Steven Siloti
6c5bed63d3
whitespace cleanup
2015-11-22 10:02:26 -08:00
Arvid Norberg
ddddce6e2a
Merge pull request #280 from arvidn/stop-start-test
...
stop-start test
2015-11-21 02:31:11 -05:00
Arvid Norberg
42b129b9d5
Merge pull request #178 from thomas-yuan/put
...
Make dht_put_alert more accurate.
2015-11-21 02:30:45 -05:00
arvidn
c0d6b20634
extend swarm simulation test to include stopping and starting and graceful pause
2015-11-20 22:27:12 -05:00
Arvid Norberg
2eabf99307
Merge pull request #276 from arvidn/msvc-warnings
...
attempt to fix some msvc warnings
2015-11-20 08:04:38 -05:00
arvidn
4c790043a1
fix invariant check failure in torrent::pause
2015-11-20 01:38:21 -05:00
Thomas Yuan
ab70ad3e05
fix comments and unit test
2015-11-20 00:06:08 -05:00
Thomas Yuan
194ad410dc
Make dht_put_alert more accurate.
2015-11-20 00:06:08 -05:00
arvidn
4aaa8ca4a9
silence msvc performance warnings. introduce more override and finals
2015-11-19 23:37:45 -05:00
arvidn
fba0762353
fix some msvc warnings
2015-11-19 19:01:54 -05:00
arvidn
964031c070
factor out readwritev to a free function, to allow unit testing of it
2015-11-19 17:58:55 -05:00
arvidn
cec6748e0c
remove the concept of slots, and just talk about pieces (since we don't do compact allocation anymore). Remove the section about compact allocation
2015-11-19 01:38:04 -05:00
Steven Siloti
86116caf4c
fix assert after a DHT get/put request
...
If an observer is abandoned due to there being more than 100 results in a
traversal then the traversal may complete while the observer is still
outstanding. When the observer times out or is aborted it calls
traversal_algorithm::failed() which asserts because m_invoke_count has been
cleared to zero by traversal_algorithm::done().
To fix this add a check when abandoning observers to see if they have an
outstanding query. If they do then flag them as done to prevent them from
calling back into the traversal and decrement the invoke count.
Fixes #271
2015-11-16 21:05:32 -08:00
Steven Siloti
ba1ccdec66
fix assert in dht::observer
...
This is was introduced by c2277b3ea5
"fix traversal_algorithm::done() being invoked more than once".
2015-11-14 18:30:42 -08:00
Arvid Norberg
64aba31e30
Merge pull request #263 from thomas-yuan/dead_loop_on_ios
...
Fix iOS dead loop issue.
2015-11-14 12:55:53 -05:00
Arvid Norberg
bdfed667e3
Merge pull request #267 from arvidn/storage-fix
...
fix support for incomplete reads/writes from disk
2015-11-14 12:54:57 -05:00
arvidn
c7a4eefd69
fixed typo
2015-11-14 02:22:35 -05:00
Thomas Yuan
b536cd4ab4
Fix iOS dead loop issue.
2015-11-14 00:53:39 -05:00
arvidn
fb2f2731cf
fix support for incomplete reads/writes from disk
2015-11-14 00:21:03 -05:00
Alden Torres
611d0c1c6e
Fixed to make it compatible with mingw-w64 and generic linux
2015-11-13 07:55:28 -05:00
Steven Siloti
1bd706ac14
the simulator always supports IPv6
2015-11-12 20:52:30 -08:00
Arvid Norberg
ef1f399fd3
Merge pull request #259 from arvidn/deterministic-rand
...
use a consistent random number generator
2015-11-12 21:45:09 -05:00
Arvid Norberg
401f12b287
Merge pull request #260 from arvidn/ip-filter
...
fix IP filter bug when adding a torrent after setting the filter
2015-11-12 21:44:40 -05:00
arvidn
524cf00fcb
forward port of version change from RC_1_0
2015-11-12 21:35:50 -05:00
arvidn
d4d5f37222
fix typo
2015-11-12 01:42:44 -05:00
arvidn
2626159abe
use a consistent random number generator to make simulations deterministic
2015-11-12 00:21:56 -05:00
arvidn
8fa6863e15
fix IP filter bug when adding a torrent after setting the filter
2015-11-11 20:43:42 -05:00
Arvid Norberg
bae2b3394f
Merge pull request #258 from arvidn/version
...
forward-port version function from RC_1_0
2015-11-11 19:13:44 -05:00
arvidn
fbf152abc0
attribute external IP voting to the actual tracker IP we connected to, and preserve endpoint list in http_connection to make the re-announce to IPv6 logic robust
2015-11-11 01:30:28 -05:00
arvidn
4c0b00c390
forward-port version function from RC_1_0
2015-11-11 00:57:51 -05:00
Steven Siloti
c2277b3ea5
fix traversal_algorithm::done() being invoked more than once
...
A traversal can be done while there are still outstanding queries (i.e.
m_invoke_count is non-zero) if K good responses have already been received and
none of the outstanding queries are closer than the nodes which have responded.
When this happens and the outstanding queries eventually complete or timeout
they call traversal_algorithm::failed() or traversal_algorithm::finished() as
usual which will cause traversal_algorithm::done() to be called yet again.
The fix is to always set the done flag on all queried observers in
traversal_algorithm::done() so that the observers will refrain from calling
back into the traversal.
This also makes traversal_algorithm::abort() redundant since this was the only
thing it did before it called into done().
2015-11-09 20:47:33 -08:00
arvidn
4814855933
update cache_size docs and raise the cap for 32 bit builds
2015-11-08 10:49:38 -05:00
arvidn
9c10e99aef
forward port fix to not auto-detect disk cache size greater than the virtual address space for 32 bit builds
2015-11-07 22:00:20 -05:00
Arvid Norberg
61138630a3
Merge pull request #245 from arvidn/invalid-request
...
handle receiving an invalid request
2015-11-07 21:19:31 -05:00
arvidn
a48cb785d0
forward port piece_block patch from RC_1_0
2015-11-07 18:50:54 -05:00
arvidn
a138b2daa9
handle receiving an invalid request
2015-11-07 14:58:08 -05:00
arvidn
1fa184ba8a
fix msvc-10.0 build
2015-11-07 10:01:01 -05:00
arvidn
00090b8284
fix typo in test_checking, introduced by recent error_code in torrent_status patch
2015-11-07 01:01:07 -05:00
arvidn
ced0f74bf8
minor moving around of code
2015-11-06 00:38:42 -05:00
arvidn
ebb9fdaf54
add error_code to torrent_status instead of error string
2015-11-05 20:43:23 -05:00
arvidn
ee714306be
forward port IPv6 IP address resolution in URLs fix
2015-11-01 17:26:45 -05:00
arvidn
f5da27ba9e
support large info-sections in torrent_info
2015-10-31 10:53:39 -04:00
arvidn
3462c061a7
merged error handling fix from RC_1_0
2015-10-31 10:06:15 -04:00
Steven Siloti
bd0c237134
simulator: support IPv6 in enum_routes()
2015-10-29 20:43:51 -07:00
arvidn
729a8e9152
update libsimulator. add simulation/test for announcing twice to trackers over IPv4 and IPv6. fix bugs preventing libtorrent from doing that correctly
2015-10-27 00:21:07 -04:00
arvidn
3cc464805f
update libsimulator submodule
2015-10-25 10:55:20 -04:00
arvidn
a75dfe2eb6
silence warnings in boost headers in dht_storage
2015-10-25 09:30:56 -04:00
arvidn
234ac8adeb
update libsimulator submodule with IPv6 support
2015-10-24 15:57:22 -04:00
arvidn
e31433d952
flush and close the partfile when releasing files in default storage
2015-10-24 15:35:42 -04:00
Steven Siloti
4151c8e366
assert that the signature is valid when assigning a mutable value to an item
2015-10-21 20:29:29 -07:00
Arvid Norberg
ea86785d45
Merge pull request #202 from arvidn/stop-when-ready
...
Stop when ready
2015-10-04 16:18:59 -04:00
arvidn
8eded0a2a0
forward port set_allow_peers bugfix
2015-10-04 14:41:58 -04:00
arvidn
51c6079c42
add stop-when-ready feature, to support checking torrents without starting the download afterwards
2015-10-04 13:08:23 -04:00
arvidn
e59d03f684
fix strict aliasing violation
2015-10-03 15:13:45 -04:00
arvidn
3d54c02450
fix build
2015-10-03 11:42:21 -04:00
arvidn
c798e388a9
forward port fix to proxy_peer_connections to master
2015-10-03 11:20:10 -04:00
Arvid Norberg
b785e789b6
Merge pull request #199 from arvidn/parse-magnet-fix
...
fix bug in parse_magnet_uri and improve unit test
2015-10-03 02:09:34 -04:00
arvidn
c1955ecb18
fix bug in parse_magnet_uri and improve unit test
2015-10-02 23:24:17 -04:00
Alden Torres
62b24d8b67
Add set_dht_storage to session API.
2015-10-02 09:00:07 -04:00
Arvid Norberg
c56e878ff4
Merge pull request #194 from arvidn/merge_http
...
forward port merge web seed patch
2015-10-01 01:46:18 -04:00
Arvid Norberg
d7cdcf9369
Merge pull request #183 from thomas-yuan/ta_init
...
start 'find' from near nodes instead of all of nodes in routing table.
2015-09-30 00:43:14 -04:00
arvidn
424e51b737
fix build
2015-09-30 00:41:41 -04:00
arvidn
a00e5aa6c7
forward port patch to have resume data web seeds override .torrent file web seeds, and a flag to merge them
2015-09-30 00:41:41 -04:00
arvidn
5da511f140
now that force-started torrents aren't affected by the auto-manager, they need to be explicitly kicked when entering checking state (it would be nice if all this could be done through set_state())
2015-09-29 20:49:38 -04:00
arvidn
dab0f8b8d0
simplify the queuing logic for checking torrents. make all non-auto-managed torrents always be exempt from any queuing mechanism (including checking). Extend documentation on how it works
2015-09-29 20:49:37 -04:00
arvidn
8b30e78d69
forward port fix for bug where dont_count_slow_torrents could not be disabled, into master
2015-09-25 14:22:38 -07:00
Alden Torres
197a443465
Fix of dht_storage_counters::peers counter.
2015-09-24 10:50:04 -04:00
Thomas Yuan
0d2644802d
start 'find' from near nodes instead of all of nodes in routing table.
2015-09-23 17:04:33 -04:00
Thomas Yuan
f9fa8ffdec
Use ping instead of get_peers if current bucket is full.
2015-09-22 10:35:10 -04:00
Arvid Norberg
50ccce6eed
Merge pull request #174 from arvidn/fallocate-hack
...
remove fallocate hack (in master)
2015-09-22 07:18:07 -07:00
arvidn
5bdb583162
remove fallocate hack (in master)
2015-09-21 20:22:19 -07:00
Thomas Yuan
7fec9e488d
make immutable/mutable items lifetime configurable.
2015-09-21 20:32:37 -04:00
Arvid Norberg
01193fcf7c
Merge pull request #163 from aldenml/dht-storage-counters
...
Create dht_storage_counters to avoid internal counter in future public API
2015-09-21 13:51:39 -07:00
Alden Torres
25ed70b977
Create dht_storage_counters to avoid internal counter in future public API.
2015-09-21 07:46:23 -04:00
arvidn
fb2f659a31
fix bug in time keeping of active_time, seeding_time, finished_time etc.
2015-09-21 00:38:56 -07:00
Arvid Norberg
6bf1971452
Merge pull request #162 from thomas-yuan/bootstrap
...
Only re-bootstrap when there is no enough nodes in routing table.
2015-09-20 14:52:16 -04:00
arvidn
cf15453388
forward port auto-manage fix from RC_1_0
2015-09-19 02:10:50 -04:00
arvidn
2715ae475c
expose whether torrents are announcing to trackers, lsd and dht. these can be disabled by the queuing logic
2015-09-19 01:54:47 -04:00
arvidn
b628692223
separate out announce_entry and torrent_status into their own headers
2015-09-18 08:08:08 -04:00
Arvid Norberg
c54f8445bd
Merge pull request #164 from thomas-yuan/alert_message
...
Fix dht_put_alert::message() for immutable items.
2015-09-17 18:25:17 -04:00
Thomas Yuan
20708fa5b6
Only re-bootstrap when there is no enough nodes in routing table.
2015-09-17 11:22:23 -04:00
arvidn
c9a0212ee0
add simulation of tracker announces
2015-09-16 20:49:10 -04:00
Thomas Yuan
1fac816d37
Fix dht_put_alert::message() for immutable items.
2015-09-16 15:21:05 -04:00
Alden Torres
e2d682275a
Implementing and using new dht storage interface
2015-09-16 08:30:27 -04:00
Arvid Norberg
dc91e7f507
Merge pull request #154 from thomas-yuan/counter
...
Fix dht counters.
2015-09-11 21:45:39 -04:00
Thomas Yuan
c0d20d7708
Fix dht counters.
2015-09-11 13:58:33 -04:00
Arvid Norberg
4fd56fd220
Merge pull request #145 from arvidn/super-seeding-fix2
...
fix super seeding assert (forward port from RC_1_0)
2015-09-10 20:13:14 -04:00
Arvid Norberg
8b6b8240c1
Merge pull request #144 from thomas-yuan/master
...
load_state should restart dht/proxy if there is dht state/proxy.
2015-09-10 00:13:07 -04:00
Arvid Norberg
7114648f33
Merge pull request #146 from arvidn/convert-from-native
...
correctly convert error messages from native to utf8
2015-09-10 00:09:37 -04:00
Thomas Yuan
a06a8fe19e
load_state should restart dht/proxy if there is dht state/proxy.
2015-09-08 21:34:49 -04:00
Arvid Norberg
abe994c191
Merge pull request #128 from thomas-yuan/patch2
...
Add read-only support in dht_settings and outgoing query messages.
2015-09-08 19:47:18 -04:00
arvidn
a10438addd
correctly convert error messages from native to utf8
2015-09-08 19:27:15 -04:00
arvidn
c0a4f7ba26
fix super seeding assert (forward port from RC_1_0)
2015-09-08 18:17:13 -04:00
Thomas Yuan
4d6de4bcd8
save/load all dht_settings.
2015-09-08 11:03:27 -04:00
Thomas Yuan
d6bb387ab9
Use dht_settings directly instead of add a read_only member variable.
...
Since rpc_manager has a reference of dht_settings, needn't pass it
as a parameter for incoming().
2015-09-08 10:35:30 -04:00