Commit Graph

176 Commits

Author SHA1 Message Date
Arvid Norberg 748af6eec1 general cleanup. remove valgrind markup, log_hash_failures and C headers (#752)
general cleanup. remove valgrind markup, log_hash_failures and C headers
2016-05-23 08:15:39 -04:00
Arvid Norberg e8380e1d0b factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows (#732) 2016-05-17 09:24:06 -04:00
Arvid Norberg c6369194f0 simplify and optimize DHT routing table IP distance comparison (#696) 2016-05-03 23:22:25 -04:00
Arvid Norberg 3c785b96fc Merge pull request #268 from ssiloti/dht-ipv6
Support DHT over IPv6
2016-04-25 19:19:48 -04:00
Andrei Kurushin 62eb956c54 fix x64 build with VS2015 UP2 compiler (#640)
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
Steven Siloti 2d9a6b76f1 use asio::protcol instead of an enum/bool 2016-04-24 15:18:47 -07:00
Steven Siloti 2abd9867ce IPv6 DHT support
Fixes #110
2016-04-24 14:26:57 -07:00
Steven Siloti 11fa4f3e47 support IPv6 in node_entry and m_ips 2016-04-24 14:26:57 -07:00
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
Alden Torres 0f442f59f3 Avoid pass IPv6 address to current implementation of DHT while adding a node 2016-01-09 18:46:19 -05:00
arvidn e06daa68a4 overhaul the dht simulator (setup_dht) to be more flexible and cheaper to run thousands of nodes 2016-01-09 01:08:52 -05:00
arvidn d954ae1b18 simplify dht routing table add 2016-01-02 20:03:18 -05:00
arvidn 07ddb010c5 split buckets when exceeding the next bucket's size, to make sure we split before risking discarding nodes because the next bucket is smaller 2016-01-02 00:45:44 -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
arvidn 332799bff2 make alert types declared final and disable the log alert declarations when logging is disabled 2015-11-29 10:16:02 -05:00
Thomas Yuan f9fa8ffdec Use ping instead of get_peers if current bucket is full. 2015-09-22 10:35:10 -04:00
arvidn b628692223 separate out announce_entry and torrent_status into their own headers 2015-09-18 08:08:08 -04:00
Thomas Yuan 97217a1fd6 A node with an invalid node_id, shouldn't be added to routing table. 2015-09-04 14:04:49 -04:00
arvidn e7b8b6da49 forward port DHT routing table fix from RC_1_0 2015-08-22 15:51:28 +02:00
arvidn 8d8c049d9e fix warnings and invalid defines in disk_io_thread.cpp 2015-08-18 07:55:50 -04:00
arvidn 655a3ae019 fix some warnings 2015-08-01 23:57:11 -04:00
Arvid Norberg d43f7b56a2 update copyright year 2015-06-03 05:18:48 +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 ddfef97696 don't use iostream in dht routing table debug logging 2015-05-08 05:21:26 +00:00
Arvid Norberg f0336017d1 fix gcc warnings and missing header files in makefiles 2015-04-26 00:51:44 +00:00
Arvid Norberg 87c46a144d fix more warnings and some build issues 2015-04-22 04:24:45 +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 37225b71ae const static -> static const (thanks gubatron). helps swigs parser 2015-03-14 00:42:27 +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 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 1039d4ae86 tweak some TODO comments and fix one 2014-12-31 14:41:35 +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 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 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 645d3cdb32 merge fixes from RC_1_0 2014-09-20 19:27:29 +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 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 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 a943fec777 update copyright 2014-02-23 19:12:25 +00:00
Arvid Norberg e0644ce8f5 invariant check macro fixes 2014-01-21 19:26:09 +00:00
Arvid Norberg b621f3f00a merged DHT fix from RC_0_16 2014-01-17 04:49:04 +00:00
Arvid Norberg 89d5582560 merged dht fix from RC_0_16 2014-01-07 08:52:53 +00:00
Arvid Norberg 4e6b1cfbfb update copyright 2013-12-25 17:07:16 +00:00
Arvid Norberg 5d822706e1 add invariant check to dht routing_table 2013-12-20 04:54:52 +00:00
Arvid Norberg f11959b235 fix initialization order warnings 2013-11-28 08:48:17 +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 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 1b888eeec6 optimize DHT 2013-10-20 07:06:42 +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 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 50ecb07d19 merged silencing of warnings from RC_0_16 2013-06-14 16:41:47 +00:00
Arvid Norberg 7223bf17e5 DHT memory optimization 2013-01-28 04:00:23 +00:00
Arvid Norberg 9c7f685313 improve debug logging of dht routing table 2013-01-20 19:51:57 +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 806b7c85eb fix minor issue 2012-12-22 01:29:55 +00:00
Arvid Norberg bff648a89e update copyright dates and add tool to do so 2012-10-02 03:16:33 +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 57769bab11 fix some compiler warnings 2012-06-25 14:17:51 +00:00
Arvid Norberg ca6bb805b4 fix possible integer overflow in dht 2012-05-05 18:52:16 +00:00
Arvid Norberg e6640de205 updated IP->ID formula for DHT 2011-05-26 17:04:53 +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 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 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 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 47f3a18d65 DHT bootstrapping and refresh fix 2010-02-20 16:37:50 +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