Commit Graph

249 Commits

Author SHA1 Message Date
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 93a19b44c0 fix another format string issue and add comments to kademlia 2015-04-26 06:25:08 +00:00
Arvid Norberg 4d15f1410f fix warnings, some clean-up and todo comments 2015-04-20 04:52:49 +00:00
Arvid Norberg 013ed36f09 landed alert_queue feature branch into trunk 2015-04-03 20:15:48 +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 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 609b5eb4ba fix dht logging build 2015-01-18 15:03:18 +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 aae56c991c merged changes from RC_1_0 2014-11-08 16:58:18 +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 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 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 fec7407461 send implied_port in dht announce messages when uTP is enabled 2014-01-20 06:35:06 +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 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 ce99fd47f2 enable all DHT logging (when building with dht logging enabled) 2013-12-20 04:54:27 +00:00
Arvid Norberg 4ec97bfaaa make verbose dht logging work again 2013-09-14 22:00:41 +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 903efa1a9f merged DHT config fromRC_0_16 2013-01-14 02:42:44 +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 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 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 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 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 c4dded04ca fixed small memory leak in DHT 2011-11-28 11:11:29 +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 58d723012a support DHT scrape 2011-05-23 00:45:36 +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 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 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 f21251cba8 limit number of torrents tracked by DHT and support DHT name lookups 2010-11-27 03:09:28 +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 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 dcffa55700 some sunPRO compiler support 2010-03-07 06:00:12 +00:00
Arvid Norberg 5c02f3df59 fixed DHT bootstrapping issue 2010-02-14 07:46:57 +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 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 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 aad0a68dfa removed a few more dependencies on lexical_cast 2009-10-19 00:31:47 +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
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 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 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 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 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 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 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 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 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 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 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 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 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 1d31dc3613 fixed dht announce bug 2008-03-23 05:10:47 +00:00
Arvid Norberg 92f4947bbe full proxy support for udp-trackers, and more reliable udp tracker code 2008-02-05 06:32:10 +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 d8537937c7 try to fix #103 2007-11-25 08:57:58 +00:00
Arvid Norberg 95d09070fb cancels more async operations on shutdown 2007-11-11 19:09:29 +00:00
Arvid Norberg 966800cd5b replaced the assert macro to TORRENT_ASSERT instead of hi-jacking assert. 2007-10-05 00:30:00 +00:00
Arvid Norberg a567f18962 fixed #126 2007-08-27 06:47:08 +00:00
Arvid Norberg 99a22dcae4 made dht requests be allocated in a pool allocator for heap and runtime efficiency. Fixes to DHT error responses 2007-05-23 08:45:12 +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 9f902e7b9f the DHT now refreshes buckets properly. 2007-05-12 01:52:25 +00:00
Arvid Norberg ceb442bea0 DHT is more forgiving when parsing responses and logs messages that fails to decode 2007-05-08 00:55:43 +00:00
Arvid Norberg eb5b532d3f removed boost.date_time dependency from DHT logging code 2007-05-07 18:12:03 +00:00
Arvid Norberg 517488c722 DHT fixes 2007-05-07 18:00:17 +00:00
Arvid Norberg d88ffcc0e4 removed some more unecessary boost.date_time dependencies 2007-04-10 07:52:58 +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 8957b64c04 prepared for precompiled headers support. fixed issue where storage didn't lock the session properly. fixed typo in natpmp.cpp 2007-03-17 17:15:16 +00:00
Arvid Norberg 4b68dce5f0 lowered the dht timeout from 20 to 10 seconds. added support to parse values-messages as described in the spec (even though that format is very very rare). 2007-03-09 20:37:17 +00:00
Arvid Norberg c22c55feda dht fix 2007-03-02 21:40:18 +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 c40a75f844 IPv6 fixes 2007-02-27 17:21:46 +00:00
Arvid Norberg 7888b72e12 fix for crashes when stopping or restarting DHT 2007-02-25 09:42:43 +00:00
Arvid Norberg 56a7fc35bc may have fixed a problem with an uncaught exception when the network plug is pulled 2007-01-04 15:44:23 +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 400aeaa347 fixed bug in sending announce messages 2006-12-14 00:54:37 +00:00
Arvid Norberg ce9eed5ea1 fixed incorrectly named members of session_status, fixed compilation error in ut_pex, documentation updates 2006-11-28 18:18:37 +00:00
Arvid Norberg c52de08421 added more logging and modified the resource allocation algorithm. A new, looser, upload and download bandwidth limiter is now used, in order to be able to use more of the available bandwidth 2006-11-19 15:29:58 +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 340d8a1cbc removed incorrect assert hit when rebinding the dht service port 2006-10-24 11:52:30 +00:00
Arvid Norberg 599cfe3820 moved a stderr log to the verbose log 2006-10-02 10:06:31 +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 004d3771cb added first version of an IPv6 extension and docs 2006-09-21 18:22:26 +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 bdf1bbc8f4 changed the file format for storing the DHT routing table to support IPv6. Changed the address used to be IPv4-IPv6 independent (ip_filter still onlt works with IPv4). Added default boost-build features to the building documentation. Completed the jamfile's support for building without DHT support. Updated documentation with these changes. 2006-09-01 03:06:00 +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 e340485974 fixed possible problem with errors occuring and reported to dht_tracker::on_receive. 2006-08-01 16:59:12 +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