Steven Siloti
2b72a7321a
send one last state update when a paused torrent's rates reach zero ( #2436 )
2017-10-11 23:10:40 +02:00
arvidn
1d15e6bfb4
merge RC_1_1 into master
2017-10-08 18:21:25 +02:00
arvidn
cdd9f91999
fix leak of torrent_peer objecs (entries in peer_list)
2017-10-07 11:43:42 +02:00
arvidn
4e1c5738a2
back-port openssl API compat patch from master
2017-10-07 01:10:41 +02:00
Alden Torres
7f3c38025f
making use of openssl API 1.1 compatible
2017-10-06 11:03:16 +02:00
arvidn
69dc73914a
merged RC_1_1 into master
2017-10-04 11:43:01 +02:00
arvidn
99b19366a9
fix leak of peer_class objects (when setting per-torrent rate limits)
2017-10-03 17:32:49 +02:00
Alden Torres
a619dfb996
more use of auto, const and minor code refactor in torrent.cpp
2017-09-24 23:23:30 -07:00
arvidn
d22c44c057
fix kludge and down-cast to send upload_only. Promote upload-only to a top-level peer feature
2017-09-23 07:51:51 -07:00
arvidn
ddc8711dbe
fix issue where peers could be disconnected while iterating over the peer list in the torrent. Specifically while marking peers as not-interesting
2017-09-21 07:26:13 -07:00
arvidn
8d6b51d54c
minor cleanups
2017-09-16 13:48:11 +02:00
arvidn
93bb84d94c
some random cleanup
2017-09-13 08:28:46 +02:00
arvidn
55228756e5
make disk job flags type safe
2017-09-10 08:56:52 +02:00
arvidn
95c8c3018a
use span in gzip, http_parser and http_connection
2017-09-04 22:33:38 +02:00
arvidn
fe1c395579
merged RC_1_1 into master
2017-09-03 13:57:19 +02:00
arvidn
7087a16b36
move some initialization of torrent from start() into the constructor
2017-09-02 21:24:00 +02:00
Steven Siloti
f022285b13
include endpoint in tracker alerts
2017-09-01 13:38:36 +02:00
Steven Siloti
52ccad23b9
read_piece: handle failure to allocate piece buffer
2017-08-29 12:24:17 +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
e92cbf502c
remove the last use of session_impl get_ipv6_interface and get_ipv4_interface
2017-08-23 21:01:15 +02:00
arvidn
fe37884bc6
fix IPv6 tracker support by performing the second announce in more cases
2017-08-19 18:56:51 +02:00
arvidn
05b5b4ef4d
merged RC_1_1 into master
2017-08-16 22:46:47 +02:00
Steven Siloti
50c2aee8ec
don't create web seed connections if the torrent is upload only
...
The fix in 9a63d4696e
was imcomplete.
It turns out disconnect_if_redundant decrements the connection count
which unballances the count if we do end up disconnecting the peer.
This change avoids the problem by checking if the torrent is
upload only much sooner, before the connection object is even created.
We still do a redundancy check just-in-case, but it is not expected to
trigger.
2017-08-11 08:16:00 +02:00
arvidn
865ff09a84
merge RC_1_1 into master
2017-08-10 16:44:57 +02:00
arvidn
2b98951ace
assert that trackers are not announced to while checking files
2017-08-06 20:21:03 +02:00
arvidn
1f3730fa5a
fix force-recheck issue (new files would not be picked up)
2017-08-06 09:49:51 +02:00
arvidn
6b1037eff5
convert enum values that are just used as constants, to actual constants with the correct type
2017-08-04 15:23:20 +02:00
arvidn
322007bb6a
make save_state_flags a strong type
2017-07-30 09:06:41 -07:00
arvidn
69bd2986de
convert a few more torrent_handle flags to type safe types
2017-07-27 13:16:23 -07:00
arvidn
204a029b5f
merged RC_1_1 into master
2017-07-27 11:37:02 -07:00
arvidn
24e4263bae
make torrent status flags be type safe
2017-07-27 09:33:35 -07:00
arvidn
5222d92e9f
make resume_data_flags type safe
2017-07-27 00:07:15 -07:00
arvidn
c4eb4c8b5f
use span in torrent_info constructors and deprecate the redundant flags argument
2017-07-22 00:00:44 -07:00
arvidn
cedd468300
backport fix to clearing of piece picker in suggest_read_cache mode
2017-07-22 00:00:14 -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
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
33a2abebfe
submit disk jobs in read_piece()
2017-07-18 07:21:07 -07:00
arvidn
06070ea499
convert block request flags to type-safe flags
2017-07-17 17:56:07 -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
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
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
Steven Siloti
2e79c5e648
fix handling of SSL listen sockets
2017-07-10 21:41:39 -07:00
d-komarov
11d6a00bec
fix storage destruction order issue ( #2138 )
...
back-ported from b553cb32f7
2017-07-10 21:35:34 -07:00
arvidn
db09332a02
merged RC_1_1 into master
2017-06-30 08:58:21 -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
f85c01cc0a
merged RC_1_1 into master
2017-06-21 00:51:43 -04:00
Alden Torres
f6ca04638c
added const and auto refactor in torrent, piece_picker
2017-06-20 13:20:12 -04:00
arvidn
aa842948a3
storage_params cleanup
2017-06-20 10:27:28 -04:00
arvidn
046bb76361
handle invalid arguments to set_piece_deadline()
2017-06-19 05:46:08 -04:00
arvidn
35491bc476
convert remaining alerts to use operation_t instead of string literal
2017-06-18 22:05:50 -04:00
arvidn
ff454a92d4
unify some operation-enums and strings to use operation_t
2017-06-18 07:31:45 -04:00
arvidn
53cbb607d0
first steps towards spell checking documentation
2017-06-17 22:59:57 -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
arvidn
1fd350cf60
make operation_t an enum class, for type safety
2017-06-15 07:00:06 -04:00
arvidn
4de9f6a75b
remove requester parameter to disk read jobs
2017-06-08 12:38:25 +02:00
Arvid Norberg
5344761da4
make flags to move_storage a proper enum class ( #2043 )
2017-06-01 04:15:15 -04:00
Pavel Pimenov
d0ff2200f9
torrent::remove_connection refactor ( #2046 )
2017-05-31 21:59:16 -04:00
arvidn
afce0d3a86
make resolver_flags use enum class for improved type-safety
2017-05-29 18:38:59 -04:00
arvidn
680ca6ea2b
merged RC_1_1 into master
2017-05-21 21:02:09 -04:00
Arvid Norberg
c7bb9f23ad
add debug mechanism to assert the connection list is not mutated while iterating over it ( #2016 )
2017-05-21 11:36:35 -04:00
Steven Siloti
d115c7e296
refactor endpoint search and log a failure to locate a matching socket
2017-05-17 01:34:35 -04:00
Steven Siloti
bc019f241b
keep iterating over endpoints if one is found to be done
...
Even if one endpoint is done others may be ready to announce so we need
to keep going.
Fixes #1992
2017-05-17 01:34:35 -04:00
arvidn
73a3e390b5
merge RC_1_1 into master
2017-05-15 09:12:23 -04:00
arvidn
9333c51da6
deprecate partial_piece_info::piece_state
2017-05-14 20:15:55 -04:00
arvidn
e0fa1cd247
merged RC_1_1 into master
2017-05-12 21:46:45 -04:00
arvidn
bfa455c5bd
save resume data when removing web seeds
2017-05-09 13:11:28 -04:00
arvidn
b1b4360df6
merged RC_1_1 into master
2017-05-08 07:48:42 -04:00
Pavel Pimenov
11c75da314
add trailing slash ( #1969 )
2017-05-04 17:35:00 -04:00
Alden Torres
fd51c0b8bf
minor refactor in file_storeage and typos
2017-05-02 22:34:11 -04:00
Steven Siloti
259559851c
fix indentation
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
e4dbd28920
need_save_resume_data() will no longer return true every 15 minutes. If clients want to save resume data regularly, they can call save_resume_data() with whatever interval they choose
2017-04-23 20:53:09 -04:00
Andrei Kurushin
027fa5e290
fix MSVC 14.1 warnings-as-errors=on build ( #1939 )
2017-04-23 20:52:37 -04:00
Jan Berkel
afe1f685a4
Set next/min_announce to now
...
Prevents unnecessary tracker announce delays #1940
2017-04-23 16:00:53 -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
b553cb32f7
fix storage destruction order issue
2017-04-22 17:30:31 -04:00
Alden Torres
87592d50f2
minor typos and documentation changes in settings
2017-04-18 17:51:26 -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
Pavel Pimenov
7d09dba14e
add const ( #1917 )
2017-04-16 07:27:47 -04:00
Steven Siloti
969c0167d4
remove calls to RAND_add
...
This function has been removed from LibreSSL and offers dubious value.
The PRNGs in modern operating systems are robust enough that these little extra
bits arn't going to make a difference.
2017-04-15 22:00:29 -04:00
arvidn
480bde9333
change formatting of namespace declarations
2017-04-12 14:26:35 -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
09274842f7
fix resume data issue in client_test and some warnings ( #1897 )
...
fix resume data issue in client_test and some warnings
2017-04-09 09:37:06 -04:00
arvidn
51c42adc3e
steps towars making file_pool private to disk_io_thread
2017-04-07 08:38:35 -04:00
Alden Torres
0132221031
minor code cleanup, std:: prefix, consts, typos
2017-04-04 23:12:48 -04:00
Alden Torres
bb9b5bf4b8
schedule peer removal only if properly attached and handle special case of attach_peer ( #1872 )
...
schedule peer removal only if properly attached and handle special case of attach_peer
2017-04-01 12:15:20 -04:00
Alden Torres
990756ca38
code cleanup related to async_resolve ( #1873 )
2017-03-30 23:00:59 -04:00
arvidn
86786770b7
merged RC_1_1 into master
2017-03-27 01:24:43 -04:00
arvidn
7640c0641e
optimize download queue management with an explicit queue
2017-03-25 20:47:33 -04:00
arvidn
8e6f417015
make torrent_status movable and don't allocate pieces unless it's asked for
2017-03-25 16:22:59 -04:00
arvidn
8cc17a4524
optimize access to ssl_cert. specifically the case where there is none, avoid pessimisation of the common case
2017-03-23 21:55:20 -04:00
arvidn
f95f5b05c2
fix issue where torrent_status::num_seeds could be negative
2017-03-20 23:58:08 -04:00
Arvid Norberg
642cfa387d
add limit for number of web seed connections ( #1817 )
...
add limit for number of web seed connections
2017-03-18 15:53:07 -04:00
Alden Torres
1280c7f7ae
is_ip_address refactor and minor code cleanup ( #1828 )
...
is_ip_address refactor and minor code cleanup
2017-03-18 11:07:17 -04:00
arvidn
3a1379ef1e
merged RC_1_1 into master
2017-03-14 12:55:13 -04:00
arvidn
e37e4bfe8a
include user-agent in tracker announces in anonymous_mode for private torrents
2017-03-12 21:10:00 -04:00
arvidn
4ded26de33
fix issue with load/unload torrents
2017-03-11 19:59:53 -05:00
Andrei Kurushin
a404673147
loop conversion #1 ( #1783 )
...
loop conversion #1
2017-03-09 18:17:51 -05:00
Arvid Norberg
7d3a8f5b19
don't remove peers from the connection list immediately when disconnecting ( #1782 )
...
don't remove peers from the connection list immediately when disconnecting them, but defer it until later. This makes it less error prone to disconnect peers in loops over the connections
2017-03-07 13:50:03 -05:00
arvidn
af07ce1f25
fix issue with peers not updated on metadata from magnet links
2017-03-06 18:45:58 -05:00
Arvid Norberg
a34ce0278e
add write_resume_data() function ( #1776 )
...
add write_resume_data() function. Make resume data alert use an add_torrent_params object
2017-03-05 09:31:28 -05:00
Arvid Norberg
8cf6e9e37c
use span<> to return the block_info for a piece ( #1777 )
...
use span<> to return the block_info for a piece to improve range checks and loops
2017-03-04 23:45:07 -05:00
Alden Torres
1ae8856d93
more use of total_seconds
2017-03-01 23:33:45 -05:00
Alden Torres
b03943429f
more robust iteration on torrent peer connections ( #1769 )
...
more robust iteration on torrent peer connections
2017-03-01 23:33:00 -05:00
arvidn
9d645055ff
fix storage tick invariant check failure
2017-02-26 20:23:53 -05:00
Alden Torres
de9d777c9c
fixing sign-conversion warnings, part 22
2017-02-26 15:37:45 -05:00
arvidn
081365fbcf
merge RC_1_1 into master
2017-02-26 00:48:12 -05:00
arvidn
430ff6d7b4
minor fix to num_seeds
2017-02-19 18:47:32 -05:00
Alden Torres
a670871519
fix build from RC_1_1 merge
2017-02-17 19:06:51 -05:00
arvidn
3ffa3f2a08
merged RC_1_1 into master
2017-02-17 00:35:49 -05:00
Pavel Pimenov
7f4c8aaf75
Add const peer_request p -> peer_request const& p ( #1705 )
...
Add const peer_request p -> peer_request const& p
2017-02-14 00:17:02 -05:00
arvidn
cbd1c26a11
fix ABI compatibility issue introduced with preformatted entry type
2017-02-12 20:42:30 -05:00
arvidn
5971818969
merge RC_1_1 into master
2017-02-12 02:24:14 -05:00
arvidn
85f6febfff
fix some left-over incorrect default piece priorities (1 -> 4)
2017-02-11 15:32:51 -05:00
Alden Torres
4a80e2667c
fixing sign-conversion warnings, part 15, torrent class ( #1686 )
...
fixing sign-conversion warnings, part 15, torrent class
2017-02-11 14:58:02 -05:00
ximply
c4d96c7aa9
add web_seed_name_lookup_retry to session_settings ( #1674 )
...
add web_seed_name_lookup_retry to session_settings to control web seed
name lookup retry in seconds, default is 1800 seconds
2017-02-07 01:34:52 -05:00
Alden Torres
c8569b5e34
fixing sign-conversion warnings, part 12, minor refactor, eol cleanup ( #1670 )
...
fixing sign-conversion warnings, part 12, minor refactor, eol cleanup. created aux::clamp and default_piece_priority refactor
2017-02-07 00:22:30 -05:00
Arvid Norberg
9e4045ed42
use 32 bit time points in torrent ( #1662 )
...
use 32 bit time points in torrent and add some slack to time point comparisons in python test
2017-02-05 19:18:06 -05:00
arvidn
381defab05
merged RC_1_1 into master
2017-02-05 12:51:48 -05:00
Arvid Norberg
0a26ed8d1e
fix issue where updates to super seeding state would not include the torrent in the state_update_alert ( #1659 )
2017-02-04 16:09:42 -05:00
Falcosc
a9d6d54111
fix multible torrent status timer bugs related to move time ( #1492 )
...
fix last_upload and last_download overflow after 9 hours in past. change last_upload, last_download, finished_time, resume, upload_mode_time to time_point and duration
2017-02-04 13:34:14 -05:00
arvidn
c8e488b094
merged RC_1_1 into master
2017-02-02 22:58:33 -05:00
Arvid Norberg
4733670aa1
fix issue where num_seeds could be greater than num_peers in torrent_status ( #1645 )
...
fix issue where num_seeds could be greater than num_peers in torrent_status
2017-02-01 01:39:09 -05:00
arvidn
dbd734e7a2
sync. creation and clearing of file progress with the piece picker
2017-01-31 08:14:36 -05:00
Falcosc
e40bdc566c
1.1.2 set queue position by number ( #1617 )
...
set queue position by number
2017-01-30 21:31:31 -05:00
arvidn
3339b2abe1
back port file progress invariant checking to 1.1
2017-01-29 15:34:06 -05:00
arvidn
17ee28d176
Merge branch 'master' of https://github.com/arvidn/libtorrent
2017-01-28 14:36:28 -05:00
arvidn
6b91adab6a
merged RC_1_1 into master
2017-01-28 14:36:23 -05:00
Alden Torres
3803661863
moved alloca.hpp to private aux_ and size refactor ( #1634 )
...
moved alloca.hpp to private aux_ and size refactor
2017-01-27 12:43:34 -05:00
Alden Torres
22b745d548
added TORRENT_NO_DEPRECATE around file_progress_float
2017-01-25 23:44:30 -05:00
Arvid Norberg
ba9fae8e1f
fix issue with unloading torrents ( #1624 )
...
fix issue with unloading torrents
2017-01-25 23:42:59 -05:00
arvidn
b19cb7bd87
fixed finished-time calculation
2017-01-25 01:56:19 -05:00
Arvid Norberg
6a701437b6
use strong_typedef for peer_class_t type ( #1595 )
...
use strong_typedef for peer_class_t type
2017-01-21 22:40:19 -05:00
Alden Torres
8cc88a8921
return vector of correct size if internal file_progress is empty
2017-01-19 18:12:30 -05:00
Alden Torres
a31ba7972d
fixing sign-conversion warnings, part 3 ( #1537 )
...
fixing sign-conversion warnings, part 3. making aux::vector index type default to int
2017-01-13 01:55:29 -05:00
arvidn
77de1e1b43
improve error message in torrent::force_tracker_request precondition error
2017-01-13 01:53:44 -05:00
arvidn
41dbb47123
compact block_cache_reference by using storage_index_t instead of pointer. make sure storage object is kept alive by block_cache_references
2017-01-02 13:45:16 -05:00
arvidn
4ebc344e48
make disk_io_thread responsible for the storage object. torrents refer to it by index
2017-01-01 13:54:39 -05:00
Arvid Norberg
af126fe507
make buffer_allocator_interface an implementation detail of the disk_io_thread ( #1463 )
...
make buffer_allocator_interface an implementation detail of the disk_io_thread by using disk_buffer_holder in the disk interface. make chained_buffer use holders instead of free deleter functions and userdata to support putting disk_buffer_holder objects in there. Also make the session buffers be held by holders
2016-12-28 17:47:18 -08:00
Arvid Norberg
f1e34dfbd5
remove long-standing deprecated filter_pieces functions ( #1457 )
...
remove long-standing deprecated filter_pieces functions
2016-12-27 12:42:23 -08:00
arvidn
192ef4962b
simplify the buffer_allocator_interface
2016-12-26 08:36:50 -08:00
arvidn
6be7bb9eb7
clean up some piece/file priority code
2016-12-24 11:26:09 -08:00
Alden Torres
71b5d9fb85
fixed Wrange-loop-analysis warning with Apple clang-800.0.42.1 ( #1440 )
...
fixed Wrange-loop-analysis warning with Apple clang-800.0.42.1
2016-12-23 06:07:37 -05:00
Arvid Norberg
3f1084d63d
strengthened type safety in handling of piece and file indices ( #1409 )
...
strengthened type safety in handling of piece and file indices
2016-12-22 10:42:33 -05:00
arvidn
a2c4e7490e
merged RC_1_1 into master
2016-12-20 01:16:13 -05:00