Commit Graph

4607 Commits

Author SHA1 Message Date
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
arvidn c92f527b60 in torrent_handle::id(), only shift down the pointer by 10 bits 2018-07-28 10:03:30 +02:00
Arvid Norberg b3856d3027 narrow the scope affected by TORRENT_DISABLE_EXTENSIONS to only disable the user extensions, but always support the extension message and the built-in extensions, like lt_donthave and seed_mode 2018-07-26 09:31:49 +02:00
Arvid Norberg 8f0cf7e1a9 some refactor to reduce duplicate code 2018-07-25 18:48:34 +02:00
Arvid Norberg 4282dd072a factor out generate_peer_id into its own file 2018-07-25 08:49:18 +02:00
arvidn a1f2995716 add piece index range checks on have_piece() and read_piece() 2018-07-25 00:20:18 +02:00
arvidn 730ef15b08 minor cleanups 2018-07-24 16:34:46 +02:00
arvidn c2ebae7dbb make metric_type_t an enum class, deprecate the in-class enum values 2018-07-24 15:29:56 +02:00
Arvid Norberg dcb8b816a3 only post alerts for newly opened listen sockets, and only attempt to map ports for newly opened sockets. track has_incoming_connections per listen socket 2018-07-23 15:04:23 +02:00
Arvid Norberg 2f56fa6c3e bump version to 1.1.9 2018-07-20 13:06:12 +02:00
arvidn f4b0dbf115 merged RC_1_1 into master 2018-07-20 09:28:21 +02:00
arvidn 1ebc5f9ef2 remove special handling of uTP peers 2018-07-20 07:47:08 +02:00
arvidn e92cf18340 fix some warnings around unused variables, dead stores, potentially dereferencing nullptr and calling virtual functions from constructor 2018-07-20 01:03:16 +02:00
arvidn d8755066e8 give some magic numbers names 2018-07-20 00:58:34 +02:00
arvidn a7b7623f23 return values instead of using out-params 2018-07-19 23:58:36 +02:00
arvidn f89c27183b remove unused function 2018-07-18 09:18:09 +02:00
arvidn 4aa3c4573a use the strong type for pause flags 2018-07-16 12:06:21 +02:00
arvidn 4633258fbe make the DHT announce flags a strong type 2018-07-16 12:04:16 +02:00
Steven Siloti e5be30157f set port in handshake based on source address (#3172) 2018-07-15 21:15:04 +02:00
arvidn 37a6a47ea3 minor cleanups around saving resume data 2018-07-12 08:38:53 +02:00
Steven Siloti 961cf62cad dht: announce with per-interface listen port 2018-07-12 08:36:57 +02:00
Alden Torres 965ca9a565 avoid copy of arrays in dht alerts constructors 2018-07-09 19:53:35 +02:00
Arvid Norberg e317c72db3 merged RC_1_1 into master 2018-07-08 18:52:13 +02:00
arvidn 3c2b076eb0 deprecated anonymous_mode_alert 2018-07-08 18:26:47 +02:00
arvidn b750b6cc2c deprecate (and disable) the force-proxy setting. Instead, always use the proxy when set, never fall back on circumventing it 2018-07-08 18:26:47 +02:00
arvidn 2ba0e5ae2c move the file priority vector throught the disk_io_job, to avoid copies 2018-07-08 18:25:06 +02:00
arvidn d2d35b69fd raise priority of cache_flushed_alert and post it unconditionally when triggered explicily by the client 2018-07-08 18:23:44 +02:00
arvidn e45df614fe improve type safety of internal leave_seed_mode() function 2018-07-08 17:32:50 +02:00
Alden Torres 6d2f804d9f code refactor related to the use of index_range and end index 2018-07-08 17:32:30 +02:00
Arvid Norberg 3fede4b223 merged RC_1_1 into master 2018-07-08 11:55:32 +02:00
arvidn efe3036879 clean up proxy_settings constructors 2018-07-07 18:02:43 +02:00
d_komarov 1c86e94de6 Fix deadlock when loading libtorrent Dll
Definition of `bool file::has_manage_volume_privs` involves a call to
`get_manage_volume_privs()`, causing restricted tasks to be performed
from within `DllMain` function. They introduce possibility that client
application deadlocks or crashes.

You should never perform the following tasks from within DllMain:

* Call `LoadLibrary` or `LoadLibraryEx` (either directly or indirectly).
  This can cause a deadlock or a crash.

* Call the registry functions. These functions are implemented in
  'Advapi32.dll'. If not initialized before your DLL, it can access
  uninitialized memory and cause the process to crash.
2018-07-07 18:00:07 +02:00
arvidn d439c8729a qualify some assignment operators to disallow assignment to temporaries 2018-07-01 17:29:50 +02:00
Alden Torres 2c5da2778a more lint oriented code refactor/cleanup 2018-06-29 13:27:29 +02:00
arvidn 4576723090 bump version to 1.1.8 2018-06-25 12:25:11 +02:00
Arvid Norberg 17300decb5 improve naming of deprecated settings enums 2018-06-24 16:50:18 +02:00
Alden Torres be78a43d05 more use of empty(), emplace_back, const and auto in disk_io_thread code 2018-06-24 07:02:17 +02:00
arvidn 2cb29f88ac merged RC_1_1 into master 2018-06-23 23:22:26 +02:00
Alden Torres f139afc1ad minor code refactor, cleanup and typo in peer related code 2018-06-23 23:11:48 +02:00
Steven Siloti b7f230316c set the minimum number of checking jobs based on the number of hasher threads
To effectively mask the latency of generating more hash jobs there need to be
at least two jobs in-flight for each hasher thread.
2018-06-23 23:10:55 +02:00
arvidn f5a2015302 merge RC_1_1 into master 2018-06-19 22:26:01 +02:00
arvidn 4ae262d2d4 fix race condition in part_file 2018-06-19 14:50:02 +02:00
d-komarov 81ce7aa4ab Fix parts file i/o errors (#3110)
Since i/o operations are not synchronized, it is possible that one thread closes file handle, opened in another thread. With addition of `hidden` file attribute, an old bug in `part_file::open_file()` revealed both problems, causing a lot of random i/o errors in parts file. Fixing `open_file` bug should reduce the number of such errors back to 'normal'.
2018-06-18 14:34:39 +02:00
arvidn ca7313580e merged RC_1_1 into master 2018-06-16 17:47:32 +02:00
arvidn 5530793c75 improve the API for iterating over all files and pieces, with the new strong index types. 2018-06-12 11:44:29 +02:00
Alden Torres a2ea79de4e minor code refactor in utp related code, more use of const 2018-06-12 11:41:32 +02:00
Alden Torres 95b753778d use TORRENT_ABI_VERSION for new error_code_enum deprecated values (#3099) 2018-06-12 00:46:22 +02:00
arvidn 2364699292 clarify documentation for move_storage() 2018-06-11 00:05:36 +02:00
Arvid Norberg b26467c04e deprecate network-threads setting 2018-06-10 19:34:07 +02:00
Arvid Norberg e8f971a54a scrape_reply_alert should be high priority, since it's triggered by the client 2018-06-10 19:28:45 +02:00
Arvid Norberg 6647b0988d
add support for multi-home NAT-PMP and PCP 2018-06-10 16:55:42 +02:00
Steven Siloti 247672820c report transport version in NAT-PMP send/receive logs 2018-06-09 16:40:46 -07:00
Alden Torres a357e490ed minor code refactor, more use of auto 2018-06-08 21:56:06 +02:00
Steven Siloti fbaa1afd62 return a vector of mapping ids from add_port_mapping 2018-06-07 18:18:31 -07:00
Steven Siloti e523566622 add support for the Port Control Protocol (PCP) 2018-06-07 18:18:31 -07:00
Steven Siloti 78be52112f create a natpmp instance for each listen socket 2018-06-07 18:16:08 -07:00
Arvid Norberg e88339378c merged RC_1_1 into master 2018-06-07 00:30:23 +02:00
Arvid Norberg 2408200475 fix race condition in stat_cache 2018-06-05 19:07:33 +02:00
Arvid Norberg 794ccf4f79 remove unused disk stats counters 2018-06-05 19:03:04 +02:00
arvidn 95cfc16bca fix integer overflow in alert_manager 2018-06-02 15:16:08 +02:00
arvidn 267ca40b28 merged RC_1_1 into master 2018-06-02 13:15:13 +02:00
arvidn c55bc7dd42 improve error handling of failing to change file priority 2018-05-31 00:47:17 +02:00
Alden Torres 8a0ac58658 some lint oriented refactor, more use of const 2018-05-30 23:52:28 +02:00
arvidn c56f6abf72 deliver notification of alerts being dropped via alerts_dropped_alert 2018-05-30 11:26:02 +02:00
Alden Torres 6c4869f044 moved instantiate_connection to aux namespace 2018-05-29 09:25:25 +02:00
Steven Siloti 396c5dd3af remove use of deprecated function readdir_r
Ports 140b8ace onto RC_1_1 branch
2018-05-28 16:06:41 +02:00
arvidn 3b0ce8d2e1 merged RC_1_1 into master 2018-05-28 15:56:22 +02:00
arvidn 35d7672432 raise priority of fastresum_rejected_alert 2018-05-27 22:33:24 +02:00
Alden Torres d6cecee8c0 some code cleanup and minor refactor 2018-05-24 23:46:37 +02:00
arvidn 534276e7a5 refactor to use the utility function for bind_socket_to_device() instead of using the bind_to_device socket option directly, to make it best effort. include operation enum in udp_error alert. 2018-05-23 12:11:04 +02:00
Alden Torres ff300ed224 some cleanup and refactor in torrent_info code (#3054) 2018-05-23 10:39:55 +02:00
arvidn 1a66a8b285 merged RC_1_1 into master 2018-05-20 12:08:46 +02:00
arvidn a137bbfdd4 simplify some using statements to pull in the address types 2018-05-20 08:46:14 +02:00
d_komarov 5f74b6e353 Bump `file_error_alert` priority
This alert's priority must be higher than `block_downloading_alert`'s
to allow custom handling of file errors.

With progress notifications enabled, network thread might fully load
alerts queue, so file errors from disk thread won't have a chance to
be delivered.
2018-05-17 00:55:07 +02:00
Alden Torres a7b2026ef8 minor code refactor in ip_filter code 2018-05-14 23:58:01 +02:00
Arvid Norberg ccdfd7383e move export.hpp into aux_ folder. put assert symbols in libtorrent namespace 2018-05-14 09:09:01 +02:00
arvidn fe612ca167 replace the TORRENT_CFG ABI check with inline namespaces around the symbol that can change ABI based on build configuration options 2018-05-13 19:25:17 +02:00
Arvid Norberg 4523e05527 fix uTP and SOCKS5 simulations and update libsimulator 2018-05-13 12:10:34 +02:00
d-komarov f052d1ca40 Fix bandwidth allocation (#2810)
Don't allow peer connection to ask quota from bandwidth manager if send buffer is empty.
Remove undefined member function
Update download rate multiplier
2018-05-12 13:53:03 +02:00
arvidn ddd1168296 don't attempt to make uTP connections if we don't have any outgoing UDP sockets 2018-05-12 13:34:58 +02:00
arvidn 4d17e0132e fix empty outgoing interfaces for UDP sockets 2018-05-12 13:34:58 +02:00
Arvid Norberg c98b700d4f merged RC_1_1 2018-05-10 22:48:39 +02:00
Steven Siloti 8fdba2aa39 don't specialize standard type trait is_integral
Concerning type traits, the C++ standard states: "The behavior of a program
that adds specializations for any of the templates defined in this subclause is
undefined unless otherwise specified."

There is no exception for is_integral.
2018-05-10 19:06:18 +02:00
arvidn 5f758b8531 remove redundant set_piece_hashes template. take a std::function instead 2018-05-10 12:10:33 +02:00
Eugene Shalygin 81fd09775c Fix compilation with GCC 8 2018-05-07 13:33:18 +02:00
d-komarov dc28c96559 Fix unit tests build
Export `recursive_mutex` because `emplace_alert` template injects
dependency on that type during instatiation.
2018-05-07 00:53:48 +02:00
Arvid Norberg 894933e1f1 fix typo in comment 2018-05-06 20:59:32 +02:00
Arvid Norberg 4b368e1cfc merged RC_1_1 into master 2018-05-02 01:57:41 +02:00
arvidn 8808eb7cdd introduce a recursive mutex to protect the alert_manager, and hold the mutex while calling user callbacks and plugin hooks. This is required to ensure the underlying storage for alert allocations (in the stack allocators) is synchronized with the thread that may be accessing it 2018-05-01 23:17:51 +02:00
Alden Torres 8da635d1f5 minor code cleanup, more use of const 2018-05-01 23:03:29 +02:00
Arvid Norberg 26b0487f0b merged RC_1_1 into master 2018-05-01 21:26:42 +02:00
d-komarov 785f173df3 Revise alert priorities / torrent::on_resume_data_checked issue (#2962)
Most status alerts should have priorities above normal level. Good reason for this is resume data verification case. For a large torrent(having lots of pieces) whole alert queue will be overflowed
with a `piece_finished_alert` right after resume data has been verified. Thus alerts like `torrent_checked_alert`, `torrent_finished`, `state_changed_alert` will not go the alerts queue.
* Introduce alert_priority enumeration
* Bump state_changed_alert's priority
* Set dht_direct_response_alert priority to `critical`
2018-05-01 12:26:37 +02:00
arvidn 33bf3c827f fix deprecation markups 2018-04-28 22:47:38 +02:00
arvidn 8621477239 merged RC_1_1 into master 2018-04-28 14:36:24 +02:00
Steven Siloti f5e33932d2 fix use after free in flush_range and flush_iovec
Calling blocks_flushed can cause the piece entry to be freed so its
callers need to be aware of that and avoid dereferencing the pointer if
the entry is freed.
2018-04-27 16:15:19 +02:00
pavel.pimenov 2a97ec6e0e Windows: Fix build Visual C++ ARM/ARM64 2018-04-25 16:07:47 -04:00
Alden Torres 83dd6c9c53 cleanup and refactor in storage source code 2018-04-25 16:02:30 -04:00
Chocobo1 6394e7ac02 Fix MSVC warning C4267 by casting to the correct type explictly 2018-04-24 23:16:54 -04:00
Xiyue Deng 21d8e9e26b Add missing header <cstdarg> for va_list.
* Fix building on OpenBSD.
2018-04-24 23:09:25 -04:00
arvidn 3ede0b9c20 fix last_upload, last_download and last_scrape to be reported accurately and saved/restored in resume data 2018-04-22 06:14:22 -04:00
Alden Torres d34973def9 minor code cleanup in disk buffer code 2018-04-21 23:48:40 -04:00
TheOriginalWinCat bcb9e4546f Use settings_pack::urlseed_wait_retry for default retry with http seeds. (#2948)
Update documentation
2018-04-21 18:36:56 +02:00
arvidn f0227451a6 merged RC_1_1 into master 2018-04-13 01:47:41 +02:00
arvidn 64d6b49004 fix boost-1.67 build 2018-04-12 14:33:46 +02:00
arvidn aaf9304a3b update year in copyright header 2018-04-09 09:04:33 +02:00
arvidn 105934e578 bump version 2018-04-08 23:08:39 +02:00
arvidn a7406de2b8 remove the global cache of the current time, just use clock::now() instead 2018-04-07 21:43:18 +02:00
Alden Torres d6edf26e11 minor code tidy 2018-04-07 00:30:36 +02:00
Alden Torres 2d9bff0877 make socket_entry buffer std::array 2018-04-06 10:04:32 +02:00
Arvid Norberg 6efff919cd deprecated alert::progress_notification alert category, split into finer grained categories 2018-04-05 16:27:28 +02:00
gubatron 2a82bb5880 disk_io_thread abort_hash_jobs duplicate code refactor 2018-04-05 16:01:30 +02:00
Alden Torres 5b922072e9 avoid calls to .address() when looking for endpoint protocol (#2892)
using is_v4 and is_v6 where possible
2018-04-01 13:48:17 +02:00
Alden Torres 1f06a6684c avoid calling address to test protocol, more consts and minor lint oriented code changes 2018-03-29 12:20:59 +02:00
Alden Torres f963f2c726 minor lint oriented code refactor 2018-03-28 15:55:05 +02:00
arvidn 02a01fa22e fix issue where the current tracker would be skipped for the next tracker in the same tier 2018-03-25 14:40:38 +02:00
arvidn 67bbb82122 improve type-safety in piece picker, by introducing a type for download queue index, for pieces 2018-03-24 23:03:09 +01:00
arvidn 3171245292 fix warnings 2018-03-24 23:01:19 +01:00
arvidn 8b56aaf09a minor cleanup of alert manager 2018-03-24 23:00:22 +01:00
arvidn 5413eae900 declare tag types in-line 2018-03-23 11:21:08 +01:00
arvidn 9df4d4b7f8 replace typedef with using. replace NULL with nullptr. cleanup page_aligned_allocator 2018-03-23 11:19:46 +01:00
Alden Torres 7a477cd938 more use of move and code refactor in bandwidth related code 2018-03-22 18:01:01 +01:00
Alden Torres 6b35ebb9ad some code refactor and cleanup in broadcast_socket 2018-03-21 23:37:52 +01:00
arvidn 7dad0db4a5 fix warnings in bdecode and disk_io_job 2018-03-20 12:43:44 +01:00
Alden Torres 61ae2c834b removed unused bt_peer_connection::on_keepalive 2018-03-16 17:32:20 +01:00
Alden Torres eeffbc0e8c more use of for-loop and emplace_back in bencode.hpp 2018-03-16 01:41:41 +01:00
Alexandre Janniaux 4f7b683eb0 fix if defined TORRENT_ANDROID
Fix malformed TORRENT_ANDROID macroprocessor tests, related to #2831
2018-03-14 09:32:18 +01:00
arvidn 8658fb5f7c deprecate the error_file_* constants whose underlying features have been deprecated 2018-03-13 19:39:55 +01:00
arvidn 5c1b65e9b8 merged RC_1_1 into master 2018-03-12 02:32:12 +01:00
arvidn a06e4f696b track whether a file is eligible for using the partfile on a per-file basis. This is intended to improve backwards compatibility, to better support resuming files downloaded with older versions of libtorrent 2018-03-11 12:52:56 +01:00
Alexandre Janniaux 2bc2f3af0f Add missing define for old android sdk (#2831)
define NETLINK_NO_ENOBUFS and IFA_D_DADFAILED if they don't exist
2018-03-09 22:37:21 +01:00
arvidn 282c49d6b5 fix issue querying block size from torrent before metadata has been received 2018-03-05 10:30:47 +01:00
Alden Torres d8ebcc7f0c minimal lint oriented code cleanup and reactor in session_handle.hpp 2018-03-05 10:29:27 +01:00
arvidn 9696082355 merged RC_1_1 into master 2018-02-25 09:36:12 +01:00
Alden Torres 2ac84ed5f5 minor code cleanup in http_tracker_connection code 2018-02-21 09:23:03 +01:00
arvidn 53b4725da3 clean up noexcept specifiers to adapt to what the implementation provides 2018-02-20 08:43:52 +01:00
d-komarov 59bdb3db81 Fix compilation warning at friend declarations
Use appropriate dllimport/dllexport attributes with friend declarations.
2018-02-19 23:23:15 +01:00
d-komarov f94b62acf7 CMake improvements
CMake build scripts improved to simplify configuring and building of
project and tests.

Better use of compile definitions by replacing add_definitions with
target_compile_definitions. Use INTERFACE, PUBLIC and PRIVATE keywords
to separate scope of TORRENT_BUILDING_SHARED and TORRENT_LINKING_SHARED
definitions.

* Move tests to the separate file - test/CmakeLists.txt
* Fix use of compile definitions
* Remove redundant tailqueue.cpp
2018-02-19 23:23:15 +01:00
Alden Torres 421709f67f added friendly_name and description to ip_interface (#2799) 2018-02-19 11:46:35 +01:00
arvidn 1ede34da8a undo the patch to restore incoming TCP connections over SOCKS5 2018-02-19 00:01:42 +01:00
Alden Torres 6e5177beaf more code cleanup, typos, minor refactor in headers (#2795) 2018-02-18 00:36:57 +01:00
Alden Torres b689838f32 change by review 2018-02-17 00:52:35 +01:00
Alden Torres f0cd6492bd minor lint oriented cleanup and refactor in headers 2018-02-17 00:52:35 +01:00
Alden Torres 670c8a82ad minor dht headers code cleanup and lint oriented refactor 2018-02-14 22:35:26 +01:00
Alden Torres fedee2b5fa more headers code cleanup and some lint oriented refactor 2018-02-13 00:46:13 +01:00
Alden Torres 35da7fb0e6 cleanup of unused code and minor refactor in peer_connection.hpp 2018-02-13 00:38:59 +01:00
Alden Torres d2e874fca8 headers code cleanup, removed unused fields in torrent class (#2775) 2018-02-06 08:32:19 +01:00
arvidn 15a8a17a6f merged RC_1_1 into master 2018-02-05 08:55:15 +01:00
arvidn a0a63341c7 fix haiku build 2018-02-04 19:10:43 +01:00
Alden Torres f8988231a3 using by value semantics in callback function types on string arguments 2018-01-31 22:46:52 +01:00
arvidn 91e03c789c fix issue resuming 1.0.x downloads with a file priority 0 2018-01-31 22:43:07 +01:00
Alden Torres 5d230a69f2 minor code cleanup 2018-01-30 12:38:08 +01:00
arvidn 01c41fadcf fix torrent_status::next_announce 2018-01-29 15:08:18 +01:00
arvidn 50a293730b merged RC_1_1 into master 2018-01-29 10:20:45 +01:00
arvidn e126d7bce0 move socket_type into aux-namespace 2018-01-29 08:33:45 +01:00
arvidn 348bc2b4fe remove some uses of memset in favour of std::array. add some noexcept to sha1_hash operations 2018-01-29 03:02:06 +01:00
arvidn 9ac394f5b0 turn piece picker option flags into a proper type 2018-01-29 03:01:17 +01:00
arvidn a33c81ad33 shave down session_interface by one function, reduce the dependencies between torrent and session 2018-01-29 03:00:59 +01:00
arvidn ca3ea591df fix pad-file scalability issue 2018-01-29 03:00:37 +01:00
arvidn a50579c651 merged RC_1_1 into master 2018-01-27 09:41:54 +01:00
Alden Torres 084e980d52 avoid repeated calls to .address(), minor refactor 2018-01-27 09:22:38 +01:00
d-komarov fa03cbea9b Revise torrent state update
* Remove unused m_in_state_updates
* Update m_state_subscription comments
2018-01-27 09:17:40 +01:00
arvidn cc93f8f3a7 add switch to create pad files in test torrents in connection-tester 2018-01-27 09:17:23 +01:00
arvidn 308cbfe097 merged RC_1_1 into master 2018-01-27 02:36:55 +01:00
arvidn bc4d53c71f restore support for incoming connections over SOCKS5 (disabled by default) 2018-01-25 09:14:14 +01:00
arvidn 4fef787212 merged RC_1_1 into master 2018-01-24 00:37:05 +01:00
arvidn 2a4f056900 update documentation 2018-01-23 19:30:41 +01:00
arvidn efd096d879 use unique peer_ids per connection 2018-01-23 16:40:16 +01:00
arvidn 89c6f0b4a8 merged RC_1_1 into master 2018-01-21 15:51:22 +01:00
arvidn 0ee6b7d142 build for iOS on travis 2018-01-18 22:37:37 +01:00
arvidn 785fffd976 make url_random take a span 2018-01-15 01:49:42 -05:00
arvidn a01274ce2c broadcast socket handler take a span 2018-01-14 20:21:42 -05:00
arvidn e6eb31cfe1 minor documentation update 2018-01-15 01:06:28 +01:00
arvidn 65fef972a2 apply some c++11 modernization 2018-01-11 04:51:39 -05:00
Steven Siloti 5f25912694 remove unused infohash member in create_torrent 2018-01-11 02:43:09 -05:00
arvidn ad82be145b merged RC_1_1 into master 2018-01-08 22:52:23 +01:00
arvidn 3a9861e237 complete the error handling test and make it part of the default simulation test suite. It will run a file transfer between two clients repeatedly, each time cause another memory allocation fail, until every single memory allocation has failed once. Any invariant check failure, assertion or signal will cause the test to fail 2018-01-08 04:44:52 -05:00
arvidn 39144201db mark up performance counter operations as noexcept 2018-01-06 20:12:41 -05:00
arvidn fac9931eb6 fix noexcept marking on entry, and make move assignment 2018-01-04 19:34:42 -05:00
Alden Torres 98ade28237 using make_address instead of deprecated from_string when boost>=1.66 (#2659)
using make_address instead of deprecated from_string when boost>=1.66
2018-01-04 04:48:22 -05:00
arvidn ef5d44ea9d mark up deprecated members in torrent_status 2018-01-03 09:52:38 -05:00
arvidn 0731200149 block_size is a constant, no need in passing it around as a variable 2018-01-03 08:45:25 -05:00
arvidn b45acf28a5 improve fwd.hpp generator 2017-12-31 11:44:14 +01:00
arvidn f9968e1e90 refresh fwd.hpp 2017-12-30 21:04:06 +01:00
arvidn 672556b4b2 merged RC_1_1 into master 2017-12-30 18:17:57 +01:00
arvidn 7bfbeba947 plugin documentation update 2017-12-30 00:24:21 +01:00
arvidn c8bf782bd0 bump version number to 1.1.6 2017-12-29 15:53:51 +01:00
arvidn 00a36608b9 fix some typos 2017-12-29 02:29:42 +01:00
arvidn 8b3624b25b remove_peer() and attach_peer() error handling 2017-12-28 14:26:19 +01:00
arvidn aae12250ae support forced shutdown/destruction of torrent objects 2017-12-28 14:11:55 +01:00
arvidn 5f0c9a0c1d improve error handling during session shutdown 2017-12-28 13:52:07 +01:00
arvidn c3bdc6f825 use an intrusive linked list for peer_cache_entry instead an unordered set, to avoid heap allocations and make cache operations not able to fail. This simplifies error handling 2017-12-28 00:52:09 +01:00
arvidn a9753d3bdc merge RC_1_1 into master 2017-12-27 22:16:14 +01:00
arvidn c1abafc0cc reserve space in the undead peers list up-front, to not have to allocate memory when disconnecting 2017-12-27 21:24:16 +01:00
arvidn 69ff30f50f deprecate save_encryption_settings (they are part of the normal settings) 2017-12-27 13:39:36 +01:00
arvidn 347555ea8f handle errors in peer_connection 2017-12-26 10:39:54 +01:00
arvidn 56ca5fa63c support asio handler allocators in deferred_handler 2017-12-26 09:44:51 +01:00
arvidn 40292a1d51 don't heap-allocate handlers for incoming UDP packets 2017-12-24 11:22:30 +01:00
arvidn 753826cbb8 merger RC_1_1 into master 2017-12-23 18:15:01 +01:00
arvidn 62bf524e75 disable DHT logging with the TORRENT_DISABLE_LOGGING macros as well 2017-12-23 12:01:18 +01:00
arvidn b7decd452e add getters for peer_class_filter and peer_class_type_filter 2017-12-23 09:25:06 +01:00
arvidn a54f76d5df deprecate status_code from tracker_error_alert (it's already part of the error_code), simplify code a bit 2017-12-19 00:55:51 +01:00
arvidn d45de18ba7 merged RC_1_1 into master 2017-12-18 23:01:33 +01:00
arvidn 178281e1c5 make torrent_handler::set_priority() to use peer_classes 2017-12-18 00:56:44 +01:00
arvidn 87de08cb3d improve type safety of plugin interface 2017-12-17 23:55:12 +01:00
arvidn bb945f5cf4 introduce a proper type for pex flags to improve type-safety 2017-12-17 23:17:12 +01:00
arvidn 55babc57e6 merged RC_1_1 into master 2017-12-15 17:18:27 +01:00
arvidn d1a63cd781 fix build against boost-1.66, specifically the boost.asio changes 2017-12-15 11:29:53 +01:00
arvidn ba224a1577 restore the parse_magnet_uri overload that amends an add_torrent_params object 2017-12-14 12:20:02 +01:00
Steven Siloti 9e0a3aead1 use info hash from params instead of passing it separately 2017-12-14 10:18:33 +01:00
arvidn 7b06a5ee6e merged RC_1_1 into master 2017-12-13 12:36:35 +01:00
arvidn b00b3184c0 some minor i2p cleanups 2017-12-08 09:57:21 +01:00
arvidn c4cf7ebae6 Merge branch 'master' of https://github.com/arvidn/libtorrent 2017-12-07 18:31:26 +01:00
arvidn 90ccd5180f merged RC_1_1 into master 2017-12-07 18:31:16 +01:00
Alden Torres db61d9cc20 minor cleanup, refactor and typos (#2593) 2017-12-07 07:51:55 +01:00
arvidn f81a20a035 fix loading resume data when in seed mode 2017-12-03 23:43:55 +01:00
arvidn c16eb32b94 merge RC_1_1 into master 2017-12-03 18:12:35 +01:00
arvidn 4b467f82ac fix issue with initializing settings on session construction 2017-12-02 12:20:36 +01:00
arvidn 5ce798197c merged RC_1_1 into master 2017-12-02 11:39:23 +01:00
Alden Torres 163d13e1d2 implemented support magnet URI extension, select specific file indices for download, BEP53 (#2578) 2017-12-01 12:40:19 +01:00
Alden Torres 28f096e94e added const to static arrays, minor refactor in alert.cpp 2017-12-01 09:57:00 +01:00
arvidn f42b63c7ea update io_service forward declaration to be boost-1.66 compatible 2017-11-29 17:58:20 +01:00
arvidn a6656aeb93 generate random keys for use in tracker announces. keys are unique for each torrent and the listen interface they announce via 2017-11-29 00:10:35 +01:00
arvidn 0da2d4dca3 make sure libtorrent_assert_log is exported, when production asserts are enabled 2017-11-28 09:46:18 +01:00
Alden Torres f2681412e7 more use of const in peer_connection.cpp and minor code refactor 2017-11-28 09:45:40 +01:00
arvidn 18176ae5b3 include peer_class_type_filter in the generated reference documentation 2017-11-24 23:40:51 +01:00
arvidn 4e452c7bb6 improve peer class documentation 2017-11-24 15:33:52 +01:00
arvidn addc52706e fix typo 2017-11-23 20:53:54 +01:00
arvidn 4bc93cff38 merge RC_1_1 into master 2017-11-23 18:01:32 +01:00
arvidn 5e7666526e fix IPv6 tracker announce issue 2017-11-23 10:11:59 +01:00
Alden Torres c97bd53cde more use of const, emplace_back and minor code refactor 2017-11-20 23:45:41 +01:00
Arvid Norberg c734f42ac3
make tracker announces happen even if there are no open listen sockets (#2529)
support announcing to IPv6 trackers and running an IPv6 DHT when not listening for incoming connections
2017-11-20 23:42:22 +01:00
arvidn 30a7b52855 use a proper optional value instead of a sentiel value for bytes_left() 2017-11-19 21:25:06 +01:00
arvidn f262bbdcea use seconds32 as the retry-time for web seeds 2017-11-19 16:20:36 +01:00
arvidn 237856f7f1 more fixes of unwanted macro expansions of min/max in headers (windows.h compatibility) 2017-11-13 15:36:42 +01:00
arvidn 521587c026 make sure the cork destructor doesn't leak exceptions 2017-11-12 23:03:54 +01:00
arvidn 0378ae47f4 fix some macro expansions of 'max' in headers, to improve compatibility with windows.h 2017-11-12 23:01:47 +01:00
arvidn b6a73eeaaa simplify trigger_unchoke and trigger_optimistic_unchoke on session_impl, abd make them noexcept 2017-11-12 15:48:46 +01:00
arvidn 94dcd8e14b remove unused transaction id member of DHT observers 2017-11-12 15:46:33 +01:00
arvidn 1c278cc697 add API to query whether alerts have been dropped or not 2017-11-11 15:42:53 +01:00
arvidn 254f813626 factor out handler allocator and reuse it for posting deferred peer removals on torrents 2017-11-11 10:41:39 +01:00
arvidn b88c193742 fix sign conversion warning in peer_class_type_filter 2017-11-11 09:17:37 +01:00
Pavel Pimenov 8ac6bbe553 add http_parser::header_int (#2472) 2017-11-09 23:43:26 +01:00
arvidn fc74c032f0 minor cleanup and modernization of torrent_peer 2017-11-09 15:48:27 +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 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 f57b90b500 introduce type for torrent queue_position 2017-11-01 10:52:45 +01:00
Alden Torres 5480c08184 enable/disable the internal ip notifier with new setting (#2487) 2017-11-01 10:51:51 +01:00
Johan Gunnarsson 03b3d24ccf Install kademlia/dht_settings.hpp with Automake 2017-10-29 02:48:36 +02: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
Alden Torres ab4f140328 using NETLINK_NO_ENOBUFS to ignore ENOBUFS in netlink based ip notifier (#2475) 2017-10-26 11:15:19 +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
arvidn 9e69bf3618 introduce a type to refer to a torrent-list-index, to improve type safety 2017-10-25 13:39:37 +02:00
Alden Torres b380bf8059 minor and general code cleanup/refactor 2017-10-25 09:58:47 +02:00
Alden Torres 6409cb42e1 fix implicit-fallthrough warnings with gcc 7 2017-10-23 19:18:33 +02:00
Alden Torres bb409c5ee9 missing return if error in session_impl::on_port_mapping, doc typo (#2459) 2017-10-23 12:36:51 +02:00
arvidn 98effc8d88 minor disk_io_job piece_hash cleanup 2017-10-22 16:49:25 +02:00
Alden Torres 8083a6c2bd some code indentation, one more use of nullptr and constexpr 2017-10-15 04:30:10 +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
Alden Torres 762ae9aec4 pick standard std::aligned_union if using clang (#2447) 2017-10-15 04:29:33 +02:00
arvidn 516df740a3 make session_handle::get_torrent_status return the vector instead of taking an out-parameter 2017-10-14 23:35:35 +02:00
arvidn bb65acb082 make feature_flags proper type-safe 2017-10-14 23:33:48 +02:00