Commit Graph

814 Commits

Author SHA1 Message Date
Arvid Norberg 7f3aac3959 fix issue with unchoke_slots_limit not preserving its value correctly 2011-12-19 05:53:11 +00:00
Arvid Norberg 8e8f798905 get rid of read-recurse hack 2011-11-30 20:07:18 +00:00
Arvid Norberg cab1f3d207 fix issue when peer list is full, previously we would sometimes reject new connections 2011-11-24 17:50:57 +00:00
Arvid Norberg fdc5e7e8b2 keep track of where redundant downloads come from. make the timing out of block requests more reasonable in an attempt to actually complete pieces from other peers when stuck on a slow one 2011-11-16 02:29:59 +00:00
Arvid Norberg c4232065d8 introduced a more scalable API for torrent status updates (post_torrent_updates()) 2011-11-15 02:34:00 +00:00
Arvid Norberg 3eb1b1839d add verbose peer logging for setting TOS byte 2011-11-10 09:18:55 +00:00
Arvid Norberg 9a49372368 fix invariant check now that interest is calculated lazily 2011-11-03 09:20:16 +00:00
Arvid Norberg ec80a85bdb fixed connection setup and teardown issues 2011-10-28 23:34:55 +00:00
Arvid Norberg dfda3c9a95 another channel state fix 2011-10-28 22:56:23 +00:00
Arvid Norberg 85ff124503 one more channel stat fix 2011-10-28 21:38:45 +00:00
Arvid Norberg becd714bc8 channel state fix 2011-10-27 08:42:51 +00:00
Arvid Norberg 602e0089f9 fixed silly typo 2011-10-26 01:00:53 +00:00
Arvid Norberg e58e27e83a change peer_states to be a bitmask (bw_limit, bw_network, bw_disk) 2011-10-25 17:34:42 +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 d3fb55e1da optimize socket send buffers a bit 2011-10-19 02:40:37 +00:00
Arvid Norberg a9b51e1579 fix overflow issue when determining number of outstanding bytes 2011-10-18 16:22:36 +00:00
Arvid Norberg 8b6522a763 log buffer sizes passed to read() and write() at the socket layer (to identify performane problems) 2011-10-17 06:54:02 +00:00
Arvid Norberg aab4cb6937 log number of asio messages passed through the queue per second (to track down performance issue) 2011-10-17 05:17:21 +00:00
Arvid Norberg 451c31828f changed semantics of send_buffer_watermark_factor to be specified as a percentage 2011-09-23 21:12:28 +00:00
Arvid Norberg 61ceacca9b fix non-openssl logging build 2011-09-21 03:51:07 +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 51c10cc76f on disk errors, only set upload-only for some errors. For all others, pause the torrent. Also fixed some release asserts 2011-08-22 01:37:56 +00:00
Arvid Norberg 1d40d7aad9 fixing up some asserts and verbose logging 2011-08-13 18:46:52 +00:00
Arvid Norberg d4958c9286 support for dont-have extension message 2011-08-07 00:41:13 +00:00
Arvid Norberg 6a4708ef15 fix potential infinite loop in request_time_critical_pieces 2011-08-05 17:35:09 +00:00
Arvid Norberg 57f24128a9 add more default reporting about the request and download queue of peers to track end-game stall issue 2011-06-06 04:24:12 +00:00
Arvid Norberg ae76e77065 fix up some cases where we shouldn't be in end-game mode 2011-06-01 09:14:21 +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 6e23b9f5a6 allow torrents to keep running when they encounter an error (such as disk full) but still report the error in the torrent's error string 2011-05-16 07:47:21 +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 eaea22be71 make torrent priority stricly prefer unchoking peers on high priority torrents 2011-04-30 20:33:35 +00:00
Arvid Norberg 90719bf77d fixed bug when receiving a have message before having the metadata 2011-04-29 02:45:02 +00:00
Arvid Norberg bbde8f772a fix bug in seed mode when a piece fails hash check 2011-04-28 06:36:44 +00:00
Arvid Norberg ebd116cce3 clean up disk callbacks a bit with regards to whether the torrent is still alive 2011-04-28 03:23:14 +00:00
Arvid Norberg 1723e2d4f7 don't time out peers as long as we can upload to them 2011-04-27 08:05:37 +00:00
Arvid Norberg 573a291495 first step to remove recursion in bandwidth channel 2011-04-21 03:13:53 +00:00
Arvid Norberg 6a9865b7c9 fix invariant check for graceful pause 2011-04-11 02:57:32 +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 65943e7ff7 fixed reconnect delay when leaving upload only mode 2011-03-25 05:14:14 +00:00
Arvid Norberg 7e07f7469f fixed bug in web_connection_base when receiving chunked encoding and made sure the unit tests pass 2011-03-24 16:46:26 +00:00
Arvid Norberg 057dab11e0 fix bug in recent performance warning 2011-03-17 04:56:02 +00:00
Arvid Norberg 6db11079c8 add performance warning when disk write queue exceeds half of the write cache size 2011-03-16 07:45:51 +00:00
Arvid Norberg f9f5e3138c fix suggest piece bug 2011-03-15 01:58:48 +00:00
Arvid Norberg be4f593ddf fix warning 2011-03-13 08:07:33 +00:00
Arvid Norberg 209bee16bf choker fix. some logic had made it into the bittyrant choker that would never be used 2011-03-02 07:26:09 +00:00
Arvid Norberg 83e8700615 minor fixes 2011-03-01 21:57:03 +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 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 7f981ece6c fixed incorrect assert 2011-02-15 10:11:36 +00:00
Arvid Norberg c4c1773ceb fixed some warnings 2011-02-15 10:05:25 +00:00
Arvid Norberg 7eba4cc310 fix verbose logging build 2011-02-15 07:39:25 +00:00
Arvid Norberg 7d300c807a no handshake counts as a connect failure 2011-02-14 06:37:22 +00:00
Arvid Norberg 247ad31dc0 more disconnect granularity in stats logging 2011-02-14 05:38:59 +00:00
Arvid Norberg b471e40064 log more details on the cause of disconnects 2011-02-14 04:48:02 +00:00
Arvid Norberg 8bb71da401 disk write queue watermark fix 2011-02-13 22:27:02 +00:00
Arvid Norberg a42d42fd11 CPU optimization for end-game piece picker 2011-02-09 02:56:00 +00:00
Arvid Norberg 5df4e7edd9 added more piece picker stats 2011-02-07 00:51:20 +00:00
Arvid Norberg 3d616f894e end-game mode optimizations 2011-02-06 23:40:21 +00:00
Arvid Norberg adb250cf5c fixed missing logging of peer disconnects 2011-02-04 07:14:00 +00:00
Arvid Norberg fa40cf38aa demoted some errors to regular disconnect messages 2011-02-04 06:55:39 +00:00
Arvid Norberg 88663bfbde log more peer errors in stats log 2011-02-04 04:31:20 +00:00
Arvid Norberg 9715fbdb3a only post peer error alerts for actual errors 2011-02-04 03:49:20 +00:00
Arvid Norberg bf77ee4199 extended stats logging 2011-02-03 06:22:22 +00:00
Arvid Norberg 5456f2ac91 provide more stats with stats builds 2011-02-03 04:09:50 +00:00
Arvid Norberg 6ecf04137f fix stats build 2011-02-01 17:25:06 +00:00
Arvid Norberg 012bfba3f7 fix disk queue counters 2011-02-01 16:55:32 +00:00
Arvid Norberg d393bb4097 report number of peers blocked on disk in session_status 2011-01-30 10:04:15 +00:00
Arvid Norberg 0c16163e71 fix build with no extensions support 2011-01-29 12:13:49 +00:00
Arvid Norberg b230c385d9 clean up logic around waiting for disk write queue to fall below low watermark. optimize peer disconnect. Fix integer overflow bug in uTP/TCP mixed mode algorithm. Fixed some invariant checks for closing connections issues 2011-01-25 08:03:35 +00:00
Arvid Norberg 021a774168 rate limit outstanding-disk performance warnings. don't throttle reading form peers because of disk congestion if the peer isn't downloading payload. Don't time out peers that are not waiting on the network 2011-01-23 02:09:54 +00:00
Arvid Norberg 8c851b4d34 move an assert 2011-01-16 22:22:33 +00:00
Arvid Norberg 8cec51fc47 fixes to make valgrind happy 2010-12-24 01:22:49 +00:00
Arvid Norberg c4422cd34e optimize test_transfer. fix set_upload_mode() bug for seeds. clean up some verbose logging. fix tests to not fail by EAGAIN on stdout 2010-12-24 00:37:01 +00:00
Arvid Norberg 76f1a9aad0 verbose logging cleanup 2010-12-19 19:40:32 +00:00
Arvid Norberg 20d4279177 optimized piece picking to not cause busy loops in some end-game modes 2010-12-18 10:19:34 +00:00
Arvid Norberg f4746f4090 verbose logging cleanup 2010-12-01 04:22:03 +00:00
Arvid Norberg e5f980d80d merged uTP branch into trunk (yay) 2010-11-29 01:33:05 +00:00
Arvid Norberg 2e871382d7 add debug configuration to debug shutdown-stall bugs / outstanding async operations 2010-11-28 01:47:30 +00:00
Arvid Norberg 7cd628e78d fix for unchoking optimistically unchoked peers 2010-11-23 20:36:27 +00:00
Arvid Norberg dc639193db don't time out peers for inactivity if it's caused by a download rate limit or blocking on disk 2010-11-02 06:44:25 +00:00
Arvid Norberg 24916ac908 fixed typo 2010-10-31 22:26:22 +00:00
Arvid Norberg 8737a339c8 refactored verbose peer logging to use format strings 2010-10-31 22:12:26 +00:00
Arvid Norberg e4de1fc8b1 graceful disconnect mode which finishes transactions before disconnecting peers 2010-10-30 08:36:18 +00:00
Arvid Norberg d737dd051d added support for chunked encoding for web seeds 2010-10-27 06:39:18 +00:00
Arvid Norberg cadd4f1b8d anti-leach seeding unchoke mode 2010-10-21 05:53:13 +00:00
Arvid Norberg eba657d8ad reports redundant downloads to tracker, fixed downloaded calculation to be more stable when not including redundant. Improved redundant data accounting to be more accurate 2010-10-18 00:10:33 +00:00
Arvid Norberg 977c2d34dd log ratelimits in peer bandwidth request entry 2010-10-17 17:39:11 +00:00
Arvid Norberg e494cb219b made seeding choking algorithm configurable 2010-10-09 21:11:03 +00:00
Arvid Norberg 21cbd1fac4 deprecated setters for max connections, max half-open, upload and download rates and unchoke slots. These are now set through session_settings 2010-10-09 19:09:38 +00:00
Arvid Norberg 087552f52a fixed another assert in disconnect 2010-10-04 15:49:30 +00:00
Arvid Norberg e1948fa203 make the invariant check less expensive 2010-10-04 03:26:42 +00:00
Arvid Norberg 7d94fff11a fixed one more assert 2010-10-04 03:06:51 +00:00
Arvid Norberg f11b1ce6a0 fixed failing invariant check in peer_connection's download queue 2010-10-03 22:06:53 +00:00
Arvid Norberg 4600dae248 more attempts to fix and catch invariant failure in download_queue 2010-10-03 01:22:11 +00:00
Arvid Norberg d0dab83104 potential fix for long standing invariant check failure 2010-10-02 21:01:11 +00:00
Arvid Norberg a7c87e14dd added functions to query an individual peer's upload and download limit 2010-10-01 16:09:22 +00:00
Arvid Norberg b6f92aa981 added initial support for share-mode 2010-09-05 16:01:36 +00:00
Arvid Norberg 18a3d545b0 fixed potential hang issue when receiving faster than we can handle the incoming messages 2010-08-28 19:44:50 +00:00
Arvid Norberg e2ca3e1545 rate limiter fix 2010-08-27 14:52:42 +00:00
Arvid Norberg b44f71e217 post alerts for socks failures. fix unit tests 2010-08-25 06:22:49 +00:00
Arvid Norberg a85f1f5c61 improved logging 2010-08-18 17:14:40 +00:00
Arvid Norberg 0f8d75c607 removed invalid assert 2010-08-13 15:55:52 +00:00
Arvid Norberg fd5f1bf80b improved SOCKS5 support 2010-08-03 09:08:37 +00:00
Arvid Norberg 1e70456f58 improved support for multi-homed clients 2010-07-17 07:13:14 +00:00
Arvid Norberg 4c6be42b74 added feature to not count downloaded bytes from web seeds in stats 2010-07-15 06:27:44 +00:00
Arvid Norberg 4e576f93fd removed the session mutex for improved performance 2010-07-14 04:16:38 +00:00
Arvid Norberg b3128685d9 replace &x[0] with x.c_str() 2010-06-28 01:12:54 +00:00
Arvid Norberg 06190d8920 fixed bug in web_peer_connection which could cause a hang when downloading from web servers 2010-06-22 18:09:04 +00:00
Arvid Norberg 69001e6a6b fixed bug in metadata extensions combined with encryption 2010-06-18 05:44:08 +00:00
Arvid Norberg b882914461 refactored socket reading code to not use async. operations unnecessarily 2010-06-18 04:43:20 +00:00
Arvid Norberg 2042593750 peer receive logic fix 2010-05-23 21:39:03 +00:00
Arvid Norberg 2b65d104c7 log send suggest message 2010-05-16 22:30:48 +00:00
Arvid Norberg 4ddf87c53e fixed typo 2010-05-13 08:23:04 +00:00
Arvid Norberg 23ba8c8a72 fixed synchronization issue between download queue and piece picker 2010-05-13 06:29:33 +00:00
Arvid Norberg 1a0d33a592 reverted mistake 2010-05-11 05:11:08 +00:00
Arvid Norberg 962c83822e updated project page 2010-05-11 04:49:45 +00:00
Arvid Norberg d1a7e0a581 fixed typo in previous check-in 2010-05-09 06:00:11 +00:00
Arvid Norberg 330f1a2785 fix to incoming-starts-paused torrent 2010-05-09 00:55:22 +00:00
Arvid Norberg c0635f0391 added some asserts to track down issue with peer counter in busy piece picker requests 2010-05-01 16:17:37 +00:00
Arvid Norberg dce2edb6cc fixed vs 2010 build 2010-04-30 19:08:16 +00:00
Arvid Norberg d7c30bc01b fixed potential issue where a piece could be checked twice 2010-04-22 01:53:09 +00:00
Arvid Norberg 56054fac58 another attempt to set peer send state when stalled on disk 2010-04-17 02:21:48 +00:00
Arvid Norberg 17b4cb027c set the peer write state properly when stalled on disk 2010-04-16 19:14:30 +00:00
Arvid Norberg 2a55fe8c70 debug logging fixes 2010-04-14 18:52:13 +00:00
Arvid Norberg 483112bb14 fix bug when accepting incoming connections to paused torrents 2010-04-09 05:54:36 +00:00
Arvid Norberg 7e851818b1 support more fine-grained torrent states between which peer sources it announces too 2010-03-29 00:34:04 +00:00
Arvid Norberg 3e77b161c2 made the send_buffer_watermark performance warning more meaningful 2010-03-20 02:46:33 +00:00
Arvid Norberg 5224e0c340 complete_ago extension 2010-03-19 18:39:51 +00:00
Arvid Norberg 06a043a489 add send_watermark_factor 2010-03-12 02:36:55 +00:00
Arvid Norberg 5247db7f90 fixed rare bug where we might erase an entry from the policy peer list when we shouldn't 2010-03-08 08:03:53 +00:00
Arvid Norberg e8523a3ad4 fixed issue with 0-sized torrents and verify_piece assert 2010-03-02 07:08:29 +00:00
Arvid Norberg f223708b0b fixed assert when using odd piece size 2010-02-23 23:47:40 +00:00
Arvid Norberg eff49e42a7 added support for torrents with odd piece sizes 2010-02-23 16:26:24 +00:00
Arvid Norberg cebb0b8212 fast piece optimization 2010-02-21 09:07:09 +00:00
Arvid Norberg 54b4bc7754 better rate limiter fix 2010-02-21 01:32:57 +00:00
Arvid Norberg cead1b5780 rate limiter fix for metadata extension 2010-02-20 18:56:53 +00:00
Arvid Norberg 875e332997 fixed merge error 2010-02-18 05:19:20 +00:00
Arvid Norberg c050b22d8f optimized memory usage for torrent objects 2010-02-14 01:39:55 +00:00
Arvid Norberg 3d5d9eb807 start torrent on incoming connection feature 2010-02-11 04:39:04 +00:00
Arvid Norberg fb47469834 experimental support for the BitTyrant choking algorithm 2010-02-09 03:04:41 +00:00
Arvid Norberg 0dba0f5dcc never time out a peer because we're waiting for the disk. allow connection_speed = 0. post an alert when rejecting a peer because of the connection limit 2010-02-06 21:40:55 +00:00
Arvid Norberg 53ef3dfb22 tuning of guided read cache 2010-02-01 00:38:32 +00:00
Arvid Norberg 3bc40b9980 fix builds for all combinations of stats and disk stats 2010-01-31 20:32:12 +00:00
Arvid Norberg ca20d2d600 fixed broken build 2010-01-31 20:22:35 +00:00
Arvid Norberg 5b747f58f7 add guided read cache and update tuning docs 2010-01-31 19:14:00 +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 2d7705e38b disabled feature to drop requests after having been skipped too many times 2010-01-14 02:16:23 +00:00