arvidn
1f9f588e75
merge copyright year update and changelog from RC_1_0
2016-01-17 18:57:46 -05:00
arvidn
f4d643bd2d
instead of restarting the whole DHT when changing external IP, just rebuild the routing table and change the node IDs
2016-01-11 21:17:25 -05:00
arvidn
01e6b93854
simplify and improve unit test for distance_exp. make some immutable variables const in the DHT implementation. instead of waking up periodically just to check if it's time to refresh the DHT secret key, set the timer to only wake up to refresh the key. If we don't have a DHT observer (to ask for our external IP) or if we don't know our external IP, don't generate a node ID based on 0.0.0.0, just generate a random ID instead. Simplified and improved node replacement logic in the routing table a little bit
2016-01-01 16:42:37 -05:00
Steven Siloti
ac01ccc43a
add templated wrapper around verify_message
...
It was too easy to forget to update the ret and size parameters
when the size of desec changed. With this change we now automatically
get the size of desc and enforce that ret has the same size.
It would be nice if we could use bdecode_node ret[static Size] from C99
but that is not widely supported.
2015-12-29 20:35:36 -08:00
Steven Siloti
c6f1e0bd7b
export verify_message and incoming_error
...
Also move these functions to a new msg.cpp. They are useful for plugins
which implement DHT extensions.
2015-12-05 18:20:08 -08:00
arvidn
7540a6e5cc
correctly check incoming DHT error messages
2015-11-30 18:02:00 -05:00
Steven Siloti
1f13343a70
const correctness
2015-11-22 10:02:26 -08:00
Steven Siloti
6c5bed63d3
whitespace cleanup
2015-11-22 10:02:26 -08:00
Thomas Yuan
ab70ad3e05
fix comments and unit test
2015-11-20 00:06:08 -05:00
Thomas Yuan
194ad410dc
Make dht_put_alert more accurate.
2015-11-20 00:06:08 -05:00
arvidn
3cc464805f
update libsimulator submodule
2015-10-25 10:55:20 -04:00
Alden Torres
62b24d8b67
Add set_dht_storage to session API.
2015-10-02 09:00:07 -04:00
Thomas Yuan
f9fa8ffdec
Use ping instead of get_peers if current bucket is full.
2015-09-22 10:35:10 -04:00
Alden Torres
25ed70b977
Create dht_storage_counters to avoid internal counter in future public API.
2015-09-21 07:46:23 -04:00
Thomas Yuan
20708fa5b6
Only re-bootstrap when there is no enough nodes in routing table.
2015-09-17 11:22:23 -04:00
Alden Torres
e2d682275a
Implementing and using new dht storage interface
2015-09-16 08:30:27 -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
arvidn
ffa870d280
fixed some GCC warnings
2015-08-20 01:33:20 +02:00
arvidn
8d8c049d9e
fix warnings and invalid defines in disk_io_thread.cpp
2015-08-18 07:55:50 -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
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
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
0052fa6c19
some cleanup to dht observers (don't expose internals)
2015-05-22 02:42:26 +00:00
Arvid Norberg
71ee44ae5e
fix build issue, some warnings
2015-05-17 23:32:13 +00:00
Arvid Norberg
88fe6eba9c
fix issues introduced in dht logging patch
2015-05-17 20:59:18 +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
494b425ea1
fix warnings and a peer logging bug
2015-05-10 18:38:10 +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
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
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
37225b71ae
const static -> static const (thanks gubatron). helps swigs parser
2015-03-14 00:42:27 +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
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
55e51ab57c
merged changes from RC_1_0
2015-01-04 21:18:00 +00:00
Arvid Norberg
0977d94dbc
merged changes from RC_1_0
2014-12-25 11:24:02 +00:00
Arvid Norberg
edade10561
merged fix from RC_1_0
2014-11-26 03:58:55 +00:00
Arvid Norberg
8ec7cff993
merged changes from RC_1_0
2014-11-26 02:02:32 +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
0ed0bdc50c
remove pointless DHT extension (for IPv6)
2014-10-01 16:21:29 +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
524384045c
transition to use boost.random instead of rand() and custom pseudo random generator
2014-08-16 20:26:00 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
36e8945968
more build fixes
2014-06-29 19:11:15 +00:00
Arvid Norberg
e225259481
fix some msvc warnings
2014-05-10 03:23:05 +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
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
fec7407461
send implied_port in dht announce messages when uTP is enabled
2014-01-20 06:35:06 +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
412842365a
add backwards compatible reading of IP field in DHT messages
2013-12-20 04:47:41 +00:00
Arvid Norberg
dd55082321
fixed typo in dht put signature parsing
2013-10-22 07:12:31 +00:00
Arvid Norberg
a627a4e156
add negative test for put/get DHT feature. fix bug in signature verification and in DHT unit test
2013-10-22 01:24:33 +00:00
Arvid Norberg
5388f0af74
improve valgrind runs of test_dht
2013-10-14 07:43:18 +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
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
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
465bbbf406
fix dht issue for platforms where char is unsigned. introduce assert
2013-06-23 08:07:39 +00:00
Arvid Norberg
2aa1981ae3
fix link issue on windows
2013-06-18 16:01:37 +00:00
Arvid Norberg
50ecb07d19
merged silencing of warnings from RC_0_16
2013-06-14 16:41:47 +00:00
Arvid Norberg
8bc8c1abe8
merged implied_port from RC_0_16
2013-03-25 07:26:39 +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
ab7369fee9
implement a sligthtly more aggressive DHT lookup mechanism
2013-01-20 07:54:54 +00:00
Arvid Norberg
f12e1c1a3f
merged DHT fix from RC_0_16
2012-11-16 22:25:39 +00:00
Arvid Norberg
bff648a89e
update copyright dates and add tool to do so
2012-10-02 03:16:33 +00:00
Arvid Norberg
055f8a0598
merged DHT optimization from libtorrent_aio
2012-09-22 18:15:29 +00:00
Arvid Norberg
bc34b13366
use random instead of rand()
2012-05-03 03:16:31 +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
8213814102
DHT fix
2012-03-17 19:27:57 +00:00
Arvid Norberg
d52eb9ed19
fixed release asserts issue in kademlia code
2012-01-16 22:48:43 +00:00
Arvid Norberg
7ee42393a5
simplified DHT parsing a bit
2011-12-01 04:01:36 +00:00
Arvid Norberg
2bb53ce6e8
fix non-openssl builds and improved error messages for mutable puts
2011-05-25 02:41:48 +00:00
Arvid Norberg
6fa1827c39
add support for mutable put/get functions in DHT
2011-05-25 02:26:07 +00:00
Arvid Norberg
f13de88b63
fixed dht logging build
2011-05-23 06:37:43 +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
61ceaba6de
fix shadowed variable warning
2011-04-08 04:47:26 +00:00
Arvid Norberg
08c93978a6
clean up some dead code and fix windows build
2011-02-28 00:35:58 +00:00
Arvid Norberg
ca106ca4e0
some warning fixes and cleanup
2011-02-24 04:25:35 +00:00
Arvid Norberg
8293543862
fix iterator bug in dht rss items
2011-02-24 03:22:24 +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
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
dce2edb6cc
fixed vs 2010 build
2010-04-30 19:08:16 +00:00
Arvid Norberg
a29928de8b
fix DHT bug
2010-03-12 03:18:17 +00:00
Arvid Norberg
5c02f3df59
fixed DHT bootstrapping issue
2010-02-14 07:46:57 +00:00
Arvid Norberg
0acfe4a480
dht bugfix
2010-02-14 04:58:21 +00:00
Arvid Norberg
11cd7af4e7
optimized DHT routing table memory usage
2010-01-03 11:08:39 +00:00
Arvid Norberg
6343fe6a6d
optimized header dependencies to lower build time
2009-11-23 08:38:50 +00:00
Arvid Norberg
c418165e07
replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability)
2009-10-26 01:29:39 +00:00
Arvid Norberg
f2af1d0d1a
fix msvc build
2009-10-23 06:41:09 +00:00
Arvid Norberg
cee42ff5a1
more DHT simplifications
2009-10-07 20:51:02 +00:00
Arvid Norberg
115a4b1863
fixed msvc build
2009-10-04 23:46:29 +00:00
Arvid Norberg
8dc2865c5d
fix DHT build
2009-10-03 18:29:47 +00:00
Arvid Norberg
dfccf0b412
some DHT work
2009-09-29 17:06:08 +00:00
Arvid Norberg
138fb8c679
extended DHT unit test to include error reporting
2009-09-27 17:41:51 +00:00
Arvid Norberg
7d4338b7f7
added data triven DHT message parsing and verification
2009-09-27 05:27:43 +00:00
Arvid Norberg
f36688a364
initial support for torrent tag store in DHT
2009-09-27 03:38:41 +00:00
Arvid Norberg
5b563d5522
improved forward compatibility in DHT
2009-09-27 00:40:05 +00:00
Arvid Norberg
6eefa02c56
fixed link error with incoming_error
2009-09-25 16:32:02 +00:00
Arvid Norberg
54cce9da60
simplified and optimized the DHT implementation
2009-09-20 00:23:36 +00:00
Arvid Norberg
ae3be201c4
reduced the number of floating point operations to better support systems with no FPU
2009-07-19 04:59:27 +00:00
Arvid Norberg
00ccf9064e
optimized memory usage in the DHT, and added some handling for out-of-memory cases
2009-05-13 22:18:41 +00:00
Arvid Norberg
2b4a49ea19
small dht status cleanup
2009-01-23 10:36:07 +00:00
Arvid Norberg
00d02f7859
improved DHT get_peers code. get_peers always returns nodes now, and announce_peer is always sent to the k closest nodes to the info-hash. This should significantly speed up retrieving peers from the DHT
2008-12-23 20:04:12 +00:00
Arvid Norberg
09b3a865ef
fixed compiler flags in pkg-config file and made header files not depend on the NDEBUG define
2008-11-29 21:33:21 +00:00
Arvid Norberg
beb9dbfc03
cleaned up DHT error handling and logging. Made it use lazy_bdecode for improved performance
2008-11-11 17:51:02 +00:00
Arvid Norberg
473f75e98a
DHT fix where the node_id would get set after it was started and be inconsitent with rpc_manager and routing_table
2008-11-11 08:33:34 +00:00
Arvid Norberg
18d269dd62
DHT optimizations
2008-11-10 02:08:42 +00:00
Arvid Norberg
a6ba48a60a
removed exception usage in dht implementation and peer_connection
2008-10-21 17:10:11 +00:00
Arvid Norberg
41d5abf0d8
exception related fixes. Avoiding functions that may throw in places where exceptions shouldn't be thrown
2008-10-21 08:45:42 +00:00
Arvid Norberg
68a89507bc
mutex fix for dht status reporting
2008-10-09 03:33:14 +00:00
Arvid Norberg
0338510b9b
added more bandwidth monitoring of DHT and TCP/IP overhead. added monitoring of the running DHT lookups
2008-09-20 17:42:25 +00:00
Arvid Norberg
c88071ae10
fixed race when adding router nodes to the dht (router nodes should be added before it's started)
2008-09-02 06:37:40 +00:00
Arvid Norberg
0ba85e96d5
fixed kademlia announce bug
2008-05-26 15:23:06 +00:00
Arvid Norberg
5202056682
inverted distance log in dht
2008-05-08 03:58:05 +00:00