Commit Graph

7321 Commits

Author SHA1 Message Date
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