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
arvidn
a81ca2391b
fix some warnings
2015-08-10 20:03:24 -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
97571b4ad4
fixed more warnings
2015-08-07 00:30:29 -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
arvidn
5657772114
limit how often the DHT can wake up
2015-07-28 23:04:15 -04:00
arvidn
f85d62b601
merged DHT update of /8 blocks form RC_1_0
2015-07-16 21:56:06 -04:00
Alden Torres
761486ce43
Using PRId64 macro for portability.
2015-07-12 13:05:29 -04:00
Alden Torres
89f3b3bee3
Using the standard log method for round trip time in rcp_manager.
2015-07-12 12:59:38 -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
bb25acd661
use a better windows.foundation.collections.h(462) conflict fix
2015-07-04 05:59:38 +02:00
John Sebastian Peterson
e7caa2d20f
fix winrt compile error in windows.foundation.collections.h(428)
2015-07-02 09:58:17 +02: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
389ffc622c
don't pull in the asio namespace in libtorrent. refer to it by boost::asio
2015-06-06 01:24:25 -04:00
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +00:00
Arvid Norberg
0aca01543b
simplify dht logging
2015-05-30 06:31:03 +00:00
Arvid Norberg
945eef4c4d
some dht_tracker clean up
2015-05-30 04:37:12 +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
0052fa6c19
some cleanup to dht observers (don't expose internals)
2015-05-22 02:42:26 +00:00
Arvid Norberg
d18495eb39
support a NULL dht_observer again
2015-05-19 00:48:04 +00:00
Arvid Norberg
e7d369646d
fix gcc warnings
2015-05-18 01:30:32 +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
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
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
ddfef97696
don't use iostream in dht routing table debug logging
2015-05-08 05:21:26 +00:00
Arvid Norberg
4b585dcc0e
minor cleanup and fix no-deprecated build
2015-05-06 01:11:54 +00:00
Arvid Norberg
2fff222235
silence some warnings on msvc
2015-04-27 02:21:12 +00:00
Arvid Norberg
f97168241f
build fix
2015-04-27 00:56:58 +00:00
Arvid Norberg
a15bc13392
build fixes
2015-04-26 13:38:56 +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
f0336017d1
fix gcc warnings and missing header files in makefiles
2015-04-26 00:51:44 +00:00
Arvid Norberg
31a87c26f0
move another unused time function into the one place it was used from (which will be removed)
2015-04-24 04:08:08 +00:00
Arvid Norberg
3ea67e2bf5
move time_now_string out to the unit test library (basically unused in libtorrent itself)
2015-04-24 03:48:08 +00:00
Arvid Norberg
87c46a144d
fix more warnings and some build issues
2015-04-22 04:24:45 +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
a516bf46e5
merged changes from RC_1_0
2015-03-22 04:34:11 +00:00
Arvid Norberg
3f21a846f6
fix build without deprecated function. extend test_coverage script. comment out DHT sanity check assert that fires in the wild
2015-03-21 00:50:28 +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
794de25212
moved escape_string.hpp into the aux_ directory. moved out the 3 public hex functions into its own public header, hex.hpp
2015-03-14 23:10:20 +00:00
Arvid Norberg
37225b71ae
const static -> static const (thanks gubatron). helps swigs parser
2015-03-14 00:42:27 +00:00
Arvid Norberg
65a9d76938
fix dht logging build
2015-03-13 05:53:22 +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
678d4f3a82
fix warning
2015-01-26 03:09:32 +00:00
Arvid Norberg
609b5eb4ba
fix dht logging build
2015-01-18 15:03:18 +00:00
Arvid Norberg
8614ed795a
attempt to fix build
2015-01-18 04:40:01 +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
a462f58372
use hardware optimized CRC32C function in DHT
2015-01-05 13:50:42 +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
dbf461ac23
make DHT dos mitigation parameters configurable via dht_settings
2015-01-01 23:24:21 +00:00
Arvid Norberg
1039d4ae86
tweak some TODO comments and fix one
2014-12-31 14:41:35 +00:00
Arvid Norberg
0977d94dbc
merged changes from RC_1_0
2014-12-25 11:24:02 +00:00
Arvid Norberg
333a13c957
a bit more conservative block request timeouts. promote some invariant checks in the DHT as expensive (to disable them for regular debug builds)
2014-12-10 07:13:57 +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
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
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
b55778a847
some DHT logging and parsing
2014-10-07 07:23:20 +00:00
Arvid Norberg
3c7a932aee
update comments
2014-10-04 20:06:46 +00:00
Arvid Norberg
7830081585
merged changes from RC_1_0
2014-10-01 18:19:44 +00:00
Arvid Norberg
0ed0bdc50c
remove pointless DHT extension (for IPv6)
2014-10-01 16:21:29 +00:00
Arvid Norberg
ba3ffe52f8
improve DHT logging a bit
2014-10-01 09:14:49 +00:00
Arvid Norberg
8cbef3876a
post alert on outgoing get_peers
2014-09-22 19:49:32 +00:00
Arvid Norberg
645d3cdb32
merge fixes from RC_1_0
2014-09-20 19:27:29 +00:00
Arvid Norberg
44021c99e1
add todo comment
2014-08-28 08:06:11 +00:00
Arvid Norberg
98c4c9327b
merged change from RC_1_0
2014-08-28 02:06:21 +00:00
Arvid Norberg
48ea42c990
merged changes from RC_1_0
2014-08-27 05:57:37 +00:00
Arvid Norberg
51f2aafb43
clean up some time_t and srand() uses
2014-08-16 20:55:44 +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
3f88389f05
merged changes from RC_1_0
2014-08-16 07:46:06 +00:00
Arvid Norberg
1e48745173
another boost chrono fix
2014-07-25 16:51:13 +00:00
Arvid Norberg
b78fdc630d
fix another integer overflow issue from switching to chrono
2014-07-25 08:43:52 +00:00
Arvid Norberg
f15182a737
merged changes from RC_1_0
2014-07-19 07:12:20 +00:00
Arvid Norberg
24b9101075
merged changes from RC_1_0
2014-07-12 06:20:16 +00:00
Arvid Norberg
9d172a8723
fixed chrono issue in dht
2014-07-08 15:36:47 +00:00
Arvid Norberg
c90285df8a
restore DHT semantics to fix dht unit test
2014-07-07 00:09:05 +00:00
Arvid Norberg
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +00:00
Arvid Norberg
6ef1b98717
merged compiler warning fixes from RC_1_0
2014-07-05 14:10:25 +00:00
Arvid Norberg
6c6fe4dfe2
merged fixes of warnings from RC_1_0
2014-07-04 23:40:31 +00:00
Arvid Norberg
6e275fbe21
removed left-over unused variables
2014-07-02 02:53:10 +00:00
Arvid Norberg
36e8945968
more build fixes
2014-06-29 19:11:15 +00:00
Arvid Norberg
3893a55a57
fix to the fix
2014-05-25 05:28:15 +00:00
Arvid Norberg
96f25d6942
attempt to fix linux build
2014-05-25 05:10:30 +00:00
Arvid Norberg
64c09e7607
support for older boost versions
2014-05-25 00:13:17 +00:00
Arvid Norberg
5b89c3f5f9
merged some of steven siloti's changes. expose optimistic unchoke logic to plugins
2014-05-12 07:28:34 +00:00
Arvid Norberg
e225259481
fix some msvc warnings
2014-05-10 03:23:05 +00:00
Arvid Norberg
555efd9279
factor out address/endpoint I/O into it's own unit test. merge write_string from bencode and socket_io. extend unit test
2014-05-04 06:46:47 +00:00
Arvid Norberg
ab96600ae3
fix dht assert
2014-04-29 21:31:25 +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
6bda2f7430
change peer priority to use crc32c instead of sha1
2014-01-23 02:28:04 +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
a5b5cf0f62
ignore unused parts of the internet on the DHT by default
2014-01-19 07:44:16 +00:00
Arvid Norberg
bec02dd953
fix valgrind build
2014-01-19 04:13:46 +00:00
Arvid Norberg
4a7543bdb8
remove a DHT observer right away when the response has an invalid node ID
2014-01-17 05:16:37 +00:00
Arvid Norberg
b621f3f00a
merged DHT fix from RC_0_16
2014-01-17 04:49:04 +00:00
Arvid Norberg
86b68e65e4
merged dht node ID change from RC_0_16
2014-01-11 08:08:43 +00:00
Arvid Norberg
89d5582560
merged dht fix from RC_0_16
2014-01-07 08:52:53 +00:00
Arvid Norberg
ae7bb20170
update node ID generation algorithm from RC_0_16
2014-01-06 05:46:46 +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
260e97c4e0
document salt feature in put and get DHT extensions. include a test vector and add that to the unit test. (salt is not implemented)
2013-12-31 08:37:42 +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
70735a0a67
minor ifdef tweaks and DHT logging
2013-12-21 07:18:49 +00:00
Arvid Norberg
5d822706e1
add invariant check to dht routing_table
2013-12-20 04:54:52 +00:00
Arvid Norberg
ce99fd47f2
enable all DHT logging (when building with dht logging enabled)
2013-12-20 04:54:27 +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
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
f11959b235
fix initialization order warnings
2013-11-28 08:48:17 +00:00
Arvid Norberg
d03d50b6a8
reorder some more fields to reduce padding
2013-11-26 02:23:33 +00:00
Arvid Norberg
f9d3571915
merged fix from RC_0_16
2013-11-23 11:06:35 +00:00
Arvid Norberg
8f2683fe5d
improve routing_table::depth() performance
2013-11-13 02:17:33 +00:00
Arvid Norberg
0f298dbe88
make the definition of routing table depth a bit more reliaxed in the DHT
2013-11-02 16:07:47 +00:00
Arvid Norberg
b911129a12
merged fixes from RC_0_16
2013-11-02 03:35:45 +00:00
Arvid Norberg
1d55894bef
improve obfuscated get_peers
2013-10-26 22:59:55 +00:00
Arvid Norberg
dd55082321
fixed typo in dht put signature parsing
2013-10-22 07:12:31 +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
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
1b888eeec6
optimize DHT
2013-10-20 07:06:42 +00:00
Arvid Norberg
17d276e060
move dht_flood.py into tools. only reveal 3 bits passed the shared target prefix when doing obfuscated dht lookups
2013-10-16 23:19:18 +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
f2e3e613b2
merged dht fix from libtorrent_aio
2013-10-06 01:48:57 +00:00
Arvid Norberg
4ec97bfaaa
make verbose dht logging work again
2013-09-14 22:00:41 +00:00
Arvid Norberg
40941608a9
improve DHT routing table some, by replacing high RTT nodes within a node ID prefix
2013-09-14 21:49:08 +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
b431ef7836
use crc32 for node ID restriction scheme
2013-08-19 05:24:35 +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
329ed1bdde
moved declaration of time_now() into time.hpp
2013-07-21 05:05:00 +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
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
1ad2bc42a1
fix assert
2013-05-17 05:03:33 +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
e8a53fceb2
merged assert fix
2013-01-22 04:50:18 +00:00
Arvid Norberg
29c17c123e
fix traversal algorithm leak in DHT
2013-01-22 02:04:58 +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
9c7f685313
improve debug logging of dht routing table
2013-01-20 19:51:57 +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
903efa1a9f
merged DHT config fromRC_0_16
2013-01-14 02:42:44 +00:00
Arvid Norberg
cb0059d952
merged DHT timeouts from RC_0_16
2013-01-13 01:23:00 +00:00
Arvid Norberg
aab59d04c7
improve the external IP discovery to work with multiple external IPs (specifically IPv4 and IPv6)
2013-01-01 23:12:16 +00:00
Arvid Norberg
806b7c85eb
fix minor issue
2012-12-22 01:29:55 +00:00
Arvid Norberg
27db5e3f49
use random() instead of rand()
2012-12-10 08:08:20 +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
28e32b57b6
merged UDP socket fix from RC_0_16
2012-09-25 18:57:50 +00:00
Arvid Norberg
56248845ef
some DHT fixes + cleanup
2012-09-25 18:47:04 +00:00
Arvid Norberg
e77d8cfe7a
merged fix from libtorrent_aio
2012-09-23 04:56:08 +00:00
Arvid Norberg
7640414cf2
merged dht fixes from libtorrent_aio
2012-09-23 03:49:04 +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
a66332d66f
fix DHT logging build
2012-07-23 13:37:23 +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
57769bab11
fix some compiler warnings
2012-06-25 14:17:51 +00:00
Arvid Norberg
24746bf54f
release asserts fix
2012-06-24 22:55:48 +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
40284b2b99
update dht_sec definition
2012-06-07 16:29:20 +00:00
Arvid Norberg
2be5513be7
and the typo in trunk as well
2012-06-05 04:20:10 +00:00
Arvid Norberg
ccfaa0327e
merged fix from 0.16
2012-06-05 03:35:15 +00:00
Arvid Norberg
49a1398fe5
update dht_sec specification and the dht code
2012-05-31 02:16:44 +00:00
Arvid Norberg
ca6bb805b4
fix possible integer overflow in dht
2012-05-05 18:52:16 +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
35ea214124
fix off-by-one bug in DHT node-ID calculation
2012-02-16 03:51:39 +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
c4dded04ca
fixed small memory leak in DHT
2011-11-28 11:11:29 +00:00
Arvid Norberg
44c95ebbc5
fix build error
2011-06-05 23:37:33 +00:00
Arvid Norberg
8190744f0c
fix DHT error messages to either not be sent or contain valid transaction IDs
2011-06-01 07:44:33 +00:00
Arvid Norberg
e6640de205
updated IP->ID formula for DHT
2011-05-26 17:04:53 +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
a73960aa5a
support release asserts
2011-05-08 09:04:59 +00:00
Arvid Norberg
61ceaba6de
fix shadowed variable warning
2011-04-08 04:47:26 +00:00
Arvid Norberg
0d300cd09a
fixed test build and some clang warnings
2011-03-09 07:51:04 +00:00
Arvid Norberg
08c93978a6
clean up some dead code and fix windows build
2011-02-28 00:35:58 +00:00
Arvid Norberg
56937edf56
cleaned up some exception handling and introduced macros like BOOST_TRY/BOOST_CATCH to make the optional exception handling nicer
2011-02-25 17:00:36 +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
eb47f06ef9
fix DHT cidr check
2011-01-26 03:12:46 +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
451c583023
more robust mechanism to determine external IP
2010-12-24 01:31:41 +00:00
Arvid Norberg
de3a5784be
fix build with IPv6 disabled
2010-12-18 18:46:20 +00:00
Arvid Norberg
fbdf76cf5b
fix DHT size estimation
2010-12-13 09:24:19 +00:00
Arvid Norberg
4fcfceb087
DHT optimizations and fixes. Fixed routing table bucket splitting
2010-12-12 20:36:42 +00:00
Arvid Norberg
cc22aca981
DHT routing table tuning
2010-12-12 19:18:23 +00:00
Arvid Norberg
5ee6266e93
more DHT fixes
2010-12-12 09:15:54 +00:00
Arvid Norberg
31d8c7d9b7
fixed non dht-logging build
2010-12-12 03:45:49 +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
94ef3eaf4b
windows build fixes
2010-12-01 05:47:18 +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
80cfdc4fd8
dht assert fix
2010-11-06 17:01:21 +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
23ac52c164
simplify some DHT code and remove a dependency on boost.mpl
2010-11-05 03:12:57 +00:00
Arvid Norberg
fc1b44b560
improve error reporting of lazy_bdecode to use error_code
2010-10-28 04:01:59 +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
dce2edb6cc
fixed vs 2010 build
2010-04-30 19:08:16 +00:00
Arvid Norberg
686fc1a1c7
windows fixes
2010-03-21 02:13:56 +00:00
Arvid Norberg
a29928de8b
fix DHT bug
2010-03-12 03:18:17 +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
Arvid Norberg
0acfe4a480
dht bugfix
2010-02-14 04:58:21 +00:00
Arvid Norberg
c75e38e855
fixed dht logging build
2010-02-08 04:35:46 +00:00
Arvid Norberg
9e98bfd204
build fix
2010-01-20 03:37:34 +00:00
Arvid Norberg
4e62eec9fa
fix to the previous dht routing table fix
2010-01-10 04:03:11 +00:00
Arvid Norberg
c1ea06f373
another dht routing table fix
2010-01-09 17:49:33 +00:00
Arvid Norberg
d25d8d40fe
dht routing table fix
2010-01-09 14:49:21 +00:00
Arvid Norberg
cb5bad09a4
fixed DHT bug
2010-01-09 00:38:55 +00:00
Arvid Norberg
11cd7af4e7
optimized DHT routing table memory usage
2010-01-03 11:08:39 +00:00
Arvid Norberg
a5586d154d
more header dependency optimizations
2009-11-25 06:55:34 +00:00
Arvid Norberg
6343fe6a6d
optimized header dependencies to lower build time
2009-11-23 08:38:50 +00:00
Arvid Norberg
562e2512b9
some vs2010 fixes
2009-11-22 23:55:54 +00:00
Arvid Norberg
d6d577627b
removed some unnecessary includes
2009-11-22 21:08:44 +00:00
Arvid Norberg
51aa6c4b6b
rpc_manager fix
2009-11-13 02:53:34 +00:00
Arvid Norberg
b066e4694b
fixed DHT state save bug for node-id
2009-11-10 17:01:05 +00:00
Arvid Norberg
1c28444f94
fixed residual references to boost/thread. Removed memdebug (it doesn't work and tcmalloc is better)
2009-11-02 02:00:41 +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
a8c72b47ab
USE_IPV6 fixes
2009-10-19 02:49:20 +00:00
Arvid Norberg
525c8090b7
USE_IPV6 fixes
2009-10-19 02:43:50 +00:00
Arvid Norberg
aad0a68dfa
removed a few more dependencies on lexical_cast
2009-10-19 00:31:47 +00:00
Arvid Norberg
474566fa21
more DHT fixes and simplifications
2009-10-09 02:34:25 +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
Georg Rudoy
c631c00653
Fixed build: use incoming_error from correct namespace.
2009-09-25 22:03:35 +00:00
Arvid Norberg
6eefa02c56
fixed link error with incoming_error
2009-09-25 16:32:02 +00:00
Arvid Norberg
e289b9c6ac
build fixes
2009-09-20 15:21:31 +00:00
Arvid Norberg
54cce9da60
simplified and optimized the DHT implementation
2009-09-20 00:23:36 +00:00
Arvid Norberg
6c67da08d6
split socket.hpp up in multiple headers to lower build time somewhat
2009-09-16 03:46:36 +00:00
Arvid Norberg
1f5a722b01
improved sun studio support (it seems to lack a lot of stl)
2009-08-30 07:38:52 +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
c459262c51
exception and IPv6 fixes
2009-05-14 20:38:42 +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
bdd7e21831
replace endpoint with address in DHT node ban list
2009-05-13 21:07:51 +00:00
Arvid Norberg
d0786a0fde
added BOOST_NO_EXCEPTIONS ifdefs
2009-05-07 07:01:36 +00:00
Arvid Norberg
641abc6c4a
slight memory optimization and some header cleanup
2009-05-03 20:21:24 +00:00
Arvid Norberg
b5bb51c6af
cut out more IPv6 code if not supported
2009-04-04 16:59:53 +00:00
Arvid Norberg
aba5b2e9d0
dropped some iostream dependencies
2009-04-04 09:52:25 +00:00
Arvid Norberg
3cdf9c87a8
fixed build errors on Solaris
2009-01-27 08:24:48 +00:00
Arvid Norberg
2b4a49ea19
small dht status cleanup
2009-01-23 10:36:07 +00:00
Arvid Norberg
7592ad4aee
updated disk IO to support unbuffered files
2009-01-11 02:02:34 +00:00
Arvid Norberg
a4dc107658
dht_stats fix (truncates the log file on startup)
2009-01-01 18:29:42 +00:00
Arvid Norberg
cf7a6e6029
fixed broken DHT round trip logging
2008-12-31 18:49:28 +00:00
Arvid Norberg
3d2726c523
dht stats now truncates the log from previous run
2008-12-27 03:34:05 +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
3b5706c5db
fixed index of dht stats log and added/fixed dht log parsing and graphin tools
2008-12-23 18:38:48 +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
c3bbf138a4
estimate TCP/IP overhead more accurately
2008-11-14 20:51:49 +00:00
Arvid Norberg
1b10a3b15f
DHT instrumentation changes
2008-11-12 03:56:56 +00:00
Arvid Norberg
4eb0df96c2
DHT fix. broke in recent update
2008-11-12 03:33:58 +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
03593c8b92
typecasting syntax fixes. No longer prints empty buckets in routing table dump
2008-11-11 10:03:43 +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
ce8c835ab8
fixed missing member initialization
2008-11-10 04:16:18 +00:00
Arvid Norberg
45de012553
fixed non verbose DHT build
2008-11-10 03:08:29 +00:00
Arvid Norberg
18d269dd62
DHT optimizations
2008-11-10 02:08:42 +00:00
Arvid Norberg
15a8cbcce7
dht fix
2008-11-09 09:02:06 +00:00
Arvid Norberg
ce544e2300
DHT rate limiter fixes
2008-11-09 00:37:03 +00:00
Arvid Norberg
9bba20cdb4
first pass at rate limited udp socket (for DHT)
2008-11-08 17:40:06 +00:00
Arvid Norberg
f2c9e02994
fixed deadlock in dht code
2008-11-02 10:01:04 +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
166f761df3
fixed DHT bug where requests that timed out would be treated as transaction_id overflows and would slow down DHT lookups considerably.
2008-09-15 05:05:26 +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
37147f99c0
fixes bug in kademlia implementation when nodes are unreachable
2008-08-29 23:00:57 +00:00
Arvid Norberg
d94f35a75b
fix build failure with TORRENT_DHT_VERBOSE_LOGGING
2008-08-19 08:39:21 +00:00
Arvid Norberg
4d380c57d7
made bdecode not throw
2008-06-23 22:00:27 +00:00
Arvid Norberg
0ba85e96d5
fixed kademlia announce bug
2008-05-26 15:23:06 +00:00
Arvid Norberg
07f070868d
factored out to_hex into the escape_string header file
2008-05-19 07:36:04 +00:00
Arvid Norberg
bae6ff1a10
dht typo fix
2008-05-18 06:02:57 +00:00
Arvid Norberg
498a43c123
streamlined dht log format
2008-05-18 05:09:11 +00:00
Arvid Norberg
aa626f1422
logs node uptime and parses it for the DHT
2008-05-10 05:51:58 +00:00
Arvid Norberg
3fe96818d3
dht log fix
2008-05-09 23:42:00 +00:00
Arvid Norberg
ae11038495
improved dht logging of transaction ids
2008-05-09 21:20:28 +00:00
Arvid Norberg
11c181873c
stripped down the dht log
2008-05-09 17:38:36 +00:00
Arvid Norberg
5202056682
inverted distance log in dht
2008-05-08 03:58:05 +00:00
Arvid Norberg
1522f52db8
logs the distance between key and node when announcing
2008-05-08 01:17:14 +00:00
Arvid Norberg
bbf9c83edc
initial support for icmp errors in the DHT
2008-05-08 00:22:17 +00:00
Arvid Norberg
7434368652
fixed dht logging error
2008-05-07 23:25:47 +00:00
Arvid Norberg
c7e6c04705
switched over to asio from boost-1.35
2008-05-03 16:05:42 +00:00
Arvid Norberg
1724b1eb75
dht array index out of bound fix
2008-04-16 03:20:35 +00:00
Arvid Norberg
2bd49c4b56
fixed DHT assert
2008-03-29 14:52:18 +00:00
Arvid Norberg
40824d2bb1
minor dht fix
2008-03-28 22:56:33 +00:00
Arvid Norberg
a53cd86cae
fixed typo in previous dht checkin
2008-03-27 00:46:50 +00:00
Arvid Norberg
10d20f8f4e
dht fix
2008-03-26 17:37:31 +00:00