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
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
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
6c4d1b9143
back-port the patch to split up the progress_notification alert_mask into three new categories, file-, piece- and block progress
2018-09-24 08:52:30 -07:00
Arvid Norberg
6724c1eec0
fix some warnings
2018-09-19 22:12:45 -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
Arvid Norberg
fc7b61a6f3
improve type-safety of the severity parameter to peer_connection::disconnect()
2018-09-06 16:42:04 -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
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
2e313de898
remove unused member variables in torrent object
2018-08-29 15:01:40 +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
55215742af
merged RC_1_1 into master
2018-08-25 14:13:51 +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
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
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
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
Arvid Norberg
a11bdecfcd
update fwd.hpp
2018-08-03 09:39:16 +02:00
arvidn
4cfe2b7c1b
fix warning for calling a virtual function in constructor
2018-08-01 12:03:14 +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
arvidn
33685c6c85
merge RC_1_1 into master
2018-07-28 10:10:01 +02:00