Commit Graph

2992 Commits

Author SHA1 Message Date
Arvid Norberg 50ccce6eed Merge pull request #174 from arvidn/fallocate-hack
remove fallocate hack (in master)
2015-09-22 07:18:07 -07:00
arvidn 5bdb583162 remove fallocate hack (in master) 2015-09-21 20:22:19 -07:00
Arvid Norberg 3e37785280 Merge pull request #152 from thomas-yuan/mutable-expiration
make immutable/mutable items lifetime configurable.
2015-09-21 20:20:53 -07:00
arvidn dc77da5630 fix build 2015-09-21 20:19:05 -07:00
Thomas Yuan 7fec9e488d make immutable/mutable items lifetime configurable. 2015-09-21 20:32:37 -04:00
Arvid Norberg 01193fcf7c Merge pull request #163 from aldenml/dht-storage-counters
Create dht_storage_counters to avoid internal counter in future public API
2015-09-21 13:51:39 -07:00
Alden Torres 25ed70b977 Create dht_storage_counters to avoid internal counter in future public API. 2015-09-21 07:46:23 -04:00
arvidn fb2f659a31 fix bug in time keeping of active_time, seeding_time, finished_time etc. 2015-09-21 00:38:56 -07:00
arvidn 2715ae475c expose whether torrents are announcing to trackers, lsd and dht. these can be disabled by the queuing logic 2015-09-19 01:54:47 -04:00
arvidn b628692223 separate out announce_entry and torrent_status into their own headers 2015-09-18 08:08:08 -04:00
Alden Torres e2d682275a Implementing and using new dht storage interface 2015-09-16 08:30:27 -04:00
Thomas Yuan bee620b4f1 Fix routing_table bucket_size(int bucket) out_of_range logic error. 2015-09-10 17:19:00 -04:00
Arvid Norberg abe994c191 Merge pull request #128 from thomas-yuan/patch2
Add read-only support in dht_settings and outgoing query messages.
2015-09-08 19:47:18 -04:00
Thomas Yuan d6bb387ab9 Use dht_settings directly instead of add a read_only member variable.
Since rpc_manager has a reference of dht_settings, needn't pass it
as a parameter for incoming().
2015-09-08 10:35:30 -04:00
arvidn ee3cb6cf86 move some internal headers to aux_ to fix documentation 2015-09-07 17:00:27 -04:00
Thomas Yuan 3d4ed9f37f Add read-only support in dht_settings and outgoing query messages. 2015-09-07 14:24:46 -04:00
arvidn 113e84e7f6 fix appveyor build 2015-09-07 02:34:14 -04:00
arvidn 17c5759829 disable warning for unused command line argument and fix warnings. remove redundant travis build config. use new preprocessor on clang to avoid warnings 2015-09-06 22:55:41 -04:00
arvidn b45c585a78 use gcc on linux and clang on osx 2015-09-06 22:55:41 -04:00
arvidn 536a5f897a update queuing documentation and regenerate html 2015-09-06 18:14:06 -04:00
arvidn cb65694578 fix const correctness in xml_parse(). update unit tests rss and upnp to use new signature for parser callback 2015-09-06 00:38:33 -04:00
arvidn a344c659e5 Revert "use handler allocator for UDP socket read handler"
This reverts commit 3ccb4f7dca.
2015-09-03 07:29:24 -04:00
arvidn 918aca9083 fix typo 2015-09-03 00:16:52 -04:00
randy-waterhouse 693586f23e Fix makefile.am allocating_handler.hpp call. 2015-09-03 08:48:59 +12:00
arvidn 3ccb4f7dca use handler allocator for UDP socket read handler 2015-09-02 01:15:02 -04:00
Arvid Norberg 915e56022b Merge pull request #127 from thomas-yuan/master
Fix dht_immutable/mutable_item_alert category.
2015-09-01 20:54:52 -04:00
Thomas Yuan 90e13e05f5 Fix dht_immutable/mutable_item_alert category. 2015-09-01 11:31:46 -04:00
Arvid Norberg 7285520521 Merge pull request #117 from thomas-yuan/master
Fix bug caused by RP #96.
2015-08-31 23:49:08 -04:00
Thomas Yuan ef16ae4e27 Handle response with unexpected format. 2015-08-31 22:37:46 -04:00
arvidn f719b95f64 fix build issue 2015-08-31 00:54:16 -04:00
arvidn 4536f2c293 fix typo 2015-08-31 00:36:43 -04:00
arvidn a0c9fafd39 factor out handler_storage and allocating handler helper classes for allocating asio handlers in-place in peer objects 2015-08-31 00:17:42 -04:00
arvidn b4381aa646 add unit test for linked_list 2015-08-30 23:34:49 -04:00
arvidn 2382dd8d61 remove TODO comment 2015-08-30 20:41:21 -04:00
arvidn 0d9d632465 initial support for disabling proxy for tracker connections 2015-08-29 19:44:54 -04:00
arvidn 0ee4e46b49 attempt to fix tracker test 2015-08-29 17:57:49 -04:00
arvidn ba95aa27d6 cleanup unused code 2015-08-29 16:07:19 -04:00
arvidn 0f760d3fb4 expand tracker unit test to assert the session correctly receives the right peers 2015-08-29 16:04:35 -04:00
arvidn 5757b0ad13 polish some behavior when setting piece and file priorities for torrents with no metadata. Fix the initialization order of peers once we do get the metadata 2015-08-29 10:21:15 -04:00
Thomas Yuan b26d08c66a Remove unnecessary selection statements. 2015-08-26 11:26:21 -04:00
Steven Siloti 4b702701b2 exclude obsolete compatibility code on msvc-14 and later 2015-08-24 07:28:16 +02:00
arvidn 82a3683f7d polish removal of web seeds logic 2015-08-23 11:01:55 +02:00
arvidn d43af6e3b7 remove functionality to initiate MTU based on the MTU on the nic (this is error prone and has questionable value) 2015-08-22 08:09:09 +02:00
arvidn a42f9e0c63 fix more warnings 2015-08-22 00:28:12 +02:00
arvidn 42fdd0f896 fix some more warnings 2015-08-21 22:56:57 +02:00
arvidn 4873004df7 warnings as errors 2015-08-21 14:52:07 +02:00
arvidn 904da120d7 fixed some warnings 2015-08-20 22:28:00 +02:00
arvidn 40a67ecbc8 fix unknown pragma warning on msvc 2015-08-20 21:14:39 +02:00
arvidn 8cf8e65861 turn linked_list into a template to improve type safety and remove some casts 2015-08-20 02:02:46 +02:00
arvidn ffa870d280 fixed some GCC warnings 2015-08-20 01:33:20 +02:00
arvidn bd177a857f make tailequeue a template, introduce type safety, remove old-style casts 2015-08-19 15:22:05 +02:00
arvidn a3608a39fe fix some warnings 2015-08-19 02:00:46 +02:00
Arvid Norberg 6bcac425f1 Merge pull request #95 from arvidn/postpone_dht_start
DHT router name lookups
2015-08-19 01:44:26 +02:00
arvidn 5c8fc818c1 fix more warnings 2015-08-19 01:39:01 +02:00
arvidn 347d976a70 since starting the DHT can be delayed now, also cache dht nodes added while waiting 2015-08-18 23:35:27 +02:00
arvidn cc4368b45a attempt to postpone DHT until all outstanding dht router name lookups complete 2015-08-18 22:56:00 +02:00
arvidn a3c4a0a3e6 attempt to fix msvc build 2015-08-18 21:40:22 +02:00
arvidn 8d8c049d9e fix warnings and invalid defines in disk_io_thread.cpp 2015-08-18 07:55:50 -04:00
arvidn f6b86dc4b5 add typesafety to piece_picker torrent_peer pointers. and fix a few incorrect uses 2015-08-18 04:25:13 -04:00
arvidn eecdd3121d fix some build warnings 2015-08-17 09:01:43 -04:00
arvidn b1a3a36eae remove some old leftover code from upnp 2015-08-16 12:21:39 -04:00
arvidn 16bb2de6ed fix some warnings 2015-08-13 23:52:25 -04:00
arvidn 225b82d9a0 move test_trackers_extensions over to a simulation and some minor metadata extension and tracker re-announce fixes 2015-08-13 23:07:04 -04:00
Arvid Norberg 68bc4f2cf4 Merge pull request #12 from mlt/wip/i2p
Few i2p fixes
2015-08-13 21:55:27 -04:00
Alden Torres d60ddf6786 Minor change: #ifdef -> #if 2015-08-13 18:43:58 -04:00
Alden Torres 9e29eb9978 Introduced TORRENT_UTP_LOG_ENABLE macro to guarantee that TORRENT_UTP_LOG and TORRENT_VERBOSE_UTP_LOG are always defined (no need to change a lot of macro if). 2015-08-13 18:43:58 -04:00
Alden Torres 12fb68e8e3 Refactor of utp stream logging functions.
Renamed utp-stats option to utp-log.
2015-08-13 18:43:58 -04:00
Alden Torres 02afc8b640 Added utp-stats bjam option to enable utp stream log (utp.log file). 2015-08-13 18:43:58 -04:00
arvidn d2819cd1b9 fix uninitialized variable in test_pe_crypto simulation 2015-08-12 20:18:47 -04:00
Alden Torres b303a36ac2 Removed unnecessary full namespace reference to udp::endpoint in new dht_direct_request feature.
Add default value to userdata argument in dht_direct_request.
Minor spelling fix.
2015-08-12 00:49:09 -04:00
Alden Torres 2457b16d09 Documented that portmap_log_alert is only posted if port_mapping_log_notification is enabled. 2015-08-12 00:10:32 -04:00
Alden Torres 1805c96f44 Created a new port_mapping_log_notification alert category to separate portmap_log_alert. 2015-08-12 00:07:08 -04:00
Steven Siloti 1b4b1c4403 fix error handling for DHT direct requests 2015-08-10 20:33:05 -07:00
Steven Siloti 135f4761e1 add more comments about DHT direct requests 2015-08-10 20:33:04 -07:00
Steven Siloti 8e00172af7 return a bdecode_node rather than taking one by reference 2015-08-10 20:33:04 -07:00
Steven Siloti 43dc784cf2 add direct_request.hpp to Makefile.am 2015-08-10 20:33:04 -07:00
Steven Siloti 3564562dab pass raw buffer in dht_direct_response_alert 2015-08-10 20:33:04 -07:00
Steven Siloti 182c30f2d6 fix typo in class name 2015-08-10 20:33:04 -07:00
Steven Siloti 86fd8c3048 enable arbitrary direct dht requests and extension dht requests
If you're wondering why I used an alert for handling responses but not requests,
it's because the former was easy to do that way but the latter would have
involved some major refactoring or kludging. The DHT node is written with the
(IMO reasonable) assumption that all responses will be generated immediately, so
there was no way to easily accommodate getting a response asynchronously via
an alert.
2015-08-10 20:33:04 -07:00
Steven Siloti a29e64965c add some basic operators to peer_connection_handle 2015-08-10 20:33:04 -07:00
arvidn a81ca2391b fix some warnings 2015-08-10 20:03:24 -04:00
arvidn d977f2e68f attempt to make appveyor happy 2015-08-09 17:54:10 -04:00
arvidn 4fa0aa62da simulate IP routes, interfaces and page size when building in simulation mode 2015-08-09 15:01:01 -04:00
arvidn 6068418def fix and re-enable simulations 2015-08-09 00:56:37 -04:00
arvidn 1c1698459c fix warnings 2015-08-08 22:53:11 -04:00
Arvid Norberg 27c5a28637 Merge pull request #70 from thomas-yuan/master
Call callback function immediately when get data for mutable data.
2015-08-08 21:51:18 -04:00
Thomas e51b61870a Call callback function immediately when get mutable data. 2015-08-08 20:28:53 -04:00
arvidn 72286eb0dc minor asio.ssl abstraction cleanup. update libsimulator with build fix. only run simulator on one of the build variants on travis, since the simulator does not support ssl 2015-08-08 16:19:44 -04:00
arvidn 50925d7652 fix some more warnings 2015-08-08 02:48:01 -04:00
arvidn 46803b75f8 support building libtorrent in simulation mode (using libsimulator, which is a git submodule) 2015-08-07 21:31:59 -04:00
arvidn a91e7ce25d fix warnings 2015-08-06 02:30:06 -04:00
Alden Torres eef9f16b3b Removed unused flag bandwidth-limit-logging and related code. 2015-08-04 01:47:15 -04:00
Alden Torres cd8a4d2511 Moved TORRENT_DISK_STATS to default_storage with the option of enable/disable at runtime. 2015-08-03 18:16:43 -04:00
arvidn e0c3d28321 fix some warnings 2015-08-02 15:55:05 -04:00
arvidn bb64887f30 merge total wanted fix from RC_1_0 2015-08-02 15:18:21 -04:00
arvidn 655a3ae019 fix some warnings 2015-08-01 23:57:11 -04:00
arvidn 990aabe36f fix warnings and no-deprecated functions build 2015-08-01 19:55:36 -04:00
Steven Siloti 30e43a6595 add default NULL ctor to session_handle 2015-08-01 15:48:32 -07:00
arvidn 52b4aed466 merge bdecode patch from RC_1_0. an empty string now produces an error rather than an empty bdecoded struct 2015-07-30 21:29:22 -04:00
arvidn 75dc8b7997 fix python binding build with no deprecated functions 2015-07-27 23:09:24 -07:00
arvidn 7f695f05d5 use boost.asio as headers only library again (simplify builds and hopefully fix shared linking of python module on gcc linux) 2015-07-27 23:09:24 -07:00
arvidn 1a4c017ec5 merged torrent_info constructor fix (python bindings) from RC_1_0 2015-07-25 16:40:07 -07:00
Arvid Norberg 742548b69c Merge pull request #49 from ssiloti/plugin-exported-api
Only use exported types in the plugin api
2015-07-25 15:53:22 -07:00
Steven Siloti e6b3df3696 pass torrent_handle by const ref in the plugin api 2015-07-25 09:57:55 -07:00
Steven Siloti 72dcc20073 pass peer_connection_handle by const ref in the plugin api 2015-07-25 09:15:24 -07:00
Steven Siloti e0e06bc87a switch to peer_connection_handle for optimistic unchoking
This is necessary to enable external plugins since the vector is passed to
plugins via on_optimistic_unchoke.
2015-07-23 20:48:35 -07:00
Steven Siloti 2c1f24c036 switch to session_handle in plugin api 2015-07-23 20:13:32 -07:00
Steven Siloti fbc67b4e21 switch to torrent_handle in plugin api 2015-07-23 19:52:23 -07:00
arvidn bb705e9a52 improved seed-mode handling (seed-mode will now automatically be left when performing operations implying it's not a seed). fixed issue with file priorities and override resume data 2015-07-21 10:12:37 -07:00
Arvid Norberg a1b73317ce Merge pull request #37 from jpetso/master
Progress towards a workable CMake build
2015-07-20 09:49:37 -07:00
arvidn 6c5aec3476 fix request queue size performance issue 2015-07-20 08:20:17 -07:00
arvidn 9231476ac6 employ variadic templates and perfect forwarding for peer connection asio handler allocator 2015-07-20 06:44:58 -07:00
arvidn 2439ec55c1 clean up in utp_stream.hpp 2015-07-17 22:01:45 -04:00
arvidn 7b379b1740 improve documentation for protocol encryption 2015-07-17 21:59:10 -04:00
Jakob Petsovits 2a22ecfcce Remove unused mentions of non-existent class. 2015-07-17 20:13:14 -04:00
arvidn 7a3cabfe12 fixed some resume issues, specifically around file priorities and override resume data 2015-07-16 21:56:06 -04:00
arvidn a65b71b855 improve logging of adding peers and the state of torrents. the default flags for the external connect_peer() call now assumes encryption, uTP and holepunch support 2015-07-16 21:53:31 -04:00
Mikhail Titov 70a99e6f62 Don't attempt to resolve base64 destination for i2p tracker 2015-07-14 14:13:15 -05:00
Mikhail Titov 3f2e660fcf Wait for i2p acceptor before announcing
This somewhat closes #1 in an ugly way
2015-07-14 14:13:13 -05:00
Mikhail Titov df21a7e8ce Use scrape & i2p bitset flags for request 2015-07-14 14:13:10 -05:00
Mikhail Titov 5d3938b39b Parse compact response from I2P tracker
This fixes #2
2015-07-14 14:13:09 -05:00
Mikhail Titov 007a580207 Options to use lowercase base32 encoding without padding 2015-07-14 12:41:12 -05:00
Steven Siloti d911ed456a stub out disabled functions rather than removing them 2015-07-12 20:17:45 -07:00
Steven Siloti 825fd22c1e cut down on the size of the peer_connection_handle interface 2015-07-12 16:31:29 -07:00
Steven Siloti 9bf1d6c5e9 peer_connection_handle 2015-07-12 14:40:03 -07:00
Alden Torres 73e5f795cb Merge with master. 2015-07-12 10:37:16 -04:00
Alden Torres a856ae6e9b Added dht_get_peers and dht_announce at session level.
Refactored dht_put_item to dht_put_immutable_item in session_impl since the get operations are not overloaded (consistency).
Added allow_threading_guard to add_dht_node python binding.
Making dht_put_item in session returns a zeroed hash if TORRENT_DISABLE_DHT (avoid unnecessary calculation and it's more consistent).
Added missing DHT operations to the python binding.
Added missing allow_threading_guard to add_dht_node in the python binding.
2015-07-12 10:37:16 -04:00
arvidn 2739def57f minor cleanups. use libtorrent typedefs for asio. failing to bind IPv6 UDP socket is no longer fatal. removed some redundant listen_failed_alerts 2015-07-11 23:01:27 -04:00
Steven Siloti 189afdd5e3 add session_handle.hpp to Makefile.am 2015-07-11 11:17:28 -07:00
Steven Siloti 1d55bcba72 make session inherit from session_handle and remove wrapper functions 2015-07-11 11:17:28 -07:00
Steven Siloti b072b0ca5f create session_handle
The session_handle class exposes the same public interface to session_impl as
the session class. The difference being that session_handle does not own the
underlying session_impl so multiple session_handle instances can be created
and copied about as needed.

The intent is to chenge the plugin API to pass an instance of session_handle
instead of a pointer to session_impl. This change will be made in a separate
patch.

To maintain ABI compatibilty, the type signature of session was not changed.
The relevent functions have been modified to forward to session_handle and
all enums have been left in session.
2015-07-11 11:17:28 -07:00
arvidn c5614b691f export file_progress class when building unit tests. fix to web_server.py (used for unit tests) 2015-07-07 23:46:33 -04:00
arvidn 3b3a23a87a whitespace 2015-07-05 18:33:47 -04:00
Arvid Norberg 41eff1801e Merge pull request #13 from aldenml/more-dht-api
Added dht_get_peers and dht_announce at session_impl level.
2015-07-04 10:08:14 -04:00
John Sebastian Peterson cc67c60938 hide cx keyword from winrt
instead of a hacky undef that break the keyword
2015-07-04 06:04:06 +02:00
Alden Torres e7ee3590fa Simplified dht_get_peers_reply_alert memory handling to work with only one allocation and return all peers at once. 2015-07-03 22:59:44 -04:00
John Sebastian Peterson 30142e35ac conform crypt api detection to coding standard 2015-07-04 01:42:33 +02:00
John Sebastian Peterson 7f160e42a5 fix c++/cx interface name conflict in alerts 2015-07-02 09:58:12 +02:00
John Sebastian Peterson 02cee0e96e add winrt detection 2015-07-02 09:55:29 +02:00
Alden Torres d9246d12c4 Re-implemented dht_get_peers_reply_alert using the stack_allocator for peers vector storage. 2015-07-01 15:30:09 -04:00
Alden Torres cbba63ce94 Created new alert category for pure DHT operations. 2015-07-01 15:30:08 -04:00
Alden Torres fcac7140f8 Added dht_get_peers and dht_announce at session_impl level. 2015-07-01 15:30:08 -04:00
arvidn 94d6e06c97 first step in making opening all the listen sockets a bit more reliable 2015-06-29 23:10:09 -04:00
arvidn d1670c72c2 removed sparse-regions support 2015-06-29 20:40:32 -04:00
arvidn d887f5719d it's called peer_list now 2015-06-29 19:56:39 -04:00
arvidn e2784df13c factor out file progress tracking from the torrent class 2015-06-28 22:47:11 -04:00
arvidn 2d1db68ea6 fix diagnostic push/pop issue 2015-06-28 18:44:37 -04:00
Steven Siloti d7a3b05fdc remove inaccurate comment about deadlocking in torrent_handle 2015-06-27 11:22:13 -07:00
Arvid Norberg 8dbef2d32a Merge pull request #11 from aldenml/announce-get_peers-refactor
Refactor to expose a more convenient get_peers function as part of the DHT api.
2015-06-25 00:33:15 -04:00
Alden Torres 5c8c9cd653 Refactor to expose a more convenient get_peers function as part of the DHT api.
Now announce (a particular case of get_peers DHT operation) uses the function get_peers.
2015-06-24 21:22:24 -04:00