arvidn
178093f81b
fix error code messages when building without deprecated functions
2019-07-21 05:39:53 -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
Amir Abrams
7d00e80a7a
Trivial, correct school spelling in comments
2019-07-14 11:42:07 -04:00
Amir Abrams
8420f01eb4
Correct log verbiage for put_item
2019-07-14 11:42:07 -04: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
9da041a24d
extend the whole_pieces_threshold setting to also request contiguous pieces from fast peers
2019-07-02 10:32:27 +02:00
Arvid Norberg
6fbeb93d50
fix error handling of moving storage to a drive letter that isn't mounted
2019-07-01 15:27:37 +02:00
patch3proxyheaders915360
832857e384
set HTTP Host to request-target when using proxy
...
To make the Host field carry the request-target it is enough to set
the Host information before changing the connection destination.
Many proxies rely on the Host field-value to route requests
in a violation of RFC7230 section 5.4.
https://tools.ietf.org/html/rfc7230#section-5.4
A request with the Host field set to the proxy hostname and port
in place of the request-target produces error responses and otherwise
confuses such misconfigured middleboxes.
2019-07-01 10:17:20 +02:00
Monson Shao
186371f1a2
choke dishonest peer in anti-leech seeding algorithm ( #3833 )
...
support peers not sending redundant HAVE messages in anti-leech seeding algorithm
2019-06-10 08:53:16 +02:00
arvidn
f9d31cf71b
fix GCC-9 warnings
2019-06-02 20:58:58 +02:00
Arvid Norberg
16acd9ebe1
don't leak exceptions out of handler callbacks in resolver
2019-05-19 08:00:50 +02:00
arvidn
7d1afa9b41
fix assert in DHT node
2019-04-30 12:50:05 +02:00
arvidn
d97e1be6b2
bump version of RC_1_2 to 1.2.1
2019-04-28 03:31:04 +02:00
arvidn
b21eebbad7
minor simplification of power-of-2 test in create_torrent
2019-04-27 17:17:56 +02:00
arvidn
ce52d9c685
remove left-over, rendant, encoding of the info-dict in create_torrent::generate()
2019-04-26 22:02:23 +02:00
arvidn
ba731ef0cf
make sure session cleanup releases all its references to torrents
2019-04-22 22:31:51 +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
Steven Siloti
27a49523a3
fix windows build with boost 1.70
2019-04-21 00:47:44 +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
5b021a849e
use a more restrictive limit on number of pieces allowed in a torrent
2019-04-02 19:44:00 +02:00
arvidn
f025c67185
fix memory leaks in test_http_connection simulation
2019-03-30 14:44:21 +01:00
arvidn
3a093c5d27
improve disk I/O logging
2019-03-28 12:00:32 +01: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
Steven Siloti
8d9c746149
always flush disk I/O job queue before shutdown
...
Leaving jobs on the queue can lead to memory leaks
2019-03-26 18:04:18 +01:00
arvidn
bb5c612180
fix typo in validation of reject messages. Make on_choke a bit more defensive
2019-03-26 09:14:16 +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
b6896cf337
tighten up validation of dont-have messages
2019-03-21 16:48:08 +01:00
arvidn
972288340f
tighten up validation of reject messages, to ensure consistency of stats counters
2019-03-20 18:57:41 +01:00
arvidn
01feb32821
tighten up message size checks
2019-03-20 12:59:13 +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
arvidn
bb10385e6c
fix asserts in old merkle code
2019-03-17 18:58:26 +01:00
Alden Torres
620eb39f2c
missing changes
2019-03-11 14:38:26 +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
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