Commit Graph

276 Commits

Author SHA1 Message Date
Arvid Norberg 1422f5a1ba merged logging fix from RC_0_16 2012-12-15 02:50:47 +00:00
Arvid Norberg 27db5e3f49 use random() instead of rand() 2012-12-10 08:08:20 +00:00
Arvid Norberg 6d7e9e4521 remove some iostream dependencies 2012-10-12 04:50:34 +00:00
Arvid Norberg e44225cb57 merged uTP fix from RC_0_16 2012-10-05 03:20:40 +00:00
Arvid Norberg bff648a89e update copyright dates and add tool to do so 2012-10-02 03:16:33 +00:00
Arvid Norberg 3d7dc768da use random peer IDs in anonymous mode 2012-07-08 22:47:25 +00:00
Arvid Norberg 57769bab11 fix some compiler warnings 2012-06-25 14:17:51 +00:00
Arvid Norberg 5275e75fa5 back-port deletion of the redundant peer_connection constructor from libtorrent_aio 2012-05-14 05:43:45 +00:00
Arvid Norberg 49f74be42f make super-seeding a bit more robust 2012-04-23 05:48:46 +00:00
Arvid Norberg 697fa4911b add asserts for peers to be destructed in the network thread 2012-03-30 04:29:54 +00:00
Arvid Norberg b58a96d76b log stats of incoming piece requests 2012-03-09 06:24:01 +00:00
Arvid Norberg 5a23d04143 fix some clang warnings 2012-02-18 08:23:48 +00:00
Arvid Norberg a31134d4a4 fix some invariant check failures in metadata transfer edge cases 2012-02-10 07:31:40 +00:00
Arvid Norberg 8b459a27bd remove 'encrypted peer connections' feature (ssl is a better idea) 2012-02-09 06:23:58 +00:00
Arvid Norberg a6b5f761e8 rename is_local to is_outgoing and m_active to m_outgoing 2012-02-07 03:46:21 +00:00
Arvid Norberg 4706807300 fix issue with outgoing connections not being tied to a torrent 2012-01-21 21:29:22 +00:00
Arvid Norberg ae90a8f85e verify that torrent names matches the DNS name in its certificate (RFC 2818-style). Fix issues that was breaking SSL support and tidy up a bit 2012-01-15 23:34:43 +00:00
Arvid Norberg 61e8d3dd49 improved peer exchange performance by sharing incoming connections which advertize listen port 2012-01-04 20:49:54 +00:00
Arvid Norberg c4dded04ca fixed small memory leak in DHT 2011-11-28 11:11:29 +00:00
Arvid Norberg f979f7a77b make receive_buffer() not return a range exceeding the actual buffer 2011-11-27 01:08:28 +00:00
Arvid Norberg 9a49372368 fix invariant check now that interest is calculated lazily 2011-11-03 09:20:16 +00:00
Arvid Norberg 9afd09d797 optimize sending buffers on peer sockets by corking and uncorking 2011-10-24 04:22:53 +00:00
Arvid Norberg 5e3e4c6146 fixed typo in hash-piece parser 2011-10-23 09:21:07 +00:00
Arvid Norberg d3fb55e1da optimize socket send buffers a bit 2011-10-19 02:40:37 +00:00
Arvid Norberg e1bfd8541f fixed bugs in dont-have and upload-only extension messages 2011-10-11 07:20:12 +00:00
Arvid Norberg 469414d486 initial BitTorrent over SSL support 2011-09-12 03:51:49 +00:00
Arvid Norberg 92bcb9ebfd feature to encrypt peer connections with a secret AES-256 key stored in .torrent file 2011-09-05 05:50:41 +00:00
Arvid Norberg 8f1a811306 fix bug in verbose logging with encryption 2011-08-31 20:38:48 +00:00
Arvid Norberg ec74d500a4 clean up encryption code some 2011-08-29 02:00:17 +00:00
Arvid Norberg bf2e4df2b2 fix build with std::tr1::array instead of boost::array 2011-08-07 23:40:39 +00:00
Arvid Norberg d4958c9286 support for dont-have extension message 2011-08-07 00:41:13 +00:00
Arvid Norberg 0f72cd3148 fix merkle torrents assert 2011-08-05 06:10:12 +00:00
Arvid Norberg 060b849dda factor encryption handler a bit and add proposal for an authentication extension 2011-06-18 16:58:36 +00:00
Arvid Norberg 88fa0b9393 optimize send buffer allocation and deallocation by not allowing requiring contiguous buffers 2011-05-19 02:41:28 +00:00
Arvid Norberg e946ba654f release assert fixes 2011-05-08 23:52:06 +00:00
Arvid Norberg a73960aa5a support release asserts 2011-05-08 09:04:59 +00:00
Arvid Norberg 449733d518 logging fixes 2011-05-01 08:58:45 +00:00
Arvid Norberg 2ab17b7a51 handle incoming invalid piece messages sizes 2011-04-28 08:55:27 +00:00
Arvid Norberg 3435da235d make is_upload_only() be accurate and deal with super seeding special case only where necessary. Fix pointless assert in invariant check 2011-04-09 23:57:56 +00:00
Arvid Norberg ab3b82b8ee replaced std::rand() with custom random generator 2011-02-26 07:55:51 +00:00
Arvid Norberg 5f5ba94462 cleared some variables in constructors and got rid of an unnecessary constructor 2011-02-25 04:28:32 +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 10a00fc62b fixed extended handshake error handling to be more robust and fix extension message precedence over plugins 2011-02-19 21:20:03 +00:00
Arvid Norberg fa40cf38aa demoted some errors to regular disconnect messages 2011-02-04 06:55:39 +00:00
Arvid Norberg 0c16163e71 fix build with no extensions support 2011-01-29 12:13:49 +00:00
Arvid Norberg 1074fc1f31 fixed some uninitalized variables 2010-12-24 23:54:03 +00:00
Arvid Norberg 451c583023 more robust mechanism to determine external IP 2010-12-24 01:31:41 +00:00
Arvid Norberg 76f1a9aad0 verbose logging cleanup 2010-12-19 19:40:32 +00:00
Arvid Norberg f4746f4090 verbose logging cleanup 2010-12-01 04:22:03 +00:00
Arvid Norberg 6ec7c85746 fixed build issues with default logging level 2010-11-30 02:39:36 +00:00
Arvid Norberg e5f980d80d merged uTP branch into trunk (yay) 2010-11-29 01:33:05 +00:00
Arvid Norberg 94a25a3953 fix one more assert (hopefully) 2010-11-14 10:57:10 +00:00
Arvid Norberg 26b48530d2 fixed some incorrect encryption asserts 2010-11-14 01:06:52 +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 b6f92aa981 added initial support for share-mode 2010-09-05 16:01:36 +00:00
Arvid Norberg a8cc326df6 minor redundant connection fixes 2010-09-05 04:31:13 +00:00
Arvid Norberg 3310198dae added upload and download activity timer stats for torrents 2010-07-08 19:29:38 +00:00
Arvid Norberg 079109f657 move handling of upload_only message to after plugins has a chance to react 2010-07-08 00:02:38 +00:00
Arvid Norberg f981f6438e fixed typo in recent metadata-send buffer fix 2010-06-24 17:39:59 +00:00
Arvid Norberg 69001e6a6b fixed bug in metadata extensions combined with encryption 2010-06-18 05:44:08 +00:00
Arvid Norberg dce2edb6cc fixed vs 2010 build 2010-04-30 19:08:16 +00:00
Arvid Norberg 2a55fe8c70 debug logging fixes 2010-04-14 18:52:13 +00:00
Arvid Norberg 384bfdec48 added anonymous mode to disable some particular features that might give away the user's and the client's identity 2010-04-13 04:30:34 +00:00
Arvid Norberg ef21d26257 don't assert on clients sending bad packets 2010-04-11 17:22:21 +00:00
Arvid Norberg 5224e0c340 complete_ago extension 2010-03-19 18:39:51 +00:00
Arvid Norberg a99f18514a fixed no-ssl build 2010-02-25 19:19:12 +00:00
Arvid Norberg b58871bb7a no need for lazy bitfield on encrypted connections 2010-02-21 01:38:00 +00:00
Arvid Norberg e71f70a98d no need to disconnect peers that send DHT_PORT message without advertising support for it 2010-02-18 05:27:58 +00:00
Arvid Norberg b1c12d4c69 added debug assert when receiving garbage. Especially useful when running the unit tests 2010-01-17 21:49:26 +00:00
Arvid Norberg 3c364731e8 don't ever send allowed fast messages to peers that doesn't support fast extensions 2010-01-17 21:26:47 +00:00
Arvid Norberg 018da0e29f fix to suggest pieces patch 2010-01-17 21:06:08 +00:00
Arvid Norberg c9b594fde1 support sending suggest messages based on what's in the read cache. support 'explicit read cache' 2010-01-15 16:45:42 +00:00
Arvid Norberg d84c59d13b upload only fix 2009-12-05 16:46:10 +00:00
Arvid Norberg 1c63a0e032 added some invariant checks to bt_peer_connection 2009-11-29 19:38:32 +00:00
Arvid Norberg 1f5859d31f error_code fix. added is_error_code_enum template specialization and using the abbreviated syntax to build error_codes 2009-11-29 07:06:38 +00:00
Arvid Norberg 39dae9e6dc some GCC 2.95 support fixes and some BeOS support 2009-11-28 22:41:21 +00:00
Arvid Norberg ddceb1487d fixed building with no IPv6 support 2009-11-27 18:46:29 +00:00
Arvid Norberg 8dd244581d header optimizations 2009-11-26 05:45:43 +00:00
Arvid Norberg 2280454a99 support upload-only extension message 2009-11-24 18:49:59 +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 5e2254df97 fix bug where a choke when the last block is outstanding would cause the outstanding_bytes counter to be incorrect 2009-08-05 18:20:33 +00:00
Arvid Norberg 78a6df0b2a connect candidate fix 2009-08-01 22:48:43 +00:00
Arvid Norberg ad1e575a6e trim tracker urls and renamed isprint to is_print 2009-06-23 01:53:47 +00:00
Arvid Norberg 07bcb3545a converted a whole lot of error strings into error_codes. Documented some previously undocumented alerts as well as all the error codes 2009-06-12 16:40:38 +00:00
Arvid Norberg 6b2148cb39 removed redundant code 2009-05-23 21:42:29 +00:00
Arvid Norberg 46c286eea3 assert fixes 2009-05-12 18:24:16 +00:00
Arvid Norberg bc20af9375 ban self-connections, in order to not try them again 2009-05-07 05:10:19 +00:00
Arvid Norberg c8176cca55 optimized peer storage in resume data an in memory. Should use far less memory than previously for the peer list. Introduced peer source affinity, to avoid problem with a peer list that's diluted with stale peers 2009-05-06 22:36:24 +00:00
Arvid Norberg 641abc6c4a slight memory optimization and some header cleanup 2009-05-03 20:21:24 +00:00
Arvid Norberg 3cf34e3a91 greatly optimised memory usage for peer list 2009-04-30 05:49:46 +00:00
Arvid Norberg 7109b86566 greatly simplified the rate limiter and generalized all rate limits (peer, torrent, global) to allow for arbitrary rate limit configurations 2009-04-26 00:21:59 +00:00
Arvid Norberg b324d4a190 fixed potential buffer overrun in verbose logging builds 2009-04-25 18:39:44 +00:00
Arvid Norberg 73f4b06100 fixed merge error 2009-04-22 17:56:19 +00:00
Arvid Norberg 3c51ceb7c5 fixed bug when receiving keepalive message 2009-04-21 19:27:52 +00:00
Arvid Norberg dd67612e9b fixed assert when receiving invalid piece 2009-04-17 17:56:58 +00:00
Arvid Norberg 1c01c9ce98 stats fix 2009-04-11 02:19:57 +00:00
Arvid Norberg 2b671bc820 more iostream fixes 2009-04-04 21:44:04 +00:00
Arvid Norberg aba5b2e9d0 dropped some iostream dependencies 2009-04-04 09:52:25 +00:00
Arvid Norberg 7e01b9d990 fix on_piece to check if header is received before parsing it 2009-03-19 16:50:37 +00:00
Arvid Norberg 31054ef069 first implementation of set_piece_deadline 2009-03-17 09:34:44 +00:00