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
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
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
Thomas
e51b61870a
Call callback function immediately when get mutable data.
2015-08-08 20:28:53 -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
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
Arvid Norberg
d43f7b56a2
update copyright year
2015-06-03 05:18:48 +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
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
7351389ce8
land libtorrent_aio branch in trunk
2014-07-06 19:18:00 +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
fec7407461
send implied_port in dht announce messages when uTP is enabled
2014-01-20 06:35:06 +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
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
652bf8323b
prioritize some more todo mark-ups
2013-01-21 01:40:59 +00:00
Arvid Norberg
bff648a89e
update copyright dates and add tool to do so
2012-10-02 03:16:33 +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
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
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
c4dded04ca
fixed small memory leak in DHT
2011-11-28 11:11:29 +00:00
Arvid Norberg
58d723012a
support DHT scrape
2011-05-23 00:45:36 +00:00
Arvid Norberg
de28a57954
add back version in DHT packets
2011-01-23 02:02:04 +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
5c02f3df59
fixed DHT bootstrapping issue
2010-02-14 07:46:57 +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
8a5b7d5d36
got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones).
2009-10-20 02:49:56 +00:00
Arvid Norberg
cee42ff5a1
more DHT simplifications
2009-10-07 20:51:02 +00:00
Arvid Norberg
dfccf0b412
some DHT work
2009-09-29 17:06:08 +00:00
Arvid Norberg
f36688a364
initial support for torrent tag store in DHT
2009-09-27 03:38:41 +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
6078dd06b0
removed the last dependency on iostream and lexical cast
2009-08-25 18:13:46 +00:00
Arvid Norberg
bdd7e21831
replace endpoint with address in DHT node ban list
2009-05-13 21:07:51 +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
1b10a3b15f
DHT instrumentation changes
2008-11-12 03:56:56 +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
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
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
bbf9c83edc
initial support for icmp errors in the DHT
2008-05-08 00:22:17 +00:00
Arvid Norberg
c7e6c04705
switched over to asio from boost-1.35
2008-05-03 16:05:42 +00:00
Arvid Norberg
1d8edc0722
fixed race condition in dht
2008-03-24 04:38:43 +00:00
Arvid Norberg
501611173e
removed unused header 'packet_iterator.hpp'
2007-12-28 19:46:08 +00:00
Arvid Norberg
8c3f9571de
socks5 support for udp messages
2007-12-09 04:15:24 +00:00
Arvid Norberg
a7f6e3bccb
added abuse protection to DHT. nodes that hammer will be ignored
2007-12-04 02:53:10 +00:00
Arvid Norberg
b386aa23e9
DHT bugfix, more logging and less frequent private key generation. Fixed typo in identify_client
2007-05-14 17:49:36 +00:00
Arvid Norberg
306d015924
added a timer abstraction and replaced the use of boost.date_time. the timers used now are QueryPerformanceCounter on windows, mach_absolute_time on darwin and currently falls back on boost.date_time on other platforms. This has the advantage of being a monotonic clock, and also slightly more efficient
2007-04-04 22:27:36 +00:00
Arvid Norberg
7e3a415d0b
made the trackers pick the most suitable interface to connect to (IPv6/Ipv4 issue). added Mono Torrent to identify_client and dht statistics.
2007-03-02 18:40:02 +00:00
Arvid Norberg
7888b72e12
fix for crashes when stopping or restarting DHT
2007-02-25 09:42:43 +00:00
Arvid Norberg
b0ae8d3a14
tracker fixes for trackerless torrents
2007-02-21 17:15:47 +00:00
Arvid Norberg
13facbdb83
added a strand for all async operations for thread safety
2006-12-15 17:47:21 +00:00
Arvid Norberg
e35fc5c4be
refactored extensions and added a plugin interface. fixed file.cpp for windows
2006-11-14 00:08:16 +00:00
Arvid Norberg
910733f29e
added proper support for dht router nodes (which are automatically used to bootstrap from, and won't get added to the routing table)
2006-09-27 17:20:18 +00:00
Arvid Norberg
f92b6cd90c
fixed test_ip_filter and test_piece_picker to reflect recent api changes. Fixed an Obj.C naming issue. Removed files from include/Makefile.am that was removed from asio.
2006-09-11 23:34:07 +00:00
Arvid Norberg
dc2e25141c
changed sequencial download threshold api, it is now per torrent
2006-09-04 23:22:21 +00:00
Arvid Norberg
b1411fcdf7
the DHT can now change listen port runtime, and the same listen interface will be used for the DHT as is used for the torrent listen port. The DHT buckets are refreshed slightly more evenly distributed over time.
2006-08-30 00:09:58 +00:00
Arvid Norberg
2daaa9f8d2
fixed bug in allocate_resources, made the refresh timers more accurate and tries to even out the load bu not refreshing more than one bucket at a time
2006-08-06 16:36:00 +00:00
Arvid Norberg
5ef57265bf
first version with DHT support. Limited pipelining used by url-seeds. Fixed one configuration problem on FreeBSD.
2006-08-01 15:27:08 +00:00