Commit Graph

3351 Commits

Author SHA1 Message Date
Arvid Norberg 6e55c0564f suppress shift warnings in boost (#811)
suppress shift warnings in boost
2016-06-12 21:14:21 -04:00
Arvid Norberg 0dcdf79dbf re-arrange flags enums in add_torrent_params (#810) 2016-06-12 21:12:48 -04:00
arvidn dfc2206b9f merged RC_1_1 into master 2016-06-11 01:00:41 -04:00
Arvid Norberg 5ecd00c5c5 fix osx build (#804)
fix osx build with asserts enabled
2016-06-11 00:48:13 -04:00
Arvid Norberg 327af3a69e optimize allow-fast logic (#800)
optimize allow-fast logic
2016-06-10 01:24:37 -04:00
Arvid Norberg 404d72b9b7 revert handshake round-trip optimization (#797)
revert handshake round-trip optimization. it prevents taking advantage of FAST extensions since the bitfield is sent before receiving the other peer's handshake
2016-06-10 01:14:37 -04:00
Arvid Norberg 830a79dbcf optimize allow-fast logic (#800)
optimize allow-fast logic
2016-06-09 08:02:41 -04:00
Arvid Norberg 5eaf713d1f revert handshake round-trip optimization (#797)
revert handshake round-trip optimization. it prevents taking advantage of FAST extensions since the bitfield is sent before receiving the other peer's handshake
2016-06-07 21:45:48 -04:00
Alden Torres 9d3cf5e68b changed min_distance_exp for correctness and clarity (#789)
changed min_distance_exp for correctness and clarity
2016-06-06 18:22:33 -04:00
Alden Torres 3d5e0144c7 consider macro TORRENT_USE_IOSTREAM for sha1_hash iostream operators (#790) 2016-06-05 23:55:42 -04:00
Arvid Norberg 223f24ca27 some cleanup and transition to std::unique_ptr (#786)
some cleanup and transition to std::unique_ptr
2016-06-05 14:07:24 -04:00
Arvid Norberg ae3b629649 improve invariant check of file_progress class (#787) 2016-06-05 14:06:11 -04:00
arvidn 8baf4f810a fix graceful pause issue 2016-06-04 21:35:12 -04:00
arvidn edf9f8070d merged RC_1_1 into master 2016-06-04 14:09:19 -04:00
Alden Torres db65eb320a making dht counters additive (#783)
make dht counters additive to support both IPv4 and IPv6
2016-06-04 14:04:29 -04:00
Arvid Norberg fa8232cd13 remove some old cruft and defines (#785)
remove some old cruft and defines
2016-06-04 10:03:13 -04:00
Arvid Norberg 8c8f5bb03b deprecated public to_hex() and from_hex() functions (#784) 2016-06-04 10:01:43 -04:00
Arvid Norberg 3624ce6cfd fixed crash on invalid input in http_parser (#782)
fixed crash on invalid input to http_parser
2016-06-04 09:53:23 -04:00
Alden Torres 7c4d92a627 Share the DHT storage for both IPv4 and IPv6 (#762) 2016-06-03 19:44:16 -04:00
Arvid Norberg be67553897 simplify session pause mechanism by keeping two separate states in torrents and having the session explicitly tell torrents when it's pausing (#779) 2016-06-03 07:32:48 -04:00
Alden Torres 42a9022065 Refactor of listen alerts for separated fields address and port (#778)
Refactor of listen alerts for separated fields address and port
2016-06-02 22:38:56 -04:00
Alden Torres cdd067fe4e Minor cleanup (#775)
Minor cleanup
2016-06-02 07:25:06 -04:00
Arvid Norberg 14d085f607 rename allow_peers to paused (#773) 2016-06-01 01:05:32 -04:00
Arvid Norberg 92cd0ec7d1 simplify and clean up peer_list usage in torrent.cpp (#772) 2016-06-01 01:05:17 -04:00
arvidn ec182492cc improve add_torrent_params::flags documentation and fix related logging bug 2016-05-30 16:36:44 -07:00
Arvid Norberg 0583394af7 remove dependency on libtommath and use boost.multiprecision instead
remove dependency on libtommath and use boost.multiprecision instead
2016-05-30 14:33:24 -04:00
arvidn 7795b2ff6c merged RC_1_1 into master 2016-05-29 10:01:55 -07:00
Arvid Norberg b3bbb2f0f6 upgrade libtommath to 1.0 (#765)
upgrade libtommath to 1.0
2016-05-28 17:12:26 -04:00
arvidn 420b5f51e6 merged RC_1_1 into master 2016-05-27 12:35:53 -07:00
arvidn 67a497834a back-port extra checks in pe_crypto from master 2016-05-27 09:51:06 -07:00
Arvid Norberg 6936405518 add more sanity checks to pe_crypto (#761) 2016-05-27 12:39:03 -04:00
Alden Torres f8dcf30b2e Ported support for magnet x.pe parameter from master (#760) 2016-05-27 12:12:32 -04:00
Alden Torres 313006b8c7 Added support for x.pe parameter in parse_magnet_uri (#755) 2016-05-26 13:34:13 -04:00
Arvid Norberg d0a870b3dd produce valid bencoded strings for undefined/uninitialized entry objects (#756) 2016-05-26 03:33:05 -04:00
Arvid Norberg 96999ad67f replace uses of boost::bind with std::bind and lambdas (#745) 2016-05-25 00:31:52 -04:00
arvidn 98eabc63e9 using _WIN32 appears safer than WIN32 2016-05-23 23:02:52 -04:00
arvidn 0ce5a4c664 improve robustness in natpmp code a bit 2016-05-23 22:46:46 -04:00
Arvid Norberg 748af6eec1 general cleanup. remove valgrind markup, log_hash_failures and C headers (#752)
general cleanup. remove valgrind markup, log_hash_failures and C headers
2016-05-23 08:15:39 -04:00
arvidn f1216686d2 merged RC_1_1 into master 2016-05-23 00:56:16 -04:00
arvidn f6b18c7097 improve documentation for alert_cast 2016-05-22 20:35:04 -04:00
Arvid Norberg cf3c95702b Peer blocked alert (#747)
make peer_blocked_alert derive from peer_alert
2016-05-22 19:56:14 -04:00
Arvid Norberg 584d74e2f0 fix union storage hacks (#670)
remove union storage hacks
2016-05-21 21:04:47 -04:00
Arvid Norberg dceee3b065 simplify session call and replace session_handle and torrent_handle macros (#741)
remove use of macros in session_handle and torrent_handle forwarders
2016-05-21 19:05:42 -04:00
arvidn aa0d29b67d merged RC_1_1 into master 2016-05-19 01:28:22 -04:00
Arvid Norberg 178a41b187 clean up natpmp logging infrastructure a bit as well as test_peer_list (#735)
clean up natpmp logging infrastructure a bit as well as test_peer_list
2016-05-18 01:54:37 -04:00
Arvid Norberg e8380e1d0b factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows (#732) 2016-05-17 09:24:06 -04:00
Arvid Norberg a604e68f11 System noexcept 1.1 (#715)
fix building with boost that doesn't define BOOST_SYSTEM_NOEXCEPT
2016-05-17 01:23:58 -04:00
Arvid Norberg 44a668db62 build with gcc/mingw on appveyor (#722)
enable gcc/mingw builds on appveyor. Some mingw tests crash currently, they need debugging and are currently disabled.
2016-05-15 13:28:22 -04:00
Arvid Norberg 1e7e01c671 transition to system_error as the exception type (#730)
transition to system_error as the exception type
2016-05-15 00:33:06 -04:00
Arvid Norberg 167cbe74b5 made alerts move-only and remove dispatch function and other deprecated alert functions requiring alert to be copyable (#721) 2016-05-13 08:19:44 -04:00
arvidn 7c108e6c19 merged RC_1_1 into master 2016-05-09 00:30:30 -04:00
Arvid Norberg 5bedf3e7b3 post add_torrent_alert before any other torrent alert (#717)
post add_torrent_alert before any other torrent alert
2016-05-08 23:48:27 -04:00
Arvid Norberg 98bbeb68b8 transition some standard integer types from boost to std (#711) 2016-05-08 16:10:49 -04:00
Arvid Norberg a4beb287ee attempt fo fix msvc warning and built tests with warnings-as-errors (#710)
fix msvc warnings and built tests with warnings-as-errors
2016-05-08 09:58:13 -04:00
Arvid Norberg 29902be3a0 some general C++ 11 cleanup. some typedefs and for loops (#709) 2016-05-07 18:46:42 -04:00
Arvid Norberg 8922990fc7 fix peer class leak in torrent and widen peer_class_t to allow for mo… (#707)
fix peer class leak in torrent and widen peer_class_t to allow for more instances
2016-05-07 14:52:10 -04:00
arvidn eee790d0c9 fix warning 2016-05-07 01:34:54 -04:00
arvidn 6cf5ac9dd1 merged RC_1_1 into master 2016-05-06 01:08:05 -04:00
Arvid Norberg 985436636e added new preformatted type to bencode entry (#698)
added new preformatted type to bencode entry to support carrying a verbatim copy of an already bencoded subtree. This is to support saving torrents in resume data and create_torrent based on existing torrents, in order to preserve key order
2016-05-05 21:38:57 -04:00
Arvid Norberg f9bc6dbc54 improvements to socks5 support (for 1.1.1 release) (#567)
capture listen IP and port from socks5 BIND response. add tests for socks5 and improve support for capturing the local endpoint (i.e. bind port) for BIND command socket connections. post listen_succeeded_alert when successfully bound to listen socket on SOCKS5 proxy. make sure to announce the socks5 listen port
2016-05-05 17:09:11 -04:00
Steven Siloti fa693174e7 move vectors into alerts (#699) 2016-05-04 09:50:44 -04:00
Arvid Norberg 3d42c70cae remove c++98 cruft from allocating handler (#697) 2016-05-04 01:47:45 -04:00
Arvid Norberg c6369194f0 simplify and optimize DHT routing table IP distance comparison (#696) 2016-05-03 23:22:25 -04:00
Arvid Norberg 8bf038eeb6 update single-threaded invariant check for C++11 (#695) 2016-05-03 08:37:09 -04:00
Arvid Norberg 077e9bb10c improve node-id operations (#693)
improve node-id operations, to operate on 32 bits at a time instead of 8. move out some code into sha1_hash.cpp, from the header file
2016-05-03 08:29:27 -04:00
Arvid Norberg f56c1f8b2f remove mutex from tracker_manager (#690)
remove mutex from tracker_manager
2016-05-02 22:22:13 -04:00
Arvid Norberg c91a700c07 Msvc warnings (#685)
fix msvc warnings and build examples with warnings-as-errors
2016-05-02 12:36:21 -04:00
Arvid Norberg 0d2c04cb2e remove network thread pool feature (#688)
remove network thread pool feature (it was messy and mostly useful for bittorrent over SSL). The proper solution is to allow every peer run in its own asio strand and have multiple threads running the io service
2016-05-02 02:18:51 -04:00
Alden Torres 8ae1e9a21d Moved disabled_storage and zero_storage for a private namespace in the compilation unit (#687) 2016-05-01 23:16:00 -04:00
Alden Torres b85b501d92 Using address::is_multicast instead util function (#686) 2016-05-01 18:15:25 -04:00
arvidn 60c119c52d remove mutex in natpmp 2016-05-01 12:28:16 -04:00
arvidn accf13d93e remove mutex in upnp 2016-05-01 12:24:54 -04:00
Arvid Norberg 0d5428a664 minor refactoring to move-storage patch (#680)
minor refactoring to move-storage patch
2016-05-01 12:23:02 -04:00
Arvid Norberg 53ca04036e Merge pull request #681 from ssiloti/entry-move
add move ctor to entry
2016-05-01 10:12:18 -04:00
arvidn 78bc269832 use std::chrono and not boost::chrono 2016-05-01 08:50:30 -04:00
arvidn fc4cc9e7ee make the cached current time thread-safe 2016-05-01 08:50:23 -04:00
Arvid Norberg 770afadcda use std::atomic instead of boost::atomic (#678)
use std::atomic instead of boost::atomic
2016-05-01 03:38:35 -04:00
Arvid Norberg a3de04dffc Merge pull request #675 from ssiloti/unique_ptr
Use unique_ptr where possible
2016-05-01 01:31:04 -04:00
Steven Siloti f0b92a2047 add move ctor to entry 2016-04-30 21:02:22 -07:00
Steven Siloti ff0675e64e use standard array container (#676) 2016-04-30 23:10:47 -04:00
Vladimir Golovnev 64cb8b236a Move storage "file-by-file" (#632)
When moving storage for a torrent, only move files belonging to the torrent, one by one.
2016-04-30 22:18:38 -04:00
Steven Siloti 2c00a613b2 use unique_ptr to network_thread_pool 2016-04-30 16:49:21 -07:00
Steven Siloti 0682e6146c use a unique_ptr for the udp_socket receive buffer 2016-04-30 16:49:21 -07:00
Steven Siloti bca41a681f update comments regarding converting shared_ptr to unique_ptr 2016-04-30 16:49:21 -07:00
Steven Siloti 82b599aa4b fix warning for signed/unsigned comparison 2016-04-30 16:49:21 -07:00
Arvid Norberg 20b41ad0b9 Threads (#671)
use std::thread, std::mutex, std::condition_variable instead of pulling them in from boost.asio internals.
2016-04-30 18:54:23 -04:00
Arvid Norberg 98fb7df56f use standard unordered containers (#673) 2016-04-30 16:53:20 -04:00
Arvid Norberg 4e97bf556c use override and final keywords (unconditionally) (#668)
use override and final keywords instead of macros.
2016-04-30 11:05:54 -04:00
Arvid Norberg f856b6bbe3 dial up cppcheck (#663)
increase cppcheck coverage and make sure there are no warnings
2016-04-30 00:24:45 -04:00
arvidn 36a5a11ee2 merge fix 2016-04-29 23:34:25 -04:00
Arvid Norberg f0d95f5e3e remove RSS feature (#662)
remove RSS feature
2016-04-29 15:54:21 -04:00
Arvid Norberg 84a35f5265 clean up settings_pack (#665) 2016-04-29 12:01:33 -04:00
Arvid Norberg 46b33f920b remove explicit cache feature (#661)
remove explicit cache feature
2016-04-29 02:32:00 -04:00
Arvid Norberg c3e1e405b2 remove variadic template emulation for c++98, and introduce emplace_back to heterogeneous_queue as well, to avoid all moves of alert objects (#658) 2016-04-28 10:30:29 -04:00
Arvid Norberg 10ec0234a7 remove resolve-country feature (#656) 2016-04-28 08:20:47 -04:00
Arvid Norberg 5f5aa2361e use array_view more along the udp packet paths (#655) 2016-04-28 08:20:10 -04:00
Alden Torres 99e5db1925 Missing <map> include in add_torrent_params.hpp (#653) 2016-04-27 12:27:52 -04:00
Arvid Norberg c557432431 attempt to run cppcheck on travis (#644)
run cppcheck on travis
2016-04-26 18:09:11 -04:00
Alden Torres 96b7d3ad46 Removed unused alert_observer.hpp (#646) 2016-04-26 11:48:43 -04:00
Alden Torres d08bbbc0cc Added asserts related to total_size in create_torrent (#642) 2016-04-26 00:37:47 -04:00
Arvid Norberg 3c785b96fc Merge pull request #268 from ssiloti/dht-ipv6
Support DHT over IPv6
2016-04-25 19:19:48 -04:00
Andrei Kurushin 62eb956c54 fix x64 build with VS2015 UP2 compiler (#640)
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
Arvid Norberg bbf411800a remove pre-C++11 threadsafe static emulation (#641) 2016-04-25 08:38:48 -04:00
arvidn 3121334346 restore session_time 2016-04-24 18:27:40 -04:00
Steven Siloti 2d9a6b76f1 use asio::protcol instead of an enum/bool 2016-04-24 15:18:47 -07:00
Steven Siloti 2abd9867ce IPv6 DHT support
Fixes #110
2016-04-24 14:26:57 -07:00
Steven Siloti 356d2506bd extend dht_observer to support IPv6 external addresses 2016-04-24 14:26:57 -07:00
Steven Siloti 11fa4f3e47 support IPv6 in node_entry and m_ips 2016-04-24 14:26:57 -07:00
arvidn b5ecfa4f91 fix merge issues 2016-04-24 16:43:45 -04:00
arvidn dec093dc1a Merge branch 'RC_1_1' 2016-04-24 15:41:28 -04:00
Arvid Norberg 7251575d98 This patch does: (#633)
1. simplifies and regularizies creation of listen sockets based on the listen
   interfaces setting.
2. simplifies and improves the behavior of UDP sockets, which are now explicitly
   opened per listen interface
3. transitions udp tracker, DHT and uTP socket manager over to using the new
   udp sockets
4. greatly simplified udp_socket to only wrap a single underlying socket (as
   opposed to one IPv4 and IPv6 socket)
5. improved behavior of bind-to-device
6. introduce an array_view type to make udp packet passing code simpler
7. simplify and make setting of DF flag more robust
8. simplify and regularize port mapping of listen sockets
2016-04-24 15:26:28 -04:00
Arvid Norberg c9c6dd2d3b clean up the annotations used for asio debugging (#639)
clean up the annotations used for asio debugging (tracking outstanding async operations)
2016-04-23 17:29:25 -04:00
arvidn ed5673bf5c attempt to make session_time() not return negative numbers 2016-04-23 09:42:32 -04:00
Alden Torres 6171c911a0 Added assert for total_size in create_torrent (#636) 2016-04-22 13:51:06 -04:00
Alden Torres 3c40cacd5b Documentation typos and minor include cleanup (#635) 2016-04-21 15:39:53 -04:00
arvidn 04a3c04075 merged RC_1_1 into master 2016-04-20 08:08:05 -04:00
Arvid Norberg 423ee1cef4 move some implementation details of bitfield into its own translation unit to not expose MMX and SSE internals (and fix shared linking) (#630) 2016-04-20 07:50:57 -04:00
Andrei Kurushin c41ab094be fix release build with VS2015 UP2 compiler warnings for: examples, test, tools (#627)
fix release build with VS2015 UP2 compiler warnings for: examples, test, tools
2016-04-20 00:45:32 -04:00
Alden Torres 0fddd403b2 Better api for peers() method in dht_get_peers_reply_alert (#628) 2016-04-19 16:16:51 -04:00
Andrei Kurushin 7b5d48c02a fix default release build with VS2015 UP2 compiler warnings (#624)
* fix default release build with VS2015 UP2 compiler warnings
this will allow to successfully build:
bjam toolset=msvc-14.0 release deprecated-functions=off character-set=unicode link=static warnings-as-errors=on
2016-04-17 16:56:07 -04:00
Alden Torres a73d424b82 typos 2016-04-15 15:39:41 -04:00
arvidn 774ea740b4 make session_time return uint16_t 2016-04-14 19:22:27 -04:00
Alden Torres f23cf84664 Disable preadv/pwritev for android 2016-04-13 00:08:08 -04:00
Alden Torres 4292cfbf04 Missing alert categories and support for dht_get_peers_reply_alert in python binding 2016-04-11 14:20:50 -04:00
arvidn d17ae19391 Merge branch 'RC_1_1' 2016-04-11 02:08:06 -04:00
arvidn 08edf43b3f fix to documentation generation to exclude private functions. fix makefile errors 2016-04-09 00:33:26 -04:00
arvidn 57d619eec7 update revision 2016-04-08 22:43:49 -04:00
arvidn 867b83ccda merged RC_1_1 into master 2016-04-08 02:20:24 -04:00
Arvid Norberg 774735b046 Merge pull request #600 from arvidn/python-warnings-1.1
fix some build warnings in python binding
2016-04-08 02:17:45 -04:00
arvidn 5c17dc9f31 fix some build warnings in python binding 2016-04-07 22:45:23 -04:00
arvidn cee2b16949 fix some coverity warnings and move out code to torrent_status.cpp 2016-04-07 21:44:24 -04:00
arvidn 876cef0d4c restore the ipv6 http tracker argument, but restricted to only private torrents 2016-04-07 00:06:04 -04:00
Alden Torres 6d16811bae Minor documentation fix 2016-04-06 16:54:19 -04:00
Arvid Norberg f5c3c6addc Merge pull request #581 from ssiloti/sockopt-levels-1.1
apply {get,set}_option to the appropriate socket based on the option'…
2016-04-04 23:10:21 -04:00
Arvid Norberg d0edcaf632 Merge pull request #584 from arvidn/python-sharedptr-1.1
fix python GIL issue
2016-04-04 17:29:45 -04:00
Steven Siloti 4949721389 apply {get,set}_option to the appropriate socket based on the option's level
This avoids spurious errors being returned when trying to apply IPv4 options to
the IPv6 socket and vice-versa.
2016-04-04 13:45:06 -07:00
arvidn 90efec5d19 fix python GIL issue when passing in a torrent_info object that later gets destroyed from within libtorrent 2016-04-03 23:50:06 -04:00
Alden Torres bb8d1d0e56 Revert utp log file to disable by default
Documentation typos
2016-04-03 22:32:06 -04:00
arvidn 31805ecec0 fix some clang build warnings 2016-04-02 12:27:42 -04:00
arvidn 9c712421c6 add missing include file to makefile 2016-03-30 01:46:33 -04:00
arvidn fd4a46342f merge RC_1_1 into master 2016-03-30 00:33:29 -04:00
arvidn 7649610807 fix test_optimistic_unchoking sim 2016-03-27 18:40:53 -04:00
arvidn 3e7a6b03e5 remove dead code in peer_connection 2016-03-21 18:47:17 -04:00
Arvid Norberg a5af3b0dc5 Merge pull request #563 from arvidn/no-compact-1.1
remove remaining references to storage_mode_compact
2016-03-20 23:20:19 -04:00
arvidn b16f43132b Merge branch 'RC_1_1' 2016-03-20 20:39:49 -04:00
arvidn e8693465a5 remove more references to compact storage allocation 2016-03-20 19:14:46 -04:00
arvidn f5c112eefc remove remaining references to storage_mode_compact (since it's been deprecated for quite a while now, and no longer implemented) 2016-03-20 18:25:24 -04:00
arvidn 0095aa084f make coalesce reads and coalesce writes actually work 2016-03-20 16:34:19 -04:00
Arvid Norberg db214cc92d Merge pull request #559 from arvidn/direct-io-1.1
remove unused O_DIRECT mode
2016-03-20 14:42:58 -04:00
arvidn 139fb29647 remove unused O_DIRECT mode, and relax/simplify alignment requirements for coalesce_buffers 2016-03-20 00:55:31 -04:00