Commit Graph

4566 Commits

Author SHA1 Message Date
arvidn a53d090313 fix handling of torrents with too large pieces 2019-11-25 02:46:55 +01:00
Arvid Norberg 76f53297a9 update appveyor image and boost version. explicitly use python2 for test scripts (as the SSL behavior has changed in python 3 in non-trivial ways) 2019-11-19 01:46:39 +01:00
Arvid Norberg 48fa5343b5 add executor_type to socket_type 2019-11-14 11:55:48 +01:00
arvidn e5ba4fa640 fix documentation for add_port_mapping 2019-11-13 15:40:04 +01:00
arvidn 592544f30f fix some PVS studio warnings 2019-11-07 16:38:08 +00:00
arvidn 47dede4f7e back-port missing include for GCC 10 2019-10-30 15:02:44 +01:00
arvidn 28a627a3a3 fix settings default value doc generation. Apply documentation fix from Sig7 2019-10-20 21:59:03 +02:00
arvidn 4b8f8d7e92 honor proper object lifetime rules 2019-09-28 22:11:54 +02:00
arvidn d08fa164d2 fix issue where pieces would be hashed despite disable_hash_checks was set 2019-09-13 22:38:18 +02:00
arvidn d1e0e8701b documentation improvements 2019-09-13 14:31:20 +02:00
arvidn 961417814b WIP: fix to be less likely to hammer web seeds 2019-09-12 16:57:07 +02:00
arvidn 7878f68370 add some missing documentation. undeprecate error_file_metadata ahead of master undeprecating it 2019-09-08 10:51:46 +02:00
arvidn 9b1607a63c fix updating of is_finished torrent status, when changing piece priorities 2019-09-07 10:45:25 +02:00
arvidn a3440e54bb make aux::session_settings thread-safe. this allows all threads to share the same settings object, which has low contention and is rarely updated 2019-09-01 03:41:36 +02:00
arvidn c0c4c2083a avoid comparing unrelated pointer in the DHT routing table (which is UB) 2019-08-31 12:54:00 +02:00
arvidn baeb959054 bump version to 1.2.2 2019-08-23 13:39:22 +02:00
arvidn b2c3b4dbf8 add spaces around user defined literal suffix operators 2019-08-21 14:23:46 +02:00
arvidn 07ab3b9739 add feature to create an affinity to pick adjecent pieces aligned to 4MiB extents. It's an attempt to improve disk I/O, by writing larger contiguous ranges of bytes. It's off by default. 2019-08-17 12:32:47 +02:00
Arvid Norberg ff113a262c make it a bit more likely to split the last bucket in the DHT routing table 2019-08-12 15:08:49 -07:00
Arvid Norberg bfe0e1f27d hide some internal functions. error if namespaces are preceded by whitespace (as the docs generation script requires them to start at the beginning of the line) 2019-08-07 20:48:26 -07:00
Arvid Norberg 03ffc04e39 back port fixing GCC warnings 2019-08-02 06:21:07 -07:00
arvidn b1b03a0d77 factor out and unit test parts of the DHT routing table logic that handles the affinity of nodes to insert. Specifically, make sure the even distribution within routing table buckets works correctly 2019-07-30 07:56:18 -07:00
Arvid Norberg c5d0ea6332 make node and tracker_node explicitly non-movable, since the node contains a non-movable std::mutex 2019-07-29 23:15:09 -07:00
arvidn 8e23f9cc92 improve file_storage::sanitize_symlinks 2019-07-29 06:10:04 -07:00
arvidn 3995ffeafd similar to how low RTT DHT nodes are preferred over high RTT nodes, also have an affinity for nodes with node IDs derived from their IP 2019-07-28 16:13:16 -07:00
arvidn ca27892111 avoid empty dht routing table buckets 2019-07-27 07:18:24 -07:00
arvidn 08a399306c fix simulator build with new version of boost 2019-07-20 20:58:45 -07:00
Arvid Norberg 196588c7b8 add torrent_info constructor overloads to control torrent file limits 2019-07-20 18:14:19 -07:00
arvidn 7a20850632 feature to disable DHT, PEX and LSD per torrent 2019-07-20 10:20:41 -07:00
arvidn bcb26fd638 fix seeding of random number generator on mingw 2019-07-04 19:56:18 +02:00
Arvid Norberg d113816ae6 fix issue where trackers from magnet links were not included in create_torrent() 2019-07-04 12:53:36 +02:00
arvidn f9d31cf71b fix GCC-9 warnings 2019-06-02 20:58:58 +02:00
Chocobo1 d53caf51ab Replace unicode symbol by ascii
MSVC was emitting warning C4819 before this commit.
2019-05-31 16:06:45 +02:00
Arvid Norberg 16acd9ebe1 don't leak exceptions out of handler callbacks in resolver 2019-05-19 08:00:50 +02:00
Arvid Norberg 41a5940100 ensure headers build independently 2019-05-13 11:56:03 -07:00
Arvid Norberg 7062a4f89e fix unit template's mutating operators to give them proper ref qualifiers 2019-05-07 21:51:49 -06:00
Alden Torres 02c9e2f7ff fix unused-parameter warning with boost 1.70.0 2019-05-06 05:50:33 -06:00
arvidn d97e1be6b2 bump version of RC_1_2 to 1.2.1 2019-04-28 03:31:04 +02:00
Steven Siloti aec5c50282 Track the mapped port for each NAT mapping transport (#3793)
* Track the mapped port for each NAT mapping transport
Each transport needs to be tracked separately so that a failed mapping request
doesn't cause the listen port for a socket to be cleared to zero.
* add template specialization to allow enums as indexes
* use aux::array for port mappings
2019-04-22 01:50:44 +02:00
Fabrice Fontaine 039cc4809e buffer.hpp: fix build on uclibc
malloc_usable_size is not available on uclibc

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-04-21 00:46:54 +02:00
Arvid Norberg 76c2794923
fix build with boost-1.70 (#3788)
fix build with boost 1.70.0 Fix #3683
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-04-19 20:56:19 +02:00
arvidn 8506f93507 fix more warnings 2019-04-11 18:18:11 +02:00
arvidn a845afe6d9 fix warnings 2019-04-10 08:05:36 +02:00
arvidn 4441655bab optimize resolve_duplicate_filenames_slow() 2019-04-09 01:59:34 +02:00
arvidn 102387f4a8 make all tests run cleanly with leak sanitizer 2019-03-27 17:10:36 +01:00
Steven Siloti 4dc2e6015d use flag to prevent multiple calls to abort_jobs even when asserts are disabled 2019-03-26 18:04:18 +01:00
arvidn 64600f444b improve sanitizer rule in Jamfile. Some fixes for new clang sanitizr 'implicit-conversion' 2019-03-26 10:14:06 +01:00
Arvid Norberg 3a4a7b742a deduplicate code implementing log2p1() 2019-03-23 22:44:32 +01:00
arvidn 20cb26fcc1 remove duplicate copy of escape_string 2019-03-23 20:30:40 +01:00
Arvid Norberg 19dbfce9c0 simplify and clean up the handling of name in internal_file_entry. move should be more efficient now, by not copying the name 2019-03-22 21:31:32 +01:00
arvidn 2990532d10 reduce the amount of hacky path/string handling code 2019-03-22 07:48:07 +01:00
arvidn e5de81a6cb remove unused replace_extension() 2019-03-19 17:26:19 +01:00
Arvid Norberg 57cd2882d4 update symlinks to conform to BEP 47 2019-03-19 10:05:06 +01:00
arvidn 5f85e40193 remove old, hacky and unused split_string() function 2019-03-19 09:27:06 +01:00
Arvid Norberg 28d5b7d427 remove unused flags parameter to send_buffer() and send_message() on peer_connections 2019-03-19 01:09:34 +01:00
Arvid Norberg ad540ead79 remove unused configuration macros 2019-03-18 13:40:02 +01:00
arvidn e1dec52b35 fixes to the generated documentation 2019-03-13 20:43:40 +01:00
Alden Torres 1fe763483e minor lint oriented refactor, moved a couple of functions to aux 2019-03-11 14:38:26 +01:00
arvidn 381d5a3c5d add support for creating symlinks, for torrents with symlinks in them 2019-03-05 22:53:56 +01:00
Arvid Norberg 57e56d5070 factor out logic around adding torrents to the session into insert_torrent() 2019-03-03 12:56:24 +01:00
Arvid Norberg 4dd9325277 minor fix for warning of infinite loops 2019-03-02 21:41:55 +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 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 f67fb0850f fix example of custom storage 2019-02-19 01:47:12 +01:00
arvidn c63c36880f merged RC_1_1 into RC_1_2 2019-02-17 19:06:33 +01:00
arvidn 42bf915437 update documentation for the seed_mode flag 2019-02-15 22:08:47 +01:00
arvidn ffe56bdb26 update documentation regarding recommendations of post_torrent_updates() 2019-02-15 18:31:13 +01:00
arvidn f88f95e477 remove outdated paragraph from the storage_interface documentation 2019-02-14 16:19:13 +01:00
arvidn a24afe8524 consistently use lt namespace in examples and documentation 2019-02-13 18:13:55 +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 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 26ebc289ae remove unnecessary include of boost.endian header 2019-01-22 15:59:28 +01:00
Arvid Norberg 2bf42f2afd hide internal make_udp and make_tcp functions 2019-01-22 15:56:48 +01:00
arvidn bfc579e61f add missing cstdarg include 2019-01-21 01:26:15 +01:00
Arvid Norberg 77bd5c9c7e remove some c++98 fallback code 2019-01-20 18:28:51 +01:00
arvidn 08bceec4c7 fix typo in win_crypto_provider assignment operator 2019-01-20 02:07:54 +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
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 8ffd524b5f simplify and improve the uTP deferred ACK logic to respond earlier 2019-01-02 11:36:29 +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 a112c8e67b add assignment operator to span 2018-12-12 19:55:07 +01:00
arvidn fa376ca3af fix deprecation markup in torrent_status 2018-12-12 14:58:31 +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 072563c973 add asserts in disk_fence_job 2018-12-07 13:37:27 +01:00
arvidn 7e13b34158 fix build i2p=on,off configurations 2018-12-07 13:36:53 +01:00
Alden Torres 3e582100d0 removed repeated code and minor code refactor 2018-12-05 09:13:54 +01:00
arvidn 8f54146555 take a string_view in setting_by_name 2018-12-04 19:05:31 +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 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
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 a58307733e remove left-over configuration options from aligned allocations 2018-11-25 01:35:22 +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
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
airium 25a1f12991 Fix redundant bytes overflow 2018-11-17 12:17:24 +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 8c18baf10e check for self-assignment in bitfield operator= 2018-11-16 14:23:46 +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 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
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 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 049b090e8d detect cases where TORRENT_EXPORT is placed where gen_reference_doc.py ignores it, and fix the code 2018-11-13 07:44:28 +01:00
arvidn 87041b40d5 perfect forward async handlers for udp_socket to underlying asio socket 2018-11-13 07:42:19 +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 e0c1b3403c add header guards to ConvertUTP.h and fixedint.h 2018-11-12 17:56:16 +01:00
arvidn 8d40cf6227 remove redundant MTU boundary checks 2018-11-12 14:08:00 +01:00
arvidn dc7cc3ef37 bump max size of read/write handlers 2018-11-12 09:07:58 +01:00
arvidn f6e5007044 add include guards to assert.hpp 2018-11-12 08:55:23 +01:00
arvidn ffdd34a41a add include guard to puff.hpp 2018-11-12 08:54:56 +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
arvidn 30706adfb7 convert classic for-loops to range-for loops. revert use of CHAR_BIT macro (we use fixed width types, not char) 2018-11-08 13:48:20 +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 e2f8bce539 add tests for low level I/O functions, read_* and write_*. also turn some raw for loops into range-for loops in the I/O functions 2018-11-07 14:35:30 +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 3988be348f simplify SFINAE on write_impl to just use enable_if 2018-11-03 11:57:16 +01:00
arvidn bf496c6b14 use span for picker_log_alert 2018-11-03 11:56:09 +01:00
Arvid Norberg a5da48edd4 add missing boost/noncopyable include 2018-10-25 09:47:21 +02:00
Arvid Norberg ede7dbf0aa add LGTM badge to README and fix warnings 2018-10-19 16:28:33 +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