Alden Torres
25ed70b977
Create dht_storage_counters to avoid internal counter in future public API.
2015-09-21 07:46:23 -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
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
Thomas Yuan
3d4ed9f37f
Add read-only support in dht_settings and outgoing query messages.
2015-09-07 14:24:46 -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
Thomas Yuan
ef16ae4e27
Handle response with unexpected format.
2015-08-31 22:37:46 -04:00
Thomas Yuan
b26d08c66a
Remove unnecessary selection statements.
2015-08-26 11:26:21 -04:00
arvidn
ffa870d280
fixed some GCC warnings
2015-08-20 01:33:20 +02:00
arvidn
a3608a39fe
fix some warnings
2015-08-19 02:00:46 +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
8d8c049d9e
fix warnings and invalid defines in disk_io_thread.cpp
2015-08-18 07:55:50 -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
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
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
a91e7ce25d
fix warnings
2015-08-06 02:30:06 -04:00
arvidn
655a3ae019
fix some warnings
2015-08-01 23:57:11 -04:00
Alden Torres
fcac7140f8
Added dht_get_peers and dht_announce at session_impl level.
2015-07-01 15:30:08 -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
arvidn
9af8841244
remove some unnecessary asio typedefs in the libtorrent namespace, just pull ip::tcp and ip::udp
2015-06-06 13:49:18 -04:00
arvidn
41533205be
drop support for boost 1.35 and fix some more references to the asio namespace
2015-06-06 02:10:53 -04:00
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
84849f3afd
some msvc fixes
2015-05-30 21:46:59 +00:00
Arvid Norberg
e44c8e9002
optimize logging of DHT packets by deferring copying and printing, to only do it if the alert category is enabled
2015-05-28 20:36:22 +00:00
Arvid Norberg
06bf225237
fix release build and tune want_tick
2015-05-26 20:09:19 +00:00
Arvid Norberg
9856a1fe0c
break out more tests from test_primitives
2015-05-23 01:38:47 +00:00
Arvid Norberg
0052fa6c19
some cleanup to dht observers (don't expose internals)
2015-05-22 02:42:26 +00:00
Arvid Norberg
b480f40a98
fix linux build and update code coverage script
2015-05-17 21:00:47 +00:00
Arvid Norberg
99de70604a
remove dht-verbose logging build configuration. tie it to the main logging configuration (which now is on by default) and make it less costly when dht logging alerts are disabled
2015-05-16 19:29:49 +00:00
Arvid Norberg
242dad0743
fix dht build
2015-05-10 18:24:09 +00:00
Arvid Norberg
2819d5f68e
remove the remains of the dht logging
2015-05-10 05:28:50 +00:00
Arvid Norberg
1357fd5265
clean up usage of printf attribute (encapsulate it in a macro)
2015-05-10 05:11:51 +00:00
Arvid Norberg
b60934288b
turn DHT logging into alerts instead of writing to a file
2015-05-10 04:54:02 +00:00
Arvid Norberg
ca581f2258
rename dht::node_impl -> dht::node, since this hasn't been a pimpl for quite a while
2015-05-09 19:00:22 +00:00
Arvid Norberg
6557910c7f
remove the DHT's last dependency on session_impl
2015-05-09 18:06:02 +00:00
Arvid Norberg
2fff222235
silence some warnings on msvc
2015-04-27 02:21:12 +00:00
Arvid Norberg
93a19b44c0
fix another format string issue and add comments to kademlia
2015-04-26 06:25:08 +00:00
Arvid Norberg
3951377d95
fix include paths for warning push and pop headers
2015-04-21 01:16:28 +00:00
Arvid Norberg
f5629eb403
cleanup and fixing of more warnings
2015-04-21 00:23:00 +00:00
Arvid Norberg
4d15f1410f
fix warnings, some clean-up and todo comments
2015-04-20 04:52:49 +00:00
Arvid Norberg
21751347bc
more warnings fixes and cleanup
2015-04-19 06:28:21 +00:00
Arvid Norberg
51e86ca2d5
more warning fixes and cleanup
2015-04-18 22:00:27 +00:00
Arvid Norberg
408232cfc8
raise warning level. fix a few of them. filter out warnings from boost
2015-04-18 02:33:39 +00:00
Arvid Norberg
013ed36f09
landed alert_queue feature branch into trunk
2015-04-03 20:15:48 +00:00
Arvid Norberg
32ccf61603
fix test_dht build
2015-03-17 01:30:57 +00:00
Arvid Norberg
1b07ec491d
fix build issue out of recent changes of exported functions
2015-03-16 04:38:28 +00:00
Arvid Norberg
6c1df7eb55
landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node
2015-03-12 05:20:12 +00:00
Arvid Norberg
c1dc982f4f
deprecate the ptime type and related time types. just use boost::chrono / std::chrono
2015-03-12 04:34:54 +00:00
Arvid Norberg
0afea4bb3e
move some DHT verbose stats logging over to performance counters
2015-01-18 01:06:36 +00:00
Arvid Norberg
22a02f4a1f
make dht_tracker be held by shared_ptr instead of intrusive_ptr. remove redundant performance counter (total dht sent/received). report DHT IP overhead to the IP overhead counters
2015-01-17 22:06:30 +00:00
Arvid Norberg
58d93e5aa1
add new (non-deprecated) access to dht stats, asynchronously via an alert
2015-01-17 17:02:58 +00:00
Arvid Norberg
35b41858cf
deprecated session_status and session::status() in favor of performance counters
2015-01-04 21:31:02 +00:00
Arvid Norberg
dbf461ac23
make DHT dos mitigation parameters configurable via dht_settings
2015-01-01 23:24:21 +00:00
Arvid Norberg
1ed1963f29
remove size_type typedef in favor of boost::int64_t
2014-12-03 04:32:50 +00:00
Arvid Norberg
658e2ceefd
merged Steven Siloti's peer crypto patch into trunk
2014-11-23 06:14:47 +00:00
Arvid Norberg
179df62379
merged changes from RC_1_0
2014-11-20 05:53:12 +00:00
Arvid Norberg
aae56c991c
merged changes from RC_1_0
2014-11-08 16:58:18 +00:00
Arvid Norberg
601f0dc434
merged changes from RC_1_0
2014-11-03 06:15:51 +00:00
Arvid Norberg
3742fd2699
merged changes from RC_1_0
2014-11-02 09:41:29 +00:00
Arvid Norberg
34af25beaa
merged chagnes from RC_1_0
2014-11-01 22:47:56 +00:00
Arvid Norberg
a91848962a
merge changes from RC_1_0
2014-10-12 04:18:34 +00:00
Arvid Norberg
8cbef3876a
post alert on outgoing get_peers
2014-09-22 19:49:32 +00:00
Arvid Norberg
48ea42c990
merged changes from RC_1_0
2014-08-27 05:57:37 +00:00
Arvid Norberg
3f88389f05
merged changes from RC_1_0
2014-08-16 07:46:06 +00:00
Arvid Norberg
a6f345181f
fixed some unused argument warnings
2014-07-07 06:28:48 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
c6b68ab683
fix warning
2014-03-23 01:41:00 +00:00
Arvid Norberg
0e04ab8d72
reorder the node-list in the DHT traversal algorithm if a node updates its ID
2014-03-03 05:09:53 +00:00
Arvid Norberg
8403e58f3c
make dht test program able to get and put mutable items. fixed some DHT bugs along the mutable put/get path
2014-03-02 23:35:35 +00:00
Arvid Norberg
86c704a6ff
fix dht_bootstrap_alert being posted. add additional alert for dht put completion. add utility to test immutable put/get. fix issue in DHT preventing stores on router nodes (even when they return write tokens). immutable put and get confirmed to be working
2014-02-28 04:02:48 +00:00
Arvid Norberg
1188ec2dcd
expose new DHT put/get functionality in the public session API
2014-02-24 00:31:13 +00:00
Arvid Norberg
a943fec777
update copyright
2014-02-23 19:12:25 +00:00
Arvid Norberg
715b60c8ff
attempted windows build fix
2014-02-17 07:24:43 +00:00
Arvid Norberg
6c22d426d4
make all unit tests pass msvc's /RTCc instrumentation (no implicit integer truncation in casts)
2014-02-05 09:38:32 +00:00
Arvid Norberg
e0644ce8f5
invariant check macro fixes
2014-01-21 19:26:09 +00:00
Arvid Norberg
fec7407461
send implied_port in dht announce messages when uTP is enabled
2014-01-20 06:35:06 +00:00
Arvid Norberg
702b68ecc4
clean up assert related defines and debuf-only fields less error-prone. fix missing initialization in file_pool caused by mistake in defines under which the debug field was initialized
2014-01-19 19:45:50 +00:00
Arvid Norberg
b621f3f00a
merged DHT fix from RC_0_16
2014-01-17 04:49:04 +00:00
Arvid Norberg
db6a22d5c1
handle DHT error responses correctly
2014-01-03 08:02:53 +00:00
Arvid Norberg
54bbd3cae0
support salt feature in DHT put
2014-01-03 04:18:46 +00:00
Arvid Norberg
d6b1aa4c36
DHT refactoring and support for storing arbitrary data with put
2013-12-27 04:28:25 +00:00
Arvid Norberg
4e6b1cfbfb
update copyright
2013-12-25 17:07:16 +00:00
Arvid Norberg
11a584991b
fix bug in dht logging build
2013-12-21 09:22:10 +00:00
Arvid Norberg
5d822706e1
add invariant check to dht routing_table
2013-12-20 04:54:52 +00:00
Arvid Norberg
93d7d89ced
fix issue with obfuscated_get_peers where peers in responses to obfuscated requests would still be returned. slight refactoring to move traversal algorithm level logic to traversal_observer class
2013-12-14 23:25:38 +00:00
Arvid Norberg
d03d50b6a8
reorder some more fields to reduce padding
2013-11-26 02:23:33 +00:00
Arvid Norberg
8f2683fe5d
improve routing_table::depth() performance
2013-11-13 02:17:33 +00:00
Arvid Norberg
1d55894bef
improve obfuscated get_peers
2013-10-26 22:59:55 +00:00
Arvid Norberg
1a2226b8f0
fix test_dht to take into account the slightly more relaxed semantics of routing_table::find_node
2013-10-22 05:20:00 +00:00
Arvid Norberg
afd80cffb7
add option to enforce node ID in the DHT
2013-10-14 01:03:43 +00:00
Arvid Norberg
50f051433a
merged DHT change from RC_0_16
2013-10-13 23:04:40 +00:00
Arvid Norberg
f1f89123e8
don't count pad-files as partial download pieces in the piece picker. prioritize which immutable dht items to keep also based on distance from our ID. remove some todo comments that probably should not be done
2013-09-14 10:08:31 +00:00
Arvid Norberg
39264c5ad3
introduce new, optional, get_peers mechanism that is more privacy preserving (doesn't leak the info-hash to as many DHT nodes)
2013-09-09 07:08:02 +00:00
Arvid Norberg
8ab8172cb7
improve DHT routing table to return better nodes (lower RTT and closer to target)
2013-09-09 04:16:52 +00:00
Arvid Norberg
12fd5be372
fix bug in ed25519 DHT signature verification. removed RSA code as it's no longer used. add CAS feature (compare and swap) to DHT put command. update dht_store documentation
2013-09-03 00:45:48 +00:00
Arvid Norberg
919bc46422
fix key length issue
2013-08-19 08:07:54 +00:00
Arvid Norberg
6bd07fd65f
pull in an ed25519 implementation and replace use of RSA in the DHT with ECC. fix up makefiles
2013-08-18 16:01:20 +00:00
Arvid Norberg
7ad58eba93
renamed big_number -> sha1_hash
2013-08-02 05:26:13 +00:00
Arvid Norberg
1df950df1d
documentation: hide internal functions, include inline functions, support section overviews, hide detail namespace
2013-07-21 21:23:21 +00:00
Arvid Norberg
8e3bb75cf1
fix build
2013-07-21 17:23:56 +00:00
Arvid Norberg
a401aa0337
cleaned up public interface by removing some symbols from the exported set
2013-07-19 19:06:27 +00:00
Arvid Norberg
b6eb5d7476
debug invariant checks for DHT observer allocator
2013-05-17 03:19:57 +00:00
Arvid Norberg
8bc8c1abe8
merged implied_port from RC_0_16
2013-03-25 07:26:39 +00:00
Arvid Norberg
f73fa778d6
slight refactoring to remove a dependency on session_impl in rpc_manager
2013-02-05 04:18:44 +00:00
Arvid Norberg
7223bf17e5
DHT memory optimization
2013-01-28 04:00:23 +00:00
Arvid Norberg
652bf8323b
prioritize some more todo mark-ups
2013-01-21 01:40:59 +00:00
Arvid Norberg
f1b8582a95
add gen_todo.py script. include todo.html and mark up some todos in the code with priority
2013-01-20 23:21:53 +00:00
Arvid Norberg
ab7369fee9
implement a sligthtly more aggressive DHT lookup mechanism
2013-01-20 07:54:54 +00:00
Arvid Norberg
51e99ba3e5
extend DHT unit test and fix bug in routing_table bucket splitting
2013-01-18 06:17:30 +00:00
Arvid Norberg
f12e1c1a3f
merged DHT fix from RC_0_16
2012-11-16 22:25:39 +00:00
Arvid Norberg
16630f94d1
merged fixes from RC_0_16
2012-10-21 20:24:14 +00:00
Arvid Norberg
bff648a89e
update copyright dates and add tool to do so
2012-10-02 03:16:33 +00:00
Arvid Norberg
d098e49059
merged DHT feature from libtorrent_aio
2012-09-22 21:40:16 +00:00
Arvid Norberg
055f8a0598
merged DHT optimization from libtorrent_aio
2012-09-22 18:15:29 +00:00
Arvid Norberg
96aa1f162b
fix for udp_socket observers and some dht warning fixes
2012-06-30 15:30:38 +00:00
Arvid Norberg
60f501ca5d
avoid incorrect assert in the DHT
2012-06-24 22:53:15 +00:00
Arvid Norberg
d73bbf5053
clean up the udp socket and its consumers by adding an observer interface and have the udp tracker, utp socket manager and dht tracker subscribe to it instead of going through the session_impl. This probably improves performance a tiny bit but primarily improves modularization and testability
2012-06-22 04:21:20 +00:00
Arvid Norberg
cf49986e1a
one more uninitialized member
2012-05-03 03:56:40 +00:00
Arvid Norberg
93b1a3478f
added missing file
2012-05-01 05:45:05 +00:00
Arvid Norberg
cec9a16cc1
back-ported observer for set_external_ip for DHT
2012-04-30 06:30:35 +00:00
Arvid Norberg
918dce1341
back-ported part of the alert_dispatcher patch for the DHT
2012-04-30 05:39:35 +00:00
Arvid Norberg
cafbf2ca1d
more work on minimizing shared object export symbol table
2012-03-20 03:53:07 +00:00
Arvid Norberg
a2521bd23c
fix a bunch of issues to properly support dynamic linking of libtorrent with visibility=hidden. Still requires a small patch to boost
2012-03-18 23:31:04 +00:00
Arvid Norberg
ef61b32d9e
fix unit test build on windows
2012-01-19 08:01:38 +00:00
Arvid Norberg
c4dded04ca
fixed small memory leak in DHT
2011-11-28 11:11:29 +00:00
Arvid Norberg
e6640de205
updated IP->ID formula for DHT
2011-05-26 17:04:53 +00:00
Arvid Norberg
6fa1827c39
add support for mutable put/get functions in DHT
2011-05-25 02:26:07 +00:00
Arvid Norberg
6830eb10a9
remove old search code from DHT. modify announce-item to fit with more recent proposal of get/put. Only immutable entries for now
2011-05-23 05:07:52 +00:00
Arvid Norberg
58d723012a
support DHT scrape
2011-05-23 00:45:36 +00:00
Arvid Norberg
a73960aa5a
support release asserts
2011-05-08 09:04:59 +00:00
Arvid Norberg
141ada013f
fixed a whole bunch of build warnings on gcc and msvc, along with some fixes discovered along the way
2011-02-21 05:24:41 +00:00
Arvid Norberg
de28a57954
add back version in DHT packets
2011-01-23 02:02:04 +00:00
Arvid Norberg
ba0aed2282
initial support for DHT RSS feeds
2011-01-19 05:57:44 +00:00
Arvid Norberg
eec2672d26
fixed up some edge cases in DHT routing table and improved unit test of it. Primarily fixed issues where an IP could take over someone elses node ID and where an IP would change its node ID
2011-01-17 07:49:44 +00:00
Arvid Norberg
b49999b76e
made the DHT implementation slightly more robust against routing table poisoning and node ID spoofing
2011-01-08 08:54:51 +00:00
Arvid Norberg
4fcfceb087
DHT optimizations and fixes. Fixed routing table bucket splitting
2010-12-12 20:36:42 +00:00
Arvid Norberg
b56a1638ae
DHT fixes. fixed bucket refresh issue. re-introduced refreshing our own bucket regularly. added more DHT instrumentation in session_status. added alert for when bootstrap is complete. Fixed bootstrap to ping remaining nodes when search is complete. Completed recent DHT observer rewrite to remove some redundant fields
2010-12-12 03:17:08 +00:00
Arvid Norberg
29ed03f720
first implementation of DHT security implementation. tie the node ID to the external IP
2010-12-11 09:38:07 +00:00
Arvid Norberg
1e82df3e45
support partial hash DHT lookups
2010-12-06 06:39:16 +00:00
Arvid Norberg
f21251cba8
limit number of torrents tracked by DHT and support DHT name lookups
2010-11-27 03:09:28 +00:00
Arvid Norberg
1c7e5506e9
report stats on the number of dht request observers that are currently allocated
2010-11-06 07:12:57 +00:00
Arvid Norberg
d3a8916f02
further simplify the DHT by getting rid of the result type and just using observers instead. This might save some memory and should fix the assert that would be triggered before
2010-11-05 19:06:50 +00:00
Arvid Norberg
e72d95384b
added missing include
2010-10-04 16:12:51 +00:00
Arvid Norberg
72060e8676
removed DHT mutex since everything is in the network thread now
2010-07-19 05:27:33 +00:00
Arvid Norberg
631cd17ebf
renamed union hack
2010-03-12 18:30:18 +00:00
Arvid Norberg
dcffa55700
some sunPRO compiler support
2010-03-07 06:00:12 +00:00
Arvid Norberg
47f3a18d65
DHT bootstrapping and refresh fix
2010-02-20 16:37:50 +00:00
Arvid Norberg
5c02f3df59
fixed DHT bootstrapping issue
2010-02-14 07:46:57 +00:00