Commit Graph

7369 Commits

Author SHA1 Message Date
Arvid Norberg e106602f49 allow padfiles of equal size to share the same filename 2019-03-01 16:09:53 +01:00
Arvid Norberg 57017e3ace noreturn attribute is standard in C++11 2019-02-27 17:11:15 +01:00
arvidn 9bd5f424d3 use standard __func__ identifier instead of extensions 2019-02-26 23:59:43 +01:00
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