Pavel Pimenov
8ac6bbe553
add http_parser::header_int ( #2472 )
2017-11-09 23:43:26 +01:00
arvidn
381db57b42
improve simulations by reseeding the random number generator. also erase all output in between iterations in test_error_handling
2017-11-09 17:59:13 +01:00
arvidn
f41d2b5d3b
move shared_ptr instead of copying them, when constructing DHT observers
2017-11-08 23:09:43 +01:00
arvidn
7730eea401
restore backwards compatibility with the API before download_priority_t was introduced
2017-11-06 01:24:24 +01:00
arvidn
d9de6767a7
back-port updated ssl test cert from master
2017-11-05 22:45:20 +01:00
arvidn
a690e6c76d
add throwing overload of parse_magnet_uri
2017-11-05 20:31:06 +01:00
arvidn
6785046c2f
introduce a download_priority_t type, for uniform an type-safe piece- and file priorities
2017-11-02 08:20:21 +01:00
arvidn
505b388a36
regenerate ssl test certificates and keys
2017-11-01 18:43:00 +01:00
arvidn
f57b90b500
introduce type for torrent queue_position
2017-11-01 10:52:45 +01:00
Alden Torres
f02e7514e1
fix issue of null m_part_file in default_storage readv/writev ( #2490 )
...
call need_partfile if necessary in default_storage constructor and no .reset() in release_files()
2017-10-31 16:49:58 +01:00
Alden Torres
f040d6d860
added reopen_network_sockets method to allow manual reopen of listen/outgoing sockets ( #2476 )
2017-10-28 12:15:35 +02:00
arvidn
50bef25786
make the piece-picker less two-phase initialized
2017-10-26 23:39:15 +02:00
arvidn
80ac90727b
remove some questionable code from disk_io_thread when deleting files for a torrent and extend transfer test to cover deleting files while seeding
2017-10-25 19:00:54 +02:00
Alden Torres
b380bf8059
minor and general code cleanup/refactor
2017-10-25 09:58:47 +02:00
Alden Torres
174a2ca65f
add limit of max 50 upnp mappings and recover free global mappings ( #2470 )
2017-10-24 16:16:22 +02:00
arvidn
a6c85496b5
make parse_magnet_uri return the add_torrent_params instead of of taking an in-out parameter
2017-10-15 04:29:53 +02:00
arvidn
bb65acb082
make feature_flags proper type-safe
2017-10-14 23:33:48 +02:00
arvidn
8adcfdbf41
make disk_buffer_holder know the size of the bufer it holds, to fix buffer overrun in chained_buffer
...
fix
2017-10-13 21:07:31 +02:00
arvidn
85b6d98454
merged RC_1_1 into master
2017-10-11 11:19:02 +02:00
arvidn
f19cca1374
fix infinite loop when parsing certain invalid magnet links
2017-10-11 09:11:58 +02:00
arvidn
9111d5977e
make the variables holding the source of external IPs type-safe
2017-10-10 22:38:36 +02:00
Arvid Norberg
60b74d2616
merged RC_1_1 into master
2017-10-10 14:25:12 +02:00
Arvid Norberg
830ef0bedd
prevent dependency on openssl from leaking outside of libtorrent (libssl and libcrypto should not be a usage requirement). This cleans up most tests to build without having to also link against openssl
2017-10-09 17:15:35 +02:00
arvidn
1d15e6bfb4
merge RC_1_1 into master
2017-10-08 18:21:25 +02:00
arvidn
f080149081
fix parsing of torrents with certain invalid filenames
2017-10-08 15:54:08 +02:00
arvidn
cdd9f91999
fix leak of torrent_peer objecs (entries in peer_list)
2017-10-07 11:43:42 +02:00
arvidn
d0f55224fb
simplify copy_ptr
2017-10-07 02:59:46 +02:00
arvidn
21fef88928
stricten up the filename sanitization a bit
2017-10-01 20:30:02 +02:00
arvidn
c0d76a5304
fix regression in torrent size check
2017-10-01 16:44:58 +02:00
arvidn
33b03e1f8e
improve handling of case where a torrent file has no files in it
2017-10-01 10:53:43 +02:00
arvidn
5026659cb6
clean up and fix edge cases in update_path_index
2017-10-01 04:43:41 +02:00
arvidn
17d78d3b8f
fix bounds checking in parsing of gzip header
2017-10-01 03:33:38 +02:00
arvidn
9d276ada8a
fix issue with the name in single file torrents being sanitized away
2017-10-01 01:12:39 +02:00
arvidn
12e92aeeb4
make the chunk header parser a bit more strict and accurate (and not rely on there being a 0 termiator character)
2017-09-30 11:59:00 -07:00
Arvid Norberg
61733787f7
fix redundant assert in gzip header check
2017-09-29 23:51:45 -07:00
arvidn
7444c12c6c
upgrade test_bdecode to use the new bdecode API
2017-09-28 19:38:33 -07:00
arvidn
68f05d6380
fix some warnings and integer overflow with torrents that are too big
2017-09-28 14:59:28 -07:00
arvidn
edad33d270
fix const correctness in get_peer_class
2017-09-24 14:49:55 -07:00
arvidn
4c4c630fae
merge RC_1_1 into master
2017-09-23 10:46:29 -07:00
Steven Siloti
8648de3706
DHT nodes should only handle requests on their socket ( #2355 )
2017-09-21 21:00:38 -07:00
arvidn
9839507ecd
simplify to_string to not apply unary - to an unsigned integer
2017-09-17 21:23:24 +02:00
arvidn
1a8660bca7
don't shadow static_category in alerts
2017-09-16 19:58:11 +02:00
arvidn
9f177ad413
analyze with sonarqube
2017-09-08 22:19:48 +02:00
arvidn
e36b066020
make logging alerts enabled by default in autoconf builds
2017-09-05 09:21:08 +02:00
arvidn
bb51dcdbb9
move dht_settings into its own header cpp file-pair and dht_settings into the dht namespace
2017-09-04 22:38:16 +02:00
arvidn
95c8c3018a
use span in gzip, http_parser and http_connection
2017-09-04 22:33:38 +02:00
arvidn
53ff169db1
use string_view in find_metric_idx
2017-09-04 07:50:13 +02:00
Steven Siloti
5361ffc1c2
add_file_borrow: use string_view instead of pointer, size parameters ( #2302 )
2017-09-02 23:58:36 +02:00
arvidn
2025c15ec1
cleanup tokenize_string -> split_string
2017-09-02 07:46:16 +02:00
arvidn
11f008e90e
use a strong typedef for port mapping id
2017-09-02 07:02:07 +02:00
Arvid Norberg
f734ad067b
straighten out some type-safety in port mapping enums ( #2285 )
2017-08-30 20:47:49 +02:00
Arvid Norberg
1075ae3b8d
remove session pool allocator and use the buffer class instead ( #2274 )
...
simplify append_buffer by using size() to determine size of the buffer. make the move explicit in chained_buffer::init_buffer_entry
2017-08-28 11:37:53 +02:00
Steven Siloti
cc3f73de96
add span ctor from const containers ( #2275 )
2017-08-28 11:36:51 +02:00
Arvid Norberg
d250ba5a17
wrap destination string in i2p_peer in string_ptr handler ( #2268 )
2017-08-25 09:42:46 +02:00
arvidn
d59d394d5b
remove residual mentions of mtu for interfaces
2017-08-20 22:34:20 +02:00
Alden Torres
66734e2e5b
using if_indextoname instead of RTM_GETLINK to fill the interface name in enum_net_interfaces ( #2253 )
...
using if_indextoname instead of RTM_GETLINK to fill the interface name in enum_net_interfaces. removed IFA_LABEL switch case, removed ip_interface::mtu, master rebase
2017-08-20 10:55:59 +02:00
arvidn
05b5b4ef4d
merged RC_1_1 into master
2017-08-16 22:46:47 +02:00
arvidn
b5fe0f95a2
fix issue in UTF-8 encoding validation
2017-08-16 13:15:19 +02:00
arvidn
b70d3efba9
fix infinite loop when parsing torrents whose filenames have zeroes. #2247
2017-08-16 07:21:34 +02:00
arvidn
fcb9c7b6f3
fix invalid read in parse_int() in bdecode_node() and lazy_bdecode()
2017-08-15 00:01:37 +02:00
arvidn
865ff09a84
merge RC_1_1 into master
2017-08-10 16:44:57 +02:00
arvidn
560ef29276
fix issue with very long tracker- and web seed URLs. Instead of using a fixed length stack allocated request buffer, use a dynamically growing stringstream
2017-08-10 14:01:11 +02:00
arvidn
4e497e1383
fix issue where paths were not correctly coalesced when adding files to file_storage (used more memory than necessary)
2017-08-10 12:10:46 +02:00
arvidn
bb6f2b9837
extend file_storage tests. Make pad files separate paths and file names properly
2017-08-10 01:33:35 +02:00
arvidn
378a0e974b
fix issue of force-recheck or seeding from read-only media, torrents with empty files in them. Previously libtorrent would create empty files up-front unconditionally, now they won't be created if they already exist
2017-08-09 18:48:49 +02:00
arvidn
1f3730fa5a
fix force-recheck issue (new files would not be picked up)
2017-08-06 09:49:51 +02:00
arvidn
5bf28e37b8
make create_torrent flags type-safe
2017-08-04 21:23:42 +02:00
arvidn
a8a5986046
make file attributes (in file_storage) type safe
2017-08-04 07:38:57 +02:00
arvidn
6fa181ece8
some cleanup of type-safe flags
2017-07-30 18:20:15 -07:00
arvidn
322007bb6a
make save_state_flags a strong type
2017-07-30 09:06:41 -07:00
arvidn
b38efb6c65
make alert category flags be a strong type
2017-07-26 07:20:47 -07:00
arvidn
c4eb4c8b5f
use span in torrent_info constructors and deprecate the redundant flags argument
2017-07-22 00:00:44 -07:00
Steven Siloti
5eba09fce7
changes based on review feedback
2017-07-21 19:18:44 -07:00
Steven Siloti
f0ae2145ea
use a handle class for listen sockets instead of raw pointers
...
Listen socket handles need to be week_ptr so that they can detect when a listen
socket is removed in the middle of a tracker announce on it. Use a wrapper class
to enforce that no one outside of session_impl can hold ownership of the socket
across event boundaries.
To support unit tests, listen_socket_t is also split into a base class which
holds the members needed to support the public listen socket API.
2017-07-21 19:18:44 -07:00
Steven Siloti
e0dcd34352
convert m_listen_sockets to a vector of shared_ptr
2017-07-21 19:18:43 -07:00
Steven Siloti
0f30815d8f
Revert "don't move listen_socket_t when deleting sockets"
...
This reverts commit 718c5f0dcb
.
2017-07-21 19:18:43 -07:00
arvidn
87ca4bb26f
Fix bug where the resume data would fail to load the piece bitmask for seeds when suggest_cache was enabled
2017-07-21 19:06:02 -07:00
arvidn
c4659bc345
convert peer_flags and peer_source_flags to type-safe flags
2017-07-17 10:22:32 -07:00
arvidn
4947602a2f
make add_torrent_params::flags_t an enum class and move it out into its own header
2017-07-17 01:05:31 -07:00
AllSeeingEyeTolledEweSew
00655d562b
Refactor several flags to torrent_handle::get_flags/set_flags.
2017-07-17 01:05:31 -07:00
arvidn
73942de97a
carve out peer_list_entry into also being deprecated (it was only used by deprecated functions and some tests)
2017-07-16 19:20:29 -07:00
toinetoine
b1c3e12cd0
added block_uploaded_alert to allow client to track upload activity
2017-07-16 11:04:03 -07:00
arvidn
c4afb5e949
use a dedicated class template for flags types instead of enum class. It's more backwards compatible and improves ergonomics
2017-07-15 01:15:57 -07:00
arvidn
0f2af8c3ef
disable msvc warning 4503
2017-07-13 22:24:29 -07:00
arvidn
c692147c94
merged RC_1_1 into master
2017-07-13 19:55:29 -07:00
arvidn
cc30434c52
fix inconsistency in file_priorities and override_resume_data behavior. file_priorities are not subject to the override_resume_data flag
2017-07-12 15:36:55 -07:00
pavel.pimenov
a422af1a7b
remove call _strchr
...
_TEXT SEGMENT
_c$ = 8 ; size = 1
?is_space@@YA_ND@Z PROC ; is_space, COMDAT
; 8 : static const char* ws = " \t\n\r\f\v";
; 9 : return strchr(ws, c) != nullptr;
movsx eax, BYTE PTR _c$[esp-4]
push eax
push DWORD PTR ?ws@?1??is_space@@YA_ND@Z@4PBDB
call _strchr
add esp, 8
neg eax
sbb eax, eax
neg eax
; 10 : }
2017-07-12 15:34:45 -07:00
d-komarov
85cf521145
fix bandwith rate limit calculation ( #2134 )
...
back-port of fc0cbfb789
2017-07-11 21:35:12 -07:00
Steven Siloti
2e79c5e648
fix handling of SSL listen sockets
2017-07-10 21:41:39 -07:00
Steven Siloti
389b4eb3f2
make listen_socket_t non-copyable and non-movable ( #2137 )
...
The DHT stores a pointer to this struct so it must not be copied or moved once
it is stored in m_listen_sockets.
2017-07-10 10:14:36 -07:00
Steven Siloti
718c5f0dcb
don't move listen_socket_t when deleting sockets
...
Pointers to listen_socket_t are stored in dht_tracker, so they
cannot be copied or moved once they are added to m_listen_sockets.
listen_socket_t should really be made non-copyable and non-moveable, but the
socket creation path needs to be refactored before that can be done.
2017-07-08 08:42:04 -07:00
arvidn
6425cfbc4f
tests should not fail by failing to clean up. Make clean up more reliable on windows
2017-07-04 10:21:23 -04:00
Steven Siloti
ec2fb91aa5
reject put messages with incorrect bencoding ( #2118 )
...
add function to check for soft bdecode errors. reject put messages with incorrect bencoding
2017-07-02 18:30:32 -04:00
arvidn
5c37eb174f
drop support for windows compilers without std::string and wchar_t (believed to be old cygwin)
2017-07-02 08:24:55 -04:00
arvidn
db09332a02
merged RC_1_1 into master
2017-06-30 08:58:21 -04:00
arvidn
3c8450d47c
fix backwards compatibility issue when loading the torrent info dict from resume data
2017-06-29 15:03:49 -04:00
arvidn
506950001d
fix regression where paused torrents could not have their queue position changed
2017-06-27 12:37:08 -04:00
arvidn
2b91b1070d
merged RC_1_1 into master
2017-06-24 12:37:13 -04:00
Steven Siloti
ec30a5e9ec
fix out-of-bounds read in bdecode
...
Fixes #2099
2017-06-24 10:52:49 -04:00
arvidn
b7642f75d5
move clear_bufs out of storage.cpp into storage_utils
2017-06-21 13:04:05 -04:00
arvidn
aa842948a3
storage_params cleanup
2017-06-20 10:27:28 -04:00
arvidn
ff454a92d4
unify some operation-enums and strings to use operation_t
2017-06-18 07:31:45 -04:00
arvidn
b80c477733
merged RC_1_1 into master
2017-06-16 00:24:41 -04:00
arvidn
a97121d6f2
move_storage did not work for torrents without metadata
2017-06-15 21:20:22 -04:00
Alden Torres
48ef3b6bf7
implemented support for BEP 51 ( #1652 )
2017-06-12 11:54:11 +02:00
arvidn
147d996160
make the job action enum an enum class
2017-06-11 23:53:58 +02:00
arvidn
f3d319b677
fix internal use of deprecated function identify_client
2017-06-10 08:16:23 +02:00
Andrei Kurushin
fc0cbfb789
fix bandwith rate limit calculation ( #2060 )
2017-06-08 12:50:55 +02:00
arvidn
4de9f6a75b
remove requester parameter to disk read jobs
2017-06-08 12:38:25 +02:00
arvidn
6967d17a42
make move constructors and move assignment operators noexcept
2017-06-01 23:42:15 +02:00
Arvid Norberg
5344761da4
make flags to move_storage a proper enum class ( #2043 )
2017-06-01 04:15:15 -04:00
arvidn
afce0d3a86
make resolver_flags use enum class for improved type-safety
2017-05-29 18:38:59 -04:00
arvidn
ffaabd846c
make file open mode flags be an enum class for type-safety
2017-05-28 11:16:59 -04:00
Arvid Norberg
660cdaf2d1
deprecate direct access to array in session_stats_alert ( #2033 )
2017-05-27 20:33:31 -04:00
Arvid Norberg
1925d1e7aa
add test for recent duplicate add bug ( #2003 )
2017-05-17 23:04:50 -04:00
arvidn
73a3e390b5
merge RC_1_1 into master
2017-05-15 09:12:23 -04:00
arvidn
56d5d795bf
improve path sanitization (filter unicode text direction characters)
2017-05-15 01:49:41 -04:00
arvidn
e0fa1cd247
merged RC_1_1 into master
2017-05-12 21:46:45 -04:00
arvidn
ff63557f58
bind upnp requests to correct local address
2017-05-12 18:17:38 -04:00
Pavel Pimenov
0ac16532ee
remove unique.count(url) ( #1964 )
2017-05-03 20:18:30 -04:00
arvidn
af495da56b
use std::function instead of the fileop interface for readwritev()
2017-05-02 08:07:29 -04:00
Arvid Norberg
1af17be046
use enum class for ssl bool in listen socket ( #1960 )
...
use enum class for ssl bool in listen socket. use std::array instead of C array. make test_listen_socket a bit more compact
2017-04-30 21:11:42 -04:00
arvidn
749d0da875
make iovec_t an alias for span<char>, in preparation for removing it altogether in favour of span
2017-04-30 11:49:08 -04:00
Steven Siloti
a693565df0
hack to get test_stop_tracker_timeout working
2017-04-30 08:11:56 -04:00
Steven Siloti
fd50630020
announce to trackers for all listen interfaces
2017-04-30 08:11:56 -04:00
arvidn
23ba9d12d1
construct and destruct objects in stack allocations (alloca())
2017-04-28 21:34:31 -04:00
arvidn
2dca174785
improve span container constructor
2017-04-28 08:17:57 -04:00
arvidn
a9a12e873f
make DHT bootstrapping more robust by not throwing away nodes
2017-04-25 23:03:52 -04:00
arvidn
4eb5155263
use span<> for peer_connection::send_buffer
2017-04-25 23:02:32 -04:00
arvidn
d138f02424
introduce lt namespace alias
2017-04-23 23:43:58 -04:00
Steven Siloti
bcfaf9621a
fixes from review
2017-04-23 19:49:49 -04:00
Steven Siloti
cdd50be859
create a separate DHT node for each listen socket
2017-04-23 19:49:49 -04:00
Alden Torres
735214a806
avoid connections to trackers when the event is stopped and stop_tracker_timeout <= 0 ( #1932 )
2017-04-22 18:33:26 -04:00
arvidn
04c76249b6
merged RC_1_1 into master
2017-04-21 01:21:31 -04:00
arvidn
227830e757
fix memory leak in the disk cache. if a cached_piece_entry would stick around in a ghost list (ARC), it would keep the torrent object itself alive. when aborting read jobs, the outstanding_read flag need to be cleared on the piece. When reclaiming a block for a piece that should be deleted (not just evicted) it need to know that. This patch adds an additional bit to cached_piece_entry to communicate this
2017-04-19 22:30:27 -04:00
Jan Berkel
cdf066c4e1
magnet links: unescape hash parameter ( #1925 )
2017-04-19 00:52:35 -04:00
arvidn
df299fcb00
use boost::variant for disk_io_job in/out parameter, to support holding a proper disk io buffer handle and string
2017-04-17 15:08:27 -04:00
arvidn
cef9773c70
generalize part_file::export_file to pass back the buffers to a callback function
2017-04-15 20:01:18 -04:00
arvidn
79d7ae3638
separate path and filesystem functions out into its own translation unit/header file pair, separating it from the file and directory class
2017-04-11 18:07:55 -04:00
Arvid Norberg
c35718d322
use unsigned integer for file and storage flags ( #1895 )
...
use unsigned integer for file and storage flags
2017-04-09 01:28:46 -04:00
arvidn
51c42adc3e
steps towars making file_pool private to disk_io_thread
2017-04-07 08:38:35 -04:00
Alden Torres
6888296c43
added compare_less_wrap test
2017-04-04 23:12:48 -04:00
Alden Torres
0132221031
minor code cleanup, std:: prefix, consts, typos
2017-04-04 23:12:48 -04:00
Alden Torres
45bea967c2
added resolver_cache_timeout setting ( #1878 )
...
added resolver_cache_timeout setting
2017-04-04 18:23:37 -04:00
Arvid Norberg
64ad4f5c96
enable warnings when building tests ( #1880 )
2017-04-02 14:22:17 -04:00
arvidn
0319b53d5f
imrove some test coverage and fix bug in trim() function
2017-03-31 09:43:25 -04:00
arvidn
6584423737
don't include base32encode in the build when i2p is disabled
2017-03-31 07:24:50 -04:00
Arvid Norberg
65a2413797
make parse_magnet_uri take a string_view instead of std::string ( #1870 )
...
make parse_magnet_uri take a string_view instead of std::string
2017-03-30 22:55:54 -04:00
Arvid Norberg
b8e77444d5
use span for read_resume_data() ( #1867 )
...
use span for read_resume_data()
2017-03-29 16:10:32 -04:00
Arvid Norberg
8ebbad19d4
deprecate add_torrent_params::url field. use parse_magnet_uri instead ( #1864 )
...
deprecate add_torrent_params::url field. use parse_magnet_uri instead
2017-03-29 02:16:07 -04:00