Commit Graph

446 Commits

Author SHA1 Message Date
Arvid Norberg 36c9add067 don't print stuff to stdout in debug builds. when waking up from completing a connection attempt, exit immediately if the connection is disconnecting, or disconnect if we're in graceful pause mode. some test cleanups 2014-01-26 08:18:13 +00:00
Arvid Norberg f0d1e8636c extend verbose logging to try to catch test_priority failure on windows 2014-01-26 04:45:49 +00:00
Arvid Norberg e0644ce8f5 invariant check macro fixes 2014-01-21 19:26:09 +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 4e6b1cfbfb update copyright 2013-12-25 17:07:16 +00:00
Arvid Norberg 603eea7e60 fix one more ifdef issue 2013-12-21 05:59:26 +00:00
Arvid Norberg be8c918158 fix TORRENT_DISABLE_EXTENSIONS issues (specifically when enabling it) 2013-12-20 08:35:29 +00:00
Arvid Norberg 4170b3adac fix verbose logging build 2013-12-20 06:43:57 +00:00
Arvid Norberg faa53d7657 member re-order and struct packing 2013-12-02 04:24:10 +00:00
Arvid Norberg fc2fc8dfb2 fix initialization order warnings. pack peer_connection and torrent 2013-11-26 07:47:48 +00:00
Arvid Norberg fde0d6994d fix build with encryption disabled 2013-11-10 11:05:11 +00:00
Arvid Norberg dafa812109 merged fixes from RC_0_16 2013-11-08 07:23:36 +00:00
Arvid Norberg cbe3a72a6e merged i2p fix from RC_0_16 2013-10-27 19:56:37 +00:00
Arvid Norberg fb60de086b merge some cleanup and fixes from libtorrent_aio 2013-10-12 06:03:19 +00:00
Arvid Norberg 2df72d276e when evicting peers waiting to establish connection, evict the ones that have been trying for the longest first 2013-09-14 21:47:31 +00:00
Arvid Norberg 50ecb07d19 merged silencing of warnings from RC_0_16 2013-06-14 16:41:47 +00:00
Arvid Norberg 7745a2831d merged encryption settings fix from RC_0_16 2013-05-08 05:43:17 +00:00
Arvid Norberg a0caa0f4b2 disable invariant_check functions when invariant checks are disabled 2013-02-25 04:13:46 +00:00
Arvid Norberg 5bc3028291 make some stats more configurable and reorder some fields 2013-02-23 22:13:25 +00:00
Arvid Norberg bca1d62bbe merged close_redundant_connections fix from RC_0_16 2013-01-27 21:25:06 +00:00
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
Arvid Norberg 84a513bffb initial support for merkle hash tree torrents 2009-03-13 06:09:39 +00:00
Arvid Norberg 80a51ad89d improved error handling of out of memory conditions 2009-02-22 20:52:55 +00:00
Arvid Norberg 2a9605f9db the reserved bits are only 8 bytes 2009-02-13 07:17:20 +00:00
Arvid Norberg 373c19dadd build fix for no encryption build 2009-02-12 03:57:53 +00:00
Arvid Norberg 7607286f50 fixing bug where the trailing bits in bitfields were not set to 0. Fixes #482 2009-02-06 08:51:25 +00:00
Arvid Norberg bcd93da465 fixed encryption asserts 2009-02-04 05:51:00 +00:00
Arvid Norberg b245d45570 fixed encryption bug 2009-01-28 04:20:05 +00:00
Arvid Norberg 37c48117b0 fix potential bug (and warning on sunpro) in the send_buffer signature 2009-01-27 06:57:55 +00:00
Arvid Norberg 952ed687cd made session stats config build 2008-12-26 07:00:21 +00:00
Arvid Norberg b41cdd6469 initial super seeding support 2008-12-08 06:36:22 +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 51393dabdf fixed typo 2008-11-17 19:19:45 +00:00
Arvid Norberg 370ee02ef6 fixed incorrect assert when receiving a 0-size piece message 2008-11-17 19:12:34 +00:00
Arvid Norberg 71fb640699 fix to count download stats when a peer has disconnected or sends an invalid message id 2008-11-06 09:01:27 +00:00
Arvid Norberg 17c250349e fix for when update_peer_port() disconnects 2008-11-01 19:34:12 +00:00
Arvid Norberg f7b22e3517 return if disconnected by extension 2008-10-23 16:31:15 +00:00
Arvid Norberg 13554cbd3b transfer stats assert fix 2008-10-09 03:33:53 +00:00
Arvid Norberg 468ec140ac fixed invalid invariant check 2008-10-07 03:57:18 +00:00
Arvid Norberg dd40d24708 more stats assert fixes 2008-10-01 15:19:31 +00:00
Arvid Norberg dc3c5d0bd7 more fixes to not trigger the stat asserts 2008-09-30 18:52:53 +00:00
Arvid Norberg 0ae891118b fixed stats reporting in bt_peer_connection 2008-09-24 02:38:20 +00:00
Arvid Norberg 13b343c1af added assertions that the stats is updated properly when receiving and sending bytes on peer_connections 2008-09-21 17:12:26 +00:00
Arvid Norberg 98f9d5826c fixed busted is_any check for 'ipv6' key in extended handshake 2008-09-20 16:21:16 +00:00
Arvid Norberg f3d542fb2c fixed inconsistent upload_only and seed in some cases when running a metadata-less torrent 2008-09-19 23:02:45 +00:00
Arvid Norberg c7c0974d3f fixed bugs in verbose logging 2008-09-04 14:39:02 +00:00
Arvid Norberg 92ed7fb364 fixed metadata extension issues 2008-08-29 17:21:56 +00:00
Arvid Norberg e58485822b optimized encryption 2008-08-20 23:05:12 +00:00
Arvid Norberg 89907cdae8 fix no-metadata case to not send any other messages before the bitfield (which is sent once we have the metadata) 2008-08-16 22:07:15 +00:00
Arvid Norberg 429a118dd2 keep track of interest more tightly. better support for upload_only 2008-07-18 10:03:42 +00:00
Arvid Norberg 72b99059e7 optimized policy::peer 2008-07-14 11:15:35 +00:00
Arvid Norberg a20f1a8fa0 keeps track of the number of requests waiting in the send buffer and adjusts bandwidht priority accordingly in the bandwidth limiter 2008-07-08 00:03:08 +00:00
Arvid Norberg f7042ca84a improved piece timeout and peer snubbing logic 2008-07-07 12:04:06 +00:00
Arvid Norberg b354e7e0d9 fixed bug in extension loop 2008-07-01 20:22:25 +00:00
Arvid Norberg 10f5418ce7 switched extension handshake parsing over to use lazy_bdecode for improved performance 2008-07-01 08:04:12 +00:00
Arvid Norberg d132dd45e3 removed exceptions from pe_crypto and improved error handling 2008-06-28 10:10:05 +00:00
cg25 ff3e80c42f Removed svn:executable property from {c,h}pp files in branches/RC_0_13 and
trunk.
2008-06-25 14:15:21 +00:00
Arvid Norberg 9f5fa96cad fixed bug related to m_have_piece optimization. Renamed num_pieces() to num_have() to avoid confusion 2008-06-07 14:03:21 +00:00
Arvid Norberg 9d1e77dc88 optimized away torrent::m_have_pieces (#62) and added some documentation on bitfield. The piece picker is now constructed with the torrent, but still freed when turned into a seed 2008-06-07 02:58:28 +00:00
Arvid Norberg f12e1d26b7 Fixed bug in on_bitfield. Fixes #342 2008-06-02 06:52:24 +00:00
Arvid Norberg 68c31e48dc replaced vector<bool> with a custom bitfield type 2008-05-28 02:35:02 +00:00
Arvid Norberg 111f5faecb upload only extension 2008-05-18 05:59:47 +00:00
Arvid Norberg f259e34f86 peer_connection fix for incoming connections 2008-05-12 10:10:39 +00:00
Arvid Norberg 068adcd9a9 indentation fix 2008-05-12 06:03:31 +00:00
Arvid Norberg eabe9cad2d improved plugin support 2008-05-12 03:05:27 +00:00
Arvid Norberg d15573ecc2 disk receive buffer cleanup 2008-05-05 06:25:22 +00:00
Arvid Norberg c7e6c04705 switched over to asio from boost-1.35 2008-05-03 16:05:42 +00:00
Arvid Norberg c043d4b21d initial support for queuing 2008-04-24 03:28:48 +00:00
Arvid Norberg 093d912e9a receive buffer optimization. added receive_buffer_size and used_receive_buffer to peer_info. changed plugin api to make use of new disk_buffer_holder type 2008-04-10 10:03:23 +00:00
Arvid Norberg 64a195651d cleaned up some crypto code 2008-04-08 05:51:12 +00:00
Arvid Norberg 7657878b48 exception fix 2008-04-07 02:07:23 +00:00
Arvid Norberg 35fd9aec61 msvc build fixes and warning fixes 2008-04-05 21:18:27 +00:00
Arvid Norberg 1511f2f59b removed calls to self() from inside constructors in peer connections 2008-03-31 04:46:24 +00:00
Arvid Norberg 45a7329d5c added alert for when the client's external IP is received 2008-03-29 22:45:55 +00:00
Arvid Norberg cf5c9344ab made peer connection order depend on ones external IP or be random (if we don't know our external IP). Should fix #281 2008-02-28 03:09:34 +00:00
Arvid Norberg a25c25b02a fixed windows build and removed msvc warnings 2008-02-25 10:28:53 +00:00
Arvid Norberg 1c82ef36d8 improved support for out-of-memory conditions 2008-02-05 05:51:05 +00:00
Arvid Norberg 684bade8ea fixed hard coded pad size (for encrypted connections) to be properly randomized 2008-01-31 06:34:43 +00:00
Arvid Norberg 61bbc6e58f initial https support for trackers and http_connection. Added support for proxies to http_connection 2008-01-27 22:39:50 +00:00
Arvid Norberg cf4036310b changed the way connections are disconnected. improved logging. Does not depend on exceptions anymore 2008-01-07 01:10:46 +00:00
Arvid Norberg fcd2408f11 fast extension fix, added some logging for fast extension messages, improved test to catch the problem 2008-01-02 03:18:29 +00:00
Arvid Norberg 44735a425f fix bitfield assert 2007-12-22 19:10:38 +00:00
Arvid Norberg ba172954e6 accept have messages without having metadata and without having received a bitfield 2007-12-20 23:58:58 +00:00
Arvid Norberg 2ed210fd8a fixed assert, #164 2007-11-19 07:07:57 +00:00
Arvid Norberg c982ba5d90 encryption fix 2007-10-31 23:51:45 +00:00
Arvid Norberg 1a280e31fa cleanup. changed the connection map into a set of peer_connections. moved the policy object into the torrent (as opposed to being a pointer). Fixes issues with multiple peers on the same IP. Reduces some lookups. 2007-10-31 09:48:20 +00:00
Arvid Norberg 1699fa4652 fast reconnect fixes 2007-10-15 05:03:29 +00:00
Arvid Norberg 28113c9c42 parole mode improvement. Doesn't clear out the request queue when choked by a peer on parole anymore 2007-10-10 02:27:55 +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 2940d253c3 completed fast reconnect fix 2007-10-04 21:26:50 +00:00
Arvid Norberg 7ddc7c2258 fast reconnect in case encrypted connection fails 2007-10-04 09:46:12 +00:00
Arvid Norberg 3dcae188fb policy now has a map of peers instead of a flat list, makes it more efficient to do lookups 2007-10-02 19:11:04 +00:00
Arvid Norberg b48948e231 changed the double send buffers to a chained buffer using iovec send operations. buffers are recycled (saves memory and cpu) and memory copies are avoided (saves cpu). More statistics is added to track buffer usage 2007-09-29 16:14:03 +00:00
Arvid Norberg 2e93b92cb4 more IPv6 fixes. support for multihomed machines by listening on multiple interfaces. added listen_succeeded_alert to advertize which interfaces are being listened on 2007-09-22 16:27:29 +00:00
Arvid Norberg ba437cf72e some more IPv6 support 2007-09-19 21:54:26 +00:00
Arvid Norberg 73bb0c05ad added 'incoming' peer source 2007-09-15 20:17:23 +00:00
Arvid Norberg 35247e5912 fixed #151 2007-09-09 22:45:31 +00:00
Arvid Norberg 61c269efee added timeout for interested peers that don't request once they're unchoked. Added support for suggest_piece 2007-09-01 07:38:10 +00:00
Arvid Norberg b05500570c added parenthesis around std::min and std::max for msvc compatibility 2007-08-16 22:14:17 +00:00
Arvid Norberg b62bb7944f merged fast-extension => trunk. the fast extension branch is now closed 2007-08-14 17:47:48 +00:00
Arvid Norberg 430534bf3f fixed incorrect assert 2007-07-10 18:55:14 +00:00
Arvid Norberg 182c917842 optimized peer_connection by postponing diffie hellman key creation and generation of handhake until the connection has succeeded 2007-07-09 04:22:38 +00:00
Arvid Norberg a46ef3ece8 changed the handshake 'ip' to 'yourip' 2007-07-07 01:36:40 +00:00
unsh fa90161327 Fixed #71 2007-06-30 07:28:44 +00:00
Arvid Norberg 340a91e2a4 fixed #74 2007-06-21 00:51:42 +00:00
Arvid Norberg 756db24b75 logs pad size when using encryption 2007-06-18 17:12:42 +00:00
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg 6447a074eb fixes to allow-multiple-connections-per-ip and a unit test that run a swarm of 3 local peers 2007-06-08 23:02:31 +00:00
unsh e858cbc1ae fixes for r1331 2007-06-07 11:04:00 +00:00
unsh 7996d35395 added invariant checks 2007-06-07 10:18:13 +00:00
Arvid Norberg 273f8bd921 merged back encryption branch to trunk 2007-06-06 00:41:20 +00:00
unsh 41cf912501 merged lazy bitfields fixes (r1316, r1320) 2007-06-05 10:20:45 +00:00
Arvid Norberg 9fe77101ed added support for lazy bitfields 2007-05-26 22:27:40 +00:00
Arvid Norberg bb71832f5f exposed some more peer info 2007-05-25 19:42:10 +00:00
Arvid Norberg 685f79b82f option to ignore bandwidth limits for local peers. fixed some asserts when allowing multiple connections per IP 2007-05-25 17:06:30 +00:00
Arvid Norberg 54805ca60b added option to disable country resolving 2007-05-02 19:47:38 +00:00
Arvid Norberg 00948e9fc4 first attempt to implement SOCKS5 and proper HTTP proxy support. fixes #22 2007-04-25 18:26:35 +00:00
Arvid Norberg d43a6b80bf added an abstraction layer or tcp sockets, to be able to support socks proxys 2007-04-23 21:36:21 +00:00
Arvid Norberg 4b750a29d2 made the logging of bitfields slightly faster 2007-04-17 21:18:52 +00:00
Arvid Norberg 40804a829b failcount is reset on a peer that successfully connects. documented max_failcount and min_reconnect_time. implemented seed optimization for piece_picker (inc_refcount_all and dec_refcount_all), ticket #17 2007-04-15 02:14:02 +00:00
Arvid Norberg a22ad5ad33 added failcount to peer_info. fixes #31 2007-04-13 20:19:04 +00:00
Arvid Norberg 3ed24da320 added source to peer_info, which is a bitmask of the sources where the peer has been acquired from 2007-04-10 21:23:13 +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 ec2962dd62 extensions are now instantiated for web seeds as well 2007-04-02 20:00:24 +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 ecaa3068d5 added natpmp support. bumped version number to 0.13. added piece priority support to the piece picker. optmized and simplified the piece picker in the process. 2007-03-15 22:03:56 +00:00
Arvid Norberg be574bcc33 removed old commented out code. polished client_test output 2007-03-02 06:49:00 +00:00
Arvid Norberg 98b92e3f02 fixed problems in the network layer that made web seeds fail some times. prepared for proxy support in peer connections. worked on the http seeding. added support for web seeds in make_torrent tool 2007-02-12 05:46:29 +00:00
Arvid Norberg 1a0547a15c removed chat extension code that was commented out 2007-01-30 22:40:21 +00:00
Arvid Norberg f14c84b01e fixes in DHT to make it work when the number of transaction slots are full (very rare case). Added a feature to (optionally) resolve the countries of peers and updated the docs (see peer_info::country). 2007-01-29 07:39:33 +00:00
Arvid Norberg 87f7b186b0 replaced the bandwidth throttling code with a leaky bucket for better accuracy 2007-01-10 15:02:25 +00:00
Arvid Norberg 947df91b20 improved support for multiple connections per ip 2006-11-30 11:56:19 +00:00
Arvid Norberg f56cd20a1e only sends the local listen port in the extension message for outgoing connections 2006-11-26 17:44:15 +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 51e3261dd0 the file pool has been moved to the session and its size can be controlled via session_settings. Added untested option to allow multiple connections from the same IP. 2006-11-14 15:53:38 +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 f0519e86e8 separated session from session_impl and made a real pimpl-class of it. Introduced the possibility to destruct the sessions async. 2006-10-11 14:02:21 +00:00
Arvid Norberg c687c428c4 removed incorrect asserts. added ip to the extension header. removed the mandatory libtorrent suffix on the user agent 2006-09-28 00:49:40 +00:00
Arvid Norberg a42189af62 removed out dated comments 2006-09-23 21:23:24 +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 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
Arvid Norberg e6bb265d94 replaced http_settings with session_settings and introduced more settings 2006-05-20 23:24:19 +00:00
Arvid Norberg 262e97f21d updated to latest version of asio. fixed a problem with low resolution timers in the second_tick code found by Massaroddel. 2006-05-20 15:30:40 +00:00
Arvid Norberg 0b529e8f96 added a setting for max outstanding requests, and a limit for BitComet since it's known to have a very low limit, also added an extension header to specify it. Fixed another unnecessary delay spotted by Tianhao Qiu. Cleaned up the logging class a bit. Fixed a bug that would cause an assert when removing a torrent queued for checking. 2006-05-14 22:30:05 +00:00
Arvid Norberg 18cb6736ea fixed a serious bug where corrupt messages could be sent out. 2006-04-30 00:39:18 +00:00
Arvid Norberg 41810b1166 merged back the asio development branch 2006-04-25 21:04:48 +00:00