Commit Graph

786 Commits

Author SHA1 Message Date
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
Arvid Norberg cdf459dad5 only keep one outstanding duplicate request per peer 2009-12-25 16:52:57 +00:00
Arvid Norberg d84c59d13b upload only fix 2009-12-05 16:46:10 +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 1d6d11bf0c storage fix 2009-11-28 08:58:07 +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 6343fe6a6d optimized header dependencies to lower build time 2009-11-23 08:38:50 +00:00
Arvid Norberg 0880b74e6d fixed timestamp wrapping issue 2009-11-18 18:43:54 +00:00
Arvid Norberg 550c67a308 fixed local rate limit feature 2009-11-14 21:25:13 +00:00
Arvid Norberg c07b1d0981 fixed bug in remote download rate calculation 2009-11-14 20:55:42 +00:00
Arvid Norberg 158dd71ac2 performance optimization for buffer allocations 2009-11-11 05:29:34 +00:00
Arvid Norberg 1c377b1807 streaming fixes 2009-11-02 01:01:07 +00:00
Arvid Norberg c7834818f8 fix assert when snubbing peers 2009-11-01 00:47:22 +00:00
Arvid Norberg 86488f95e7 fixed ifdef typo 2009-10-29 04:18:58 +00:00
Arvid Norberg dcd8bb6718 move stats instrumentation to .cpp file to fix header dependency issue 2009-10-28 19:56:18 +00:00
Arvid Norberg 8a5b7d5d36 got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones). 2009-10-20 02:49:56 +00:00
Arvid Norberg ac2ef7dd39 fixed division by zero in get_peer_info() 2009-10-03 15:24:59 +00:00
Arvid Norberg 6858a29b83 fixed potential pure virtual function call in extensions on shutdown 2009-09-14 02:08:34 +00:00
Arvid Norberg 35bca49c61 add torrent priority to adjust bandwidth allocation of torrent's peers 2009-09-13 02:24:25 +00:00
Arvid Norberg ce9cf5657d some cleanup and moved the upload_only = true to avoid failing an invariant check 2009-09-12 21:27:52 +00:00
Arvid Norberg f7ebefb285 fixed checking of fast and suggest messages when used with magnet links 2009-09-01 04:41:50 +00:00
Arvid Norberg b3372dced6 fixed rare request queuing issue for peers in parole mode 2009-08-28 07:48:31 +00:00
Arvid Norberg 45fd696bc6 added I2P support 2009-08-20 03:19:12 +00:00
Arvid Norberg 51c38c2e16 added performance warning when hitting the send buffer watermark limit 2009-08-17 20:29:09 +00:00
Arvid Norberg a6bcb8f8c9 fixed issue where web seed connections might have been disconnected in the constructor (which causes problems) 2009-08-08 15:27:07 +00:00
Arvid Norberg 5d76c19168 disconnect redundant fix 2009-08-02 00:05:41 +00:00