Commit Graph

7466 Commits

Author SHA1 Message Date
Amir Abrams 97c23366f3 Remove duplicate word in comments like "the the" 2019-02-24 12:28:17 +01:00
arvidn 4473a8d0ce fix seed_mode flag 2019-02-24 10:20:20 +01:00
arvidn 3891f77253 fix naming in test_dht. don't include deprecated header (lazy_entry) unless required 2019-02-21 23:05:42 +01:00
arvidn 7f2a78d0c9 make random_shuffle() take a range instead of two iterators. use random_bytes() instead of std::generate() and random_byte(). Remove unused hasher.hpp includes 2019-02-19 01:48:08 +01:00
arvidn 1b7884b220 support numeric suffixes to magnet link parameter names 2019-02-15 23:15:38 +01:00
arvidn aa7f29c17a fix exporting of from_span type-tag 2019-02-13 00:15:41 +01:00
arvidn 748bb81570 include sha1.cpp in the build unconditionally, match build configuration options to using built-in sha1 and defining it 2019-02-13 00:14:53 +01:00
arvidn 9e376cae9f fix warning in gcrypt usage 2019-02-12 21:01:21 +01:00
gubatron 69cff71cb6 Added FrostWire's client ID
As accepted in last amendment of bep_0020.rst on github.com/bittorrent/bittorrent.org
See: 7cb4ec93ea
2019-02-12 13:27:43 +01:00
arvidn a2196a4194 fix warning in session_impl 2019-02-12 00:58:40 +01:00
Steven Siloti d33b0506a0 don't try to hash empty read in do_uncached_hash 2019-02-11 10:38:28 +01:00
arvidn 8fc69f5d2e don't copy a vector into the async_write operation for iovec. Since the chained_buffer will own the vector anyway, just make it return a span and copy that 2019-02-09 17:45:47 +01:00
Arvid Norberg 3ce277ba7f merged RC_1_1 into RC_1_2 2019-01-23 00:11:59 +01:00
Arvid Norberg 71f275d92b replace use of (deprecated) boost.endian with boost.prefef 2019-01-22 00:50:47 +01:00
Arvid Norberg 77bd5c9c7e remove some c++98 fallback code 2019-01-20 18:28:51 +01:00
Alden Torres f23daa8262 marked final error category classes, avoid -Wnon-virtual-dtor 2019-01-20 00:38:25 +01:00
Alden Torres bcda184e59 [WIP] refactor in file_progress to avoid dependency of alert_manager 2019-01-13 02:40:15 +01:00
arvidn f4f1425115 use UNC paths pervasively on windows 2019-01-12 21:00:40 +01:00
arvidn 8b067310b1 merged RC_1_1 into master 2019-01-12 00:53:45 +01:00
arvidn b443d33430 bump version number 2019-01-11 11:30:37 +01:00
arvidn 786d78b6c9 only allow cwnd to be reduced so often 2019-01-11 02:15:11 +01:00
Alden Torres 6b04c4f642 removed unused file::sparse_end 2019-01-11 02:02:06 +01:00
airium 33fa7454d0 Avoid announcing local ip to private tracker 2019-01-11 01:57:41 +01:00
arvidn 0ce899e273 don't treat loss of MTU probe packet as a congestion signal 2019-01-07 02:35:57 +01:00
Alden Torres 94d737ff77 removed unused directory::inode() 2019-01-06 17:21:34 +01:00
arvidn 26c29ea030 make sure we reset the duplicate ack counter every time we don't receive a duplicate ack. Also fix logging of outstanding packets 2019-01-05 23:18:02 +01:00
arvidn 02d7d71c5f merge RC_1_1 into master 2019-01-03 11:23:20 +01:00
arvidn a81eb050c5 remove old (incompatible) sequence number build option 2019-01-02 15:21:39 +01:00
arvidn ee1e66e851 don't leave slow-start just because we hit the advertized receive window. uTorrent adjusts its receive window dynamically which may just cause a temporary restriction 2019-01-02 11:38:13 +01:00
arvidn 8ffd524b5f simplify and improve the uTP deferred ACK logic to respond earlier 2019-01-02 11:36:29 +01:00
arvidn 6f1f466832 improve logic for fast-retransmitting packets on incoming SACK 2019-01-01 16:48:00 +01:00
arvidn 48a7ab13d5 improve utp verbose logging a bit and make the parser pull out more metrics 2019-01-01 03:28:12 +01:00
Arvid Norberg 8abce44708 restore permissions on directories to 1.1. i.e. rely on umask 2018-12-28 12:45:28 +01:00
arvidn 97e86b2969 minor fix to invalid_request_alert logging 2018-12-23 11:17:33 +01:00
arvidn 54fd03529e move variable scope into its build configuration block. prevent invariant-checks enabled and asserts disabled build. remove some redundant preprocessor ifdefs 2018-12-14 00:08:08 +01:00
arvidn 35ad3bb499 fix %u -> %d format codes 2018-12-12 18:07:06 +01:00
arvidn 6debd872de tweak heuristic of how to interpret url seeds in multi-file torrents 2018-12-11 12:47:43 +01:00
Alden Torres 0413ee581a added more TORRENT_DEPRECATED_ENUM and deprecated unused aio_max in settings_pack 2018-12-10 11:45:44 +01:00
arvidn a7e98983d2 remove invalid assert in http_seed_connection 2018-12-08 11:38:54 +01:00
arvidn 072563c973 add asserts in disk_fence_job 2018-12-07 13:37:27 +01:00
Alden Torres 3e582100d0 removed repeated code and minor code refactor 2018-12-05 09:13:54 +01:00
arvidn 1efe05c96e remove unused variables 2018-12-05 01:25:34 +01:00
arvidn 8f54146555 take a string_view in setting_by_name 2018-12-04 19:05:31 +01:00
arvidn 184fa88950 fix typo in peer log 2018-12-04 19:04:10 +01:00
Alden Torres 98fbbbf591 deprecate start_default_features flag, it's only used in deprecated API 2018-12-02 04:04:57 +01:00
arvidn 792cfd1cc6 remove verbose peer logging 2018-12-02 04:03:03 +01:00
arvidn eb5f29a79c make stack_allocator::format_string() grow the buffer for large strings 2018-12-02 04:03:03 +01:00
arvidn 507fffe872 move where socket buffers are set up, to happen after the socket is opened. log errors in the peer's log instead of session and torrent 2018-12-02 04:03:03 +01:00
arvidn 7a51813d32 improve peer debug logging 2018-12-02 04:03:03 +01:00
arvidn 35ec87af4f add stats counter for the number of outstanding async_accept calls 2018-11-30 02:15:45 +01:00
Steven Siloti cc49a7fb15 fix assertion when sending a udp packet to a closed socket
This can happen particularly during shutdown. We should eventually get to a
point where this doesn't happen, but since we close the sockets immediately
upon initiating shutdown it's hard to avoid for now.
2018-11-30 02:15:22 +01:00
arvidn fb66419791 merged RC_1_1 into master 2018-11-30 00:09:32 +01:00
arvidn a44ddddede fix potential issue where the dht port message is sent before the peer handshake 2018-11-29 10:21:21 +01:00
arvidn 4e2f013704 remove invalid assert 2018-11-29 10:20:27 +01:00
arvidn 1b2832e018 convert some for-loops into std algorithms 2018-11-27 19:43:01 +01:00
arvidn 3f87801142 fix some cppcheck warnings 2018-11-27 13:53:38 +01:00
arvidn e80506d3b3 iterators are not (necessarily) pointers. use data() instead of begin() on span 2018-11-27 13:26:50 +01:00
arvidn 0808b96ec7 correct %u format code for pieces in printf() calls 2018-11-27 12:26:25 +01:00
arvidn ba2e0db6d5 demote is_single_thread() assertion to invariant-check, in peer_connection 2018-11-27 12:25:47 +01:00
arvidn 88c733ef2d attempt to fix an assert for a newly connected peer that disconnects just as we receive the metadata. disconnecting peers don't have their bitfield properly initialized, so we can't use it 2018-11-27 11:47:16 +01:00
arvidn 12cbcfd380 make settings_pack enums specify a narrower underlying type and remove deprecated, internal enums 2018-11-24 16:47:41 +01:00
arvidn bac57a6e69 merged RC_1_1 into master 2018-11-24 01:23:10 +01:00
arvidn cdf66409a4 don't use page aligned disk buffers 2018-11-23 18:41:25 +01:00
arvidn 50ae1838e6 wrap inclusion of windows.h with appropriate defines 2018-11-21 10:09:23 +01:00
airium 3406f12ab3 Include &ipv4= for private trackers 2018-11-20 13:50:22 +01:00
arvidn 9ae4aedeb0 deprecate slow bdecode() function 2018-11-19 09:09:55 +01:00
arvidn 0d8a5a8a44 add support for &ipv4= tracker argument 2018-11-19 09:08:16 +01:00
arvidn 8841c58435 improve interoperability between bdecode_node and entry (for encoding). Make it possible to construct an entry from a bdecode_node. move comparison operators out of entry to support implicit conversions from bdecode_node 2018-11-18 22:54:36 +01:00
Alden Torres 295bcc08e5 more use of should_log in torrent.cpp 2018-11-18 21:55:35 +01:00
arvidn 8d7af2344f use new bdecoder in ut_metadata class 2018-11-18 11:59:17 +01:00
arvidn 7538d68086 clean up integer_to_str() function 2018-11-17 17:21:06 +01:00
arvidn 66a8f133b0 merged RC_1_1 into master 2018-11-17 14:38:43 +01:00
arvidn 3126e8f39e improve type-safety a bit in the hole-punch code 2018-11-17 00:49:29 +01:00
arvidn e3c5b6c13c add rvalue ref overload of apply_settings() to avoid copying the whole settings_pack object 2018-11-17 00:44:25 +01:00
arvidn 7103b12cb7 remove typed_span type 2018-11-17 00:43:58 +01:00
arvidn 6381b35891 bump verson to 1.1.11.0 2018-11-16 15:52:16 +01:00
arvidn 1dc8c1c127 initialize bencoded ints with zero when constructed 2018-11-16 14:23:04 +01:00
arvidn 5383854768 make span's and sha1_hash's index and size types signed (instead of unsigned). Specifically std::ptrdiff_t. In line with the direction of gsl span and reduce signed->unsigned casts 2018-11-16 14:06:22 +01:00
arvidn 48980896d5 exit natpmp::on_reply earlier if we're shutting down 2018-11-16 10:14:37 +01:00
arvidn 5929ad4cae merge RC_1_1 into master (again) 2018-11-15 22:55:52 +01:00
arvidn 29cddaa23e merged RC_1_1 into master 2018-11-15 15:19:24 +01:00
airium 9415467dd8 Fix setting ipv6 interface 2018-11-15 13:12:22 +01:00
arvidn 164982c63a pass the dht item object by const reference instead of by value 2018-11-15 00:18:53 +01:00
arvidn 6d886f29a9 support moving the whole add_torrent_params object into the add_torrent call on session 2018-11-14 19:11:11 +01:00
arvidn 0c76a3a0c5 require tracker_request objects be moved into queue_manager. also replace non-const reference parameter with rvalue reference 2018-11-14 17:09:04 +01:00
arvidn 13dd7cfe1e a better fix to the ssl port announce bug 2018-11-14 07:36:22 +01:00
arvidn 437887ca37 pass add_torrent_params by const reference in deprecated add_magnet_uri functions. They are large to copy but since they're deprecated aren't worth the trouble of having an rvalue reference overload 2018-11-13 09:14:42 +01:00
arvidn 4d88c83576 add rvalue reference overloads for add_torrent_params, settings_pack and session_params. Those structures are pretty large so being able to take them by rvalue reference may be beneficial 2018-11-13 08:05:56 +01:00
arvidn 2d6a6a24ae move the whole add_torrent_params object into save_resume_data_alert 2018-11-13 01:03:16 +01:00
arvidn a233d3cc28 actually fix the issue with the second tracker announce with port 0 2018-11-12 18:02:15 +01:00
arvidn 2edb86c543 fix some warnings in utp_stream 2018-11-12 14:15:06 +01:00
arvidn 8d40cf6227 remove redundant MTU boundary checks 2018-11-12 14:08:00 +01:00
arvidn b731764c85 remove unused variables 2018-11-12 08:54:31 +01:00
arvidn 28d123ef23 factor out duplicate code in choker 2018-11-10 15:17:57 +01:00
arvidn 69485558ef factor out duplicate code in piece_picker, upnp and lazy_bdecode 2018-11-10 15:17:57 +01:00
arvidn 9d26f4f96c fix asio-debugging build of dht test 2018-11-09 16:39:39 +01:00
pavel.pimenov 0ad3bb139d fix cppcheck 2018-11-08 13:45:41 +01:00
arvidn a06a78ee1c fix of asio-debugging build in natpmp. resend_request could be called directly, not only as a handler for an async operation 2018-11-08 08:40:54 +01:00
arvidn 1f9e74f40d merged RC_1_1 into master 2018-11-06 23:57:04 +01:00
Arvid Norberg cec300234c fix move_storage with save_path with a trailing slash 2018-11-06 23:46:18 +01:00
arvidn 6be8b395da some cleanup turning memcmp() and memcpy() into span comparisons and std::copy(). some more use of random_bytes() instead of loops. 2018-11-05 18:52:45 +01:00
arvidn a0fa0b14bb merged RC_1_1 into master 2018-11-04 19:12:22 +01:00
arvidn bf496c6b14 use span for picker_log_alert 2018-11-03 11:56:09 +01:00
Arvid Norberg 939b380fda fix build against boost-1.69 2018-11-02 11:10:26 +01:00
Arvid Norberg 5b5b280b87 only make snubbed peers invert the piece picking strategy when we're doing rarest first (i.e. snubbed peers do common-first). Specifically, this prevents snubbed peers from picking from the end of the torrent when in sequential mode 2018-11-01 12:01:02 +01:00
arvidn d0e146eb75 merged RC_1_1 into master 2018-11-01 09:48:41 +01:00
Arvid Norberg e1eb12e60f ssl listen port fix and improved tracker announce logging 2018-10-29 18:38:14 +01:00
pavel.pimenov b00ce69d58 remove params.url.clear(); 2018-10-25 09:49:38 +02:00
Arvid Norberg a5da48edd4 add missing boost/noncopyable include 2018-10-25 09:47:21 +02:00
Amir Abrams 88266edd43 Update comment in put_mutable_item
Trivial update to a comment in put_mutable_item.
2018-10-24 13:13:20 +02:00
arvidn 3fb05d77d8 fix warnings 2018-10-20 20:56:26 +02:00
arvidn 36801fb96f add some const 2018-10-20 16:30:48 +02:00
arvidn 9463159e67 merged RC_1_1 into master 2018-10-20 00:22:10 +02:00
Arvid Norberg 12c52e8751 back-port the fix from the lgtm fixes in master 2018-10-19 19:40:17 +02:00
Arvid Norberg ede7dbf0aa add LGTM badge to README and fix warnings 2018-10-19 16:28:33 +02:00
arvidn 3b32c90dde fix gcrypt build 2018-10-17 10:14:14 +02:00
arvidn 269f0c5fb8 properly tear down the disk_io_thread object in set_piece_hashes() when exiting via an exception 2018-10-16 22:54:25 +02:00
arvidn 2d99e994c3 make throwing versions of read_resume_data 2018-10-07 12:41:53 +02:00
Arvid Norberg 1a27ff7107 parse_magnet_uri simplification 2018-10-05 11:01:45 +02:00
Arvid Norberg 761384bcf1 minor piece picker cleanup 2018-10-05 10:58:09 +02:00
Arvid Norberg a4267d61e7 fix overflow in sliding_average in the case of very high download rates 2018-10-03 00:53:05 +02:00
Arvid Norberg 949867eca9 factor out some parts of print function for entry 2018-10-03 00:50:02 +02:00
Arvid Norberg d2f19a2d73 merged RC_1_1 into master 2018-10-01 16:34:21 +02:00
Arvid Norberg 200bb494c3 bump version 2018-10-01 09:41:37 +02:00
arvidn c437a24d78 renamed debug_notification to connect_notification 2018-09-28 17:28:34 -07:00
arvidn a499ace80b fix issue in udp_socket with unusual socket failure 2018-09-28 13:17:43 -07:00
arvidn 109db58641 merge RC_1_1 into master 2018-09-25 21:33:29 -07:00
arvidn 022a089b86 utp close-reason use after free fix 2018-09-23 08:24:54 -07:00
Arvid Norberg 6724c1eec0 fix some warnings 2018-09-19 22:12:45 -07:00
Arvid Norberg 8be9b3d976 merged RC_1_1 into master 2018-09-19 12:23:08 -07:00
Arvid Norberg 81356cfce1 add make_tcp() and make_udp() to convert endpoint types 2018-09-19 10:57:28 -07:00
Steven Siloti c5b415b89f remove dead code udp_tracker_connection::pick_target_endpoint
Endpoints are filtered by address family in name_lookup() so this
function will always return the first endpoint.
2018-09-16 12:07:52 -07:00
Alden Torres e2a8fbf020 cleanup of special code for valgrind 2018-09-12 07:49:11 -07:00
arvidn 8cc93e9855 fix redundant flushes of partfile metadata 2018-09-12 07:47:13 -07:00
arvidn 16249b8135 fix overflow in calc_bytes(), add more tests, fix bug in piece picker accounting of filtered pad blocks. 2018-09-09 20:17:32 -07:00
Arvid Norberg fc7b61a6f3 improve type-safety of the severity parameter to peer_connection::disconnect() 2018-09-06 16:42:04 -07:00
Alden Torres 9b2f6042bb more use of index range and lint oriented refactor in torrent.cpp 2018-09-05 22:32:58 -07:00
arvidn c9cbb122e2 fix some warnings from sonar-cube 2018-09-05 18:10:57 -07:00
arvidn 78a344bd8b merged RC_1_1 into master 2018-09-05 08:25:14 -07:00
Steven Siloti a9bccceccd fix seed count when attaching a peer is aborted 2018-09-04 13:45:13 +02:00
Arvid Norberg 51003d11ca add assert to storage 2018-09-04 13:44:24 +02:00
Arvid Norberg 2647ca2412 add option to ignore min-interval from tracker, when force-reannouncing a tracker 2018-09-04 08:46:24 +02:00
arvidn 214ace3efe raise default value for active_limit to 500, since it's supposed to be an upper sanity check limit 2018-09-02 19:25:06 +02:00
arvidn 2e313de898 remove unused member variables in torrent object 2018-08-29 15:01:40 +02:00
Alden Torres b660e526b1 fixed old-style-cast warning when using libgcrypt 2018-08-28 21:03:55 +02:00
arvidn 7c837be651 make the print function for entry actually be json-like. when logging bencode entries, print it all on a single line. add test for entry print function 2018-08-27 13:56:04 +02:00
arvidn 269b71324e improve log statement when not unchoking a peer 2018-08-27 13:43:48 +02:00
Arvid Norberg c1b0c70c23 fall back to copy+remove if rename_file fails 2018-08-27 12:30:47 +02:00
arvidn 55215742af merged RC_1_1 into master 2018-08-25 14:13:51 +02:00
Arvid Norberg 6e80f1f615 improve handling of filesystems not supporting fallocate() 2018-08-22 08:35:22 +02:00
Arvid Norberg 11a8f46921 add some noexcept and assume std::function is not nothrow move constructible on clang 2018-08-21 11:12:34 +02:00
arvidn 37d85ac2f7 improve piece picker performance in tracking pad-blocks 2018-08-20 17:13:20 +02:00
arvidn c9043dec53 force proxy no longer disables the DHT 2018-08-20 08:24:31 +02:00
Alden Torres 28c94b54ed minor code refactor for more use of const and emplace 2018-08-20 08:06:37 +02:00
arvidn 058419a77c simplify total_have/have_want/total_want. make piece_picker track pad blocks and compute byte-progress at block granularity 2018-08-19 22:21:24 +02:00
Arvid Norberg b90564d418 remove the IPv6 enable/disable build config 2018-08-19 22:20:54 +02:00
Arvid Norberg fef1b947f3 fix issue in self-connection detection introduced with the change to generate unique peer-ids for each connection. Now, the torrent keeps track of all of our peer-ids generated for outgoing (bittorrent) connections, and we check them against incoming peers' peer-ids 2018-08-19 22:19:53 +02:00
Alden Torres 6a13d14f11 more use of const modifier 2018-08-15 07:41:41 +02:00
arvidn 6620b6e774 dial back the connect boost a bit from recent update 2018-08-13 19:17:01 +02:00
arvidn b3dbce5790 merge RC_1_1 into master 2018-08-13 09:32:17 +02:00
arvidn d55200af9d minor simplification of bytes_left(), remove quantized_bytes_done() 2018-08-11 08:29:45 +02:00
d_komarov 0bcf6cef23 Fix exporting files
To avoid overwriting existing files, before exporting anything from a
parts file, check whether it contains valid data.
2018-08-10 20:21:29 +02:00
arvidn 6d2541f131 improve connect-boost feature, to make new torrents quickly connect peers 2018-08-09 20:12:56 +02:00
arvidn 7be9547817 add a few more stats counters measuring outgoing connection attempts. simplify session_stats_header_alert by posting it on first call to post_session_stats() instead of making it gated by the alert_mask 2018-08-09 20:10:35 +02:00
Arvid Norberg 0a5b3c1bb0 update documentation for save_resume_data() and stop_when_ready() 2018-08-09 00:57:21 +02:00
arvidn f1d2105afb remove dead code from piece picker 2018-08-08 23:41:46 +02:00
arvidn 51fb1e3d6b tweak the auto-cache-size logic to have slightly smaller cache 2018-08-06 14:06:32 +02:00
arvidn c426ba88d4 fix buffer offset bug recently introduced to disk_io_thread::do_read() 2018-08-06 13:16:41 +02:00
arvidn 3416da41d9 fix narrowing warning 2018-08-03 21:02:44 +02:00
Arvid Norberg 6caddf6b8e fix deprecation of mmap_cache 2018-08-03 12:51:04 +02:00
arvidn 70d64327fd bump checking_mem_usage to be higher than the default in the high_performance_seed preset 2018-08-02 23:15:51 +02:00
arvidn 5f7252b32b add missing increment of on_disk_counter and num_blocks_hashed counters 2018-08-02 23:15:00 +02:00
arvidn 3de4e42fb7 slight cleanup of the ephemeral flag passed to add_web_seed() 2018-08-01 12:02:51 +02:00
arvidn 4096085bf8 merged RC_1_1 into master 2018-07-30 13:44:44 +02:00
arvidn 19df645012 apply piece priorities immediately, even though file priority updares are async. save both file- and piece priorities in fast resume. when loading, apply file prios first, then piece prios 2018-07-29 21:53:01 +02:00
Arvid Norberg a477a53b80 simplify natpmp gateway and local address discovery 2018-07-29 13:10:36 +02:00
Steven Siloti 92f1937b97 fix typo in #if tests for TORRENT_DISABLE_ENCRYPTION 2018-07-29 09:04:16 +02:00
Arvid Norberg b3856d3027 narrow the scope affected by TORRENT_DISABLE_EXTENSIONS to only disable the user extensions, but always support the extension message and the built-in extensions, like lt_donthave and seed_mode 2018-07-26 09:31:49 +02:00
Arvid Norberg 8f0cf7e1a9 some refactor to reduce duplicate code 2018-07-25 18:48:34 +02:00
Arvid Norberg 4282dd072a factor out generate_peer_id into its own file 2018-07-25 08:49:18 +02:00
arvidn a1f2995716 add piece index range checks on have_piece() and read_piece() 2018-07-25 00:20:18 +02:00
arvidn 730ef15b08 minor cleanups 2018-07-24 16:34:46 +02:00
arvidn c2ebae7dbb make metric_type_t an enum class, deprecate the in-class enum values 2018-07-24 15:29:56 +02:00
Arvid Norberg dcb8b816a3 only post alerts for newly opened listen sockets, and only attempt to map ports for newly opened sockets. track has_incoming_connections per listen socket 2018-07-23 15:04:23 +02:00
Arvid Norberg 2f56fa6c3e bump version to 1.1.9 2018-07-20 13:06:12 +02:00
arvidn f4b0dbf115 merged RC_1_1 into master 2018-07-20 09:28:21 +02:00
arvidn 1ebc5f9ef2 remove special handling of uTP peers 2018-07-20 07:47:08 +02:00
arvidn 9f6f23068c make natpmp deal with address_v6 instead of the bytes_type, and use write_address instead of memcpy 2018-07-20 07:46:12 +02:00
arvidn e92cf18340 fix some warnings around unused variables, dead stores, potentially dereferencing nullptr and calling virtual functions from constructor 2018-07-20 01:03:16 +02:00
arvidn d8755066e8 give some magic numbers names 2018-07-20 00:58:34 +02:00
arvidn a7b7623f23 return values instead of using out-params 2018-07-19 23:58:36 +02:00
Arvid Norberg 828c5dd097 merged RC_1_1 into master 2018-07-19 14:37:22 +02:00
Arvid Norberg 5bb5ba145f fix exporting files from partfile while seeding 2018-07-18 10:56:24 +02:00
Arvid Norberg e88a9a4dda merged RC_1_1 into master 2018-07-18 10:48:36 +02:00
arvidn 5d3ac8ff5c fix some warnings 2018-07-18 10:38:45 +02:00
arvidn f89c27183b remove unused function 2018-07-18 09:18:09 +02:00
Alden Torres d9d387d711 minor code cleanup, more use of const (#3174)
* minor code cleanup, more use of const, using u literal per lint

* revert use of unsigned literal

* reverted loop change
2018-07-16 18:23:38 +02:00
arvidn 4aa3c4573a use the strong type for pause flags 2018-07-16 12:06:21 +02:00
arvidn 4633258fbe make the DHT announce flags a strong type 2018-07-16 12:04:16 +02:00
Steven Siloti e5be30157f set port in handshake based on source address (#3172) 2018-07-15 21:15:04 +02:00
arvidn 52af3eaa7f simplify preadv and pwritev emulation functions 2018-07-14 09:03:15 +02:00
Andrei Kurushin 7a34b27499 fix Windows "file::preadv" emulation EOF handling 2018-07-12 23:54:34 +02:00
Andrei Kurushin 5399a14027 Windows async read EOF handling (#3162)
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:30:50 +02:00
arvidn 7ce20fd9d0 fix bug in read/write resume data functions. add proper tests 2018-07-12 23:19:08 +02:00
arvidn 59343f4f95 merged RC_1_1 into master 2018-07-12 20:20:02 +02:00
d-komarov 490d8eb328 Fix previous patch fixing deadlock in DllMain (#3158)
Simplify `get_manage_volume_privs()` and renamed it
2018-07-12 16:46:36 +02:00
arvidn 37a6a47ea3 minor cleanups around saving resume data 2018-07-12 08:38:53 +02:00
Steven Siloti 76ef8b9d72 simplify SSL torrent announce flags logic 2018-07-12 08:36:57 +02:00
Steven Siloti 28b6f64c4b dht: don't set implied_port for SSL torrents 2018-07-12 08:36:57 +02:00
Steven Siloti 961cf62cad dht: announce with per-interface listen port 2018-07-12 08:36:57 +02:00
Alden Torres 965ca9a565 avoid copy of arrays in dht alerts constructors 2018-07-09 19:53:35 +02:00
Arvid Norberg e317c72db3 merged RC_1_1 into master 2018-07-08 18:52:13 +02:00
arvidn 3c2b076eb0 deprecated anonymous_mode_alert 2018-07-08 18:26:47 +02:00
arvidn b750b6cc2c deprecate (and disable) the force-proxy setting. Instead, always use the proxy when set, never fall back on circumventing it 2018-07-08 18:26:47 +02:00
arvidn 2ba0e5ae2c move the file priority vector throught the disk_io_job, to avoid copies 2018-07-08 18:25:06 +02:00
arvidn d2d35b69fd raise priority of cache_flushed_alert and post it unconditionally when triggered explicily by the client 2018-07-08 18:23:44 +02:00
arvidn e45df614fe improve type safety of internal leave_seed_mode() function 2018-07-08 17:32:50 +02:00
Alden Torres 6d2f804d9f code refactor related to the use of index_range and end index 2018-07-08 17:32:30 +02:00
arvidn 0659a929af fix some validation issues in read_resume_data() 2018-07-08 17:32:14 +02:00
Arvid Norberg b60912569f back-port resume data validation fixes 2018-07-08 17:31:29 +02:00
Arvid Norberg 3fede4b223 merged RC_1_1 into master 2018-07-08 11:55:32 +02:00
arvidn efe3036879 clean up proxy_settings constructors 2018-07-07 18:02:43 +02:00
arvidn b5cd959dd1 bump the minimum number of hash jobs per thread from 2 to 4 2018-07-07 18:02:24 +02:00
d_komarov 1c86e94de6 Fix deadlock when loading libtorrent Dll
Definition of `bool file::has_manage_volume_privs` involves a call to
`get_manage_volume_privs()`, causing restricted tasks to be performed
from within `DllMain` function. They introduce possibility that client
application deadlocks or crashes.

You should never perform the following tasks from within DllMain:

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

* Call the registry functions. These functions are implemented in
  'Advapi32.dll'. If not initialized before your DLL, it can access
  uninitialized memory and cause the process to crash.
2018-07-07 18:00:07 +02:00
Arvid Norberg c7e705e158 merged RC_1_1 into master 2018-07-07 13:33:15 +02:00
arvidn 3249b70cbd fix recent patch to support setting file priorities on torrents that don't have metadata yet 2018-07-07 11:34:11 +02:00
arvidn b76c149bdc use std::aray for the temporary buffer in socks5 UDP socket 2018-07-04 08:17:35 +02:00
d-komarov 6d5a6f05ad Fix torrent files prioritization (#3133)
After setting file priority, any subsequent attempt to set different priorities will fail if there is a `file_priority` job running in in disk thread. This happens because `torrent::m_file_priority` is being updated before adding disk thread job. The problem is gone if the file priority vector owned by the torrent object, is modified in the `torrent::on_file_priority` callback, when disk job finishes.
2018-07-04 08:16:33 +02:00
arvidn 10deff2f91 fix some unintentional copies (with explicit moves) 2018-07-01 18:22:32 +02:00
arvidn d439c8729a qualify some assignment operators to disallow assignment to temporaries 2018-07-01 17:29:50 +02:00
Alden Torres 2c5da2778a more lint oriented code refactor/cleanup 2018-06-29 13:27:29 +02:00
arvidn 4576723090 bump version to 1.1.8 2018-06-25 12:25:11 +02:00
Arvid Norberg ab56bf964f fix missing move of file object in part_file 2018-06-24 21:34:56 +02:00
arvidn b67166b29d merged RC_1_1 into master 2018-06-24 17:59:28 +02:00
Arvid Norberg 78d9c284e9 use more threads when creating torrents 2018-06-24 16:49:57 +02:00
Arvid Norberg 56a25ce280 bump checking_mem_usage default setting 2018-06-24 07:44:58 +02:00
Arvid Norberg b0b1bfb7a9 enable coalesce_reads and coalesce_writes by default on windows 2018-06-24 07:39:59 +02:00
Alden Torres be78a43d05 more use of empty(), emplace_back, const and auto in disk_io_thread code 2018-06-24 07:02:17 +02:00
arvidn 2cb29f88ac merged RC_1_1 into master 2018-06-23 23:22:26 +02:00
Alden Torres f139afc1ad minor code refactor, cleanup and typo in peer related code 2018-06-23 23:11:48 +02:00
Steven Siloti b7f230316c set the minimum number of checking jobs based on the number of hasher threads
To effectively mask the latency of generating more hash jobs there need to be
at least two jobs in-flight for each hasher thread.
2018-06-23 23:10:55 +02:00
arvidn 1e3a7cf0f4 fix hash-job fast-path 2018-06-23 23:08:58 +02:00
arvidn 16b32741ce fix coalesce read bug 2018-06-23 21:46:52 +02:00
arvidn 7ca769884c merged RC_1_1 into master 2018-06-22 08:33:44 +02:00
arvidn 0c147164bc introduce a fast-path for the hash disk job 2018-06-20 01:00:16 +02:00
arvidn f5a2015302 merge RC_1_1 into master 2018-06-19 22:26:01 +02:00
arvidn 4ae262d2d4 fix race condition in part_file 2018-06-19 14:50:02 +02:00
d-komarov 81ce7aa4ab Fix parts file i/o errors (#3110)
Since i/o operations are not synchronized, it is possible that one thread closes file handle, opened in another thread. With addition of `hidden` file attribute, an old bug in `part_file::open_file()` revealed both problems, causing a lot of random i/o errors in parts file. Fixing `open_file` bug should reduce the number of such errors back to 'normal'.
2018-06-18 14:34:39 +02:00
Alden Torres 03971be80b some refactor, more use of auto and const in peer_connection.cpp (#3105) 2018-06-16 17:22:04 +02:00
Alden Torres dfe47aa2a9 fixed sign implicit conversion warnings in new enum_net code (#3107) 2018-06-16 15:19:02 +02:00