Commit Graph

1065 Commits

Author SHA1 Message Date
Arvid Norberg 6a4a5419c2 one more fix 2014-09-28 04:05:44 +00:00
Arvid Norberg 9a985d197f optimize num_seeds() and num_downloaders() to not count the peers every time 2014-09-24 09:03:57 +00:00
Arvid Norberg 60119bf0ca added auto-sequential feature 2014-09-24 00:02:00 +00:00
Arvid Norberg 7a55069ec9 add additional single-thread asserts and separate torrents from the session (in preparation for running them in separate threads/strands) 2014-09-22 17:41:06 +00:00
Arvid Norberg d7d498c3a3 more steps towards isolating peer_connections from the session object. unchoking now happens via the torrent object. hopefully in the future, the session can determine which peers to unchoke without having direct access to them (i.e. with a mutex) 2014-09-22 03:47:43 +00:00
Arvid Norberg 27b7705cf2 remove built-in GeoIP support 2014-09-21 21:01:48 +00:00
Arvid Norberg 2936556573 fix bug in delay-load feature of torrents 2014-09-21 02:06:03 +00:00
Arvid Norberg c7a0bde196 fix bug in peer_connection::second_tick 2014-09-20 23:57:59 +00:00
Arvid Norberg ad7d74f255 merged fixes from RC_1_0 2014-09-13 19:47:51 +00:00
Arvid Norberg b74f5b13ef fix another boost.chrono time overflow issue 2014-09-02 07:31:41 +00:00
Arvid Norberg 2f3e3caf0f fixed typo 2014-08-31 08:34:03 +00:00
Arvid Norberg 97a8e3b895 fix build error with verbose logging 2014-08-28 07:02:43 +00:00
Arvid Norberg 4ddedc6a21 add extension hook on sending payload 2014-08-26 04:26:16 +00:00
Arvid Norberg 7d751b80da merged fixes from RC_1_0 2014-08-26 03:14:32 +00:00
Arvid Norberg 862844e546 merged changes from RC_1_0 2014-08-22 07:56:10 +00:00
Arvid Norberg 40559fa564 fix typo in peer_connection 2014-08-11 15:53:53 +00:00
Arvid Norberg 0bc2d1eb8a cover edge case of receiving the response to a request before the callback of sending the request. fixes assert 2014-08-02 06:09:07 +00:00
Arvid Norberg 02f3e48eaa make performance counters able to blend in values, reducing a peer_connection -> session dependency on a sliding average state (this can be used for disk stats too) 2014-07-29 16:35:03 +00:00
Arvid Norberg ab8c1eb334 log latency of bittorrent requests 2014-07-28 22:18:06 +00:00
Arvid Norberg 2f6a68bad3 track RTT of piece requests 2014-07-28 07:52:59 +00:00
Arvid Norberg 118ba5e9c4 streaming fix 2014-07-26 17:48:24 +00:00
Arvid Norberg 499edabf9f a bit more cleaning up of m_ses uses in peer_connection 2014-07-19 22:33:45 +00:00
Arvid Norberg 30713a4a79 remove buffer stats debugging feature 2014-07-19 08:20:20 +00:00
Arvid Norberg 65bb1d0006 pass all the arguments to peer connections as an argument pack 2014-07-14 04:32:41 +00:00
Arvid Norberg 01640e1682 separate stats counters from session_interface (this was the main use of m_ses in peer connections) 2014-07-13 04:56:53 +00:00
Arvid Norberg ca27c0d5ca fix another boost.chrono issue 2014-07-13 00:48:32 +00:00
Arvid Norberg bf18e310e6 remove some peer connection dependencies on m_ses 2014-07-12 22:32:55 +00:00
Arvid Norberg a6f345181f fixed some unused argument warnings 2014-07-07 06:28:48 +00:00
Arvid Norberg 7351389ce8 land libtorrent_aio branch in trunk 2014-07-06 19:18:00 +00:00
Arvid Norberg 6c6fe4dfe2 merged fixes of warnings from RC_1_0 2014-07-04 23:40:31 +00:00
Arvid Norberg 6e275fbe21 removed left-over unused variables 2014-07-02 02:53:10 +00:00
Arvid Norberg 6043e14131 remove pch.hpp 2014-06-28 23:45:46 +00:00
Arvid Norberg 3f4eba1bdb web seed and storage fixes 2014-06-21 06:58:39 +00:00
Arvid Norberg 5642a0bd59 fix outstanding bytes issue when receiving redundant bytes 2014-06-17 08:07:03 +00:00
Arvid Norberg 2b7bef0f7b fix support for web servers not supporting keepalive 2014-06-15 18:02:59 +00:00
Arvid Norberg 6d95b48afa only attempt to set the TOS on socket when configured 2014-06-15 17:44:27 +00:00
Arvid Norberg e291ab3290 minor streaming improvements 2014-06-08 21:15:34 +00:00
Arvid Norberg 2125efbbd8 merged streaming changes from libtorrent_aio into trunk 2014-06-06 01:26:18 +00:00
Arvid Norberg e225259481 fix some msvc warnings 2014-05-10 03:23:05 +00:00
Arvid Norberg 474e77039f removed set_ratio feature 2014-05-03 17:11:55 +00:00
Arvid Norberg 3192e59a1a improve piece_deadline/streaming 2014-04-22 04:21:14 +00:00
Arvid Norberg 0b3df1c973 merged integer overflow fix from RC_0_16 2014-04-16 08:25:14 +00:00
Arvid Norberg 1734beda07 add missing includes for debug logging builds 2014-03-28 01:55:09 +00:00
Arvid Norberg 5b292133cb fix assert by only constructing piece_block with verified values 2014-03-16 07:30:44 +00:00
Arvid Norberg 1c954451ff seed mode fixes 2014-03-13 08:00:53 +00:00
Arvid Norberg a943fec777 update copyright 2014-02-23 19:12:25 +00:00
Arvid Norberg 9612ef193e cleaned up i2p_category to encapsulate it in i2p_stream.cpp, as well as the socks5 erro_category. added some documentation to torrent_handle and session. fixed reference documentation mapping of get_*_category() functions. regenerate documentation 2014-02-02 04:07:36 +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 2a3f4e2360 merged verbose logging change from RC_0_16 2014-01-24 07:07:04 +00:00
Arvid Norberg 8ab1d8b686 more build fixes and cleaning up 2014-01-19 20:19:15 +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 d7be4659c8 rate limiter overflow fix (for very high limits) 2014-01-13 06:49:47 +00:00
Arvid Norberg 4e6b1cfbfb update copyright 2013-12-25 17:07:16 +00:00
Arvid Norberg adb3a5523c some defensive programming. cleanup unused boost include. tighten up boost includes 2013-12-17 23:26:44 +00:00
Arvid Norberg 60a33f8cf8 make test_ssl build without openssl (and also not do anything) 2013-12-16 06:17:05 +00:00
Arvid Norberg 4f189e921d mark some expensive parts of invariant checks as expensive and disabled by default. introduce undead_peers to destruct all peer_connections in the network thread. they hang around while waiting for all outstanding disk jobs to complete. make the asio-debugging output a bit prettier 2013-12-05 07:42:32 +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 fe414878b2 cleanup of ABI breaking configuration options. TORRENT_DEBUG is believed to no longer affect the ABI of libtorrent. introduce a warning in gen_reference_doc.py for when defines are used in public structs. fix build with deprecated functions off 2013-11-17 22:38:37 +00:00
Arvid Norberg 5284de9d80 minor invariant check tweak 2013-11-10 10:49:57 +00:00
Arvid Norberg c147caca0d fix ssl issue in web_server.py 2013-11-04 10:06:14 +00:00
Arvid Norberg 90e7a4c9e3 merged some rate limiter polish from libtorrent_aio 2013-11-02 03:26:53 +00:00
Arvid Norberg cbe3a72a6e merged i2p fix from RC_0_16 2013-10-27 19:56:37 +00:00
Arvid Norberg af6dbc5d79 attempted fix for a crash in peer ranking 2013-10-23 06:45:23 +00:00
Arvid Norberg 5ae074994d revert a bad optimization from peer_connection's invariant check 2013-10-20 07:10:09 +00:00
Arvid Norberg 416d064489 optimize some invariant checks and make test_utp shorted, to complete much faster 2013-10-20 06:03:23 +00:00
Arvid Norberg 6542795d0a improved support for web seeds that don't support keep-alive 2013-10-20 02:40:43 +00:00
Arvid Norberg b7ae64fd1f don't try to fill send buffers after the torrent has started to shut down 2013-10-13 18:50:07 +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 6a47271667 merge fix for deleting files from libtorrent_aio 2013-08-22 05:27:45 +00:00
Arvid Norberg 1afc0c6740 a bunch of fixes to make test_web_seeds a lot faster, and fail slightly fewer tests 2013-08-19 03:54:45 +00:00
Arvid Norberg a4d4b362e6 fix bug in duplicate-peer resolution. just take the port into account, not the whole IP, because the different ends may have different ideas of what their IP is 2013-08-15 05:29:05 +00:00
Arvid Norberg 6a1e861a1d introduce mechanism for plugins to prevent libtorrent to disconnect peers for time-out reasons 2013-08-09 07:55:12 +00:00
Arvid Norberg f7ec370723 extend peer_plugin to also be notified of disconnects and successful connect events 2013-08-03 23:31:43 +00:00
Arvid Norberg e1c4101817 improve peer_connect_alert 2013-08-01 00:44:14 +00:00
Arvid Norberg df97a76c2f enable request logging in regression testing 2013-07-30 15:59:41 +00:00
Arvid Norberg 2599acf451 merged time critical pieces improvement from RC_0_16 2013-07-27 17:43:34 +00:00
Arvid Norberg 1cb0161f0e merge fix from RC_0_16 2013-07-26 16:59:10 +00:00
Arvid Norberg 93993002ab merged unchoke algorithm fix from RC_0_16 2013-06-01 22:33:11 +00:00
Arvid Norberg fcff3e0e00 merged bootstrap.sh script from RC_0_16 2013-05-29 02:11:15 +00:00
Arvid Norberg 4395437c3b remove resolve countries build configuration from the public API (make linking easier) 2013-04-09 00:37:53 +00:00
Arvid Norberg c55bd0d1d4 merged piece request fix from RC_0_16 2013-04-08 02:55:07 +00:00
Arvid Norberg 5aa85c9ca2 merge graceful pause fix from aio 2013-04-07 01:20:09 +00:00
Arvid Norberg 22b1c968a4 back-ported choking issue at high uplod rates 2013-03-26 04:45:38 +00:00
Arvid Norberg be6afa74f3 optimized rate limiter by allowing peers to request more bandwidth while waiting on the socket 2013-03-24 18:00:58 +00:00
Arvid Norberg a220b8df0c merged fix from RC_0_16 2013-03-23 03:01:13 +00:00
Arvid Norberg a0caa0f4b2 disable invariant_check functions when invariant checks are disabled 2013-02-25 04:13:46 +00:00
Arvid Norberg d9b37f05cc merged changes from RC_0_16 2013-01-21 10:18:25 +00:00
Arvid Norberg f1b8582a95 add gen_todo.py script. include todo.html and mark up some todos in the code with priority 2013-01-20 23:21:53 +00:00
Arvid Norberg e45124fc22 back-port heavy weight refcount invariant checking from libtorrent_aio (disabled by default). and also backport piece-picker refcounting bug fix 2013-01-06 04:02:29 +00:00
Arvid Norberg 970ddba29b refactor find_disconnect_candidate_torrent to match libtorrent_aio 2013-01-02 07:39:02 +00:00
Arvid Norberg aab59d04c7 improve the external IP discovery to work with multiple external IPs (specifically IPv4 and IPv6) 2013-01-01 23:12:16 +00:00
Arvid Norberg ac5a9e9882 introduce global connection priority for improved swarm performance 2012-12-31 06:54:54 +00:00
Arvid Norberg 35032a6950 merge verbose logging feature from libtorrent_aio 2012-10-06 23:45:36 +00:00
Arvid Norberg 24103c6603 include info-hash in verbose logs filenames 2012-10-06 00:33:10 +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 c56901e864 improve web seed hash failure mode 2012-09-29 17:46:41 +00:00
Arvid Norberg 9a11c44984 metadata extension fix 2012-08-09 22:30:45 +00:00
Arvid Norberg 0657690b1c attempt at fixing shutdown hang caused by connection_queue 2012-07-15 23:22:23 +00:00
Arvid Norberg bdada3766a peer disconnect fix 2012-07-04 16:13:20 +00:00
Arvid Norberg 57769bab11 fix some compiler warnings 2012-06-25 14:17:51 +00:00
Arvid Norberg dbf6b0a02c fix bandwidth limiter issue for incoming connections (not associated with a torrent) 2012-06-08 04:28:37 +00:00
Arvid Norberg d6a53200a2 add a force-flag to cancel_request 2012-06-06 16:05:25 +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 2ca32646b9 fix build 2012-05-13 04:37:31 +00:00
Arvid Norberg 6737374c59 add aserts to make_time_critical() 2012-05-12 21:22:06 +00:00
Arvid Norberg e74fc839e9 fixed time critical piece accounting in the request queue 2012-05-12 07:14:07 +00:00
Arvid Norberg 94ae0e433b fixed semantics of rate_limit_utp to also ignore per-torrent limits 2012-05-06 07:09:49 +00:00
Arvid Norberg 86b4c78871 fix unsigned comparison warnings 2012-05-03 01:51:56 +00:00
Arvid Norberg ada35c021a improved multiple bitfield and have_all/have_none unit test and fixed peer_connection accordingly 2012-05-02 18:03:12 +00:00
Arvid Norberg bf3751640a fix multiple bitfields issue 2012-05-02 01:08:25 +00:00
Arvid Norberg 9a3d77b400 delete duplicate code and fix metadata issue where piece refcounts would be counted up twice 2012-04-30 21:08:43 +00:00
Arvid Norberg 2da535c556 assert peers are not initialized twice 2012-04-30 20:15:11 +00:00
Arvid Norberg 5583ed407a fix some overflow and division by zero issues 2012-04-28 05:05:39 +00:00
Arvid Norberg 2016251b4f replace is_seed() with has_picker() 2012-04-27 04:36:12 +00:00
Arvid Norberg 2fc7f2191f is_seed() is not a good indicator of whether or not we have a piece picker. use has_picker() instead 2012-04-25 19:16:22 +00:00
Arvid Norberg 4ae349f61f make sure we don't download pieces while the torrent is checking 2012-04-24 18:43:56 +00:00
Arvid Norberg 49f74be42f make super-seeding a bit more robust 2012-04-23 05:48:46 +00:00
Arvid Norberg 48b85ba586 added more asserts in an attempt to track down invalid policy peer pointers in the piece picker. also fixed a web seed related crash when geoip support is enabled 2012-04-12 05:00:20 +00:00
Arvid Norberg 6acde24799 merged SSL fix from RC_0_16 2012-04-05 04:17:19 +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 289921e276 log hash of data on incoming pieces 2012-03-26 15:24:14 +00:00
Arvid Norberg 6fcc469aef support banning web seeds that send corrupt data 2012-03-24 01:29:31 +00:00
Arvid Norberg b58a96d76b log stats of incoming piece requests 2012-03-09 06:24:01 +00:00
Arvid Norberg e08718428e revert mistake 2012-03-09 02:18:46 +00:00
Arvid Norberg ce3405c0ce don't prevent sending bytes just because the peer was waiting on the disk 2012-03-09 01:19:30 +00:00
Arvid Norberg 9bd40e950b add send_buffer_low_watermark in an attempt to improve seed ramp-up time 2012-03-07 02:59:50 +00:00
Arvid Norberg 57eb57ac78 move trust point and hashfailure counter logic to where they belong 2012-03-06 07:35:56 +00:00
Arvid Norberg 5a8037dba2 added performance alert for address-in-use errors 2012-03-03 02:29:37 +00:00
Arvid Norberg ccf9c5a0fd log more stats 2012-03-02 08:52:54 +00:00
Arvid Norberg bcf1d6eee8 fixed upload_mode assert 2012-02-21 06:46:36 +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 be339c244f fix invalid invariant check 2012-02-09 07:46:23 +00:00
Arvid Norberg 98b3e6eb74 cleanup 2012-02-09 06:56:16 +00:00
Arvid Norberg 679abf2e57 this time, actually remove the encrypted torrent (AES-256 encrypted peer connections) 2012-02-09 06:47:22 +00:00
Arvid Norberg f7b5c10b2b add asserts to try to catch crash in peer_connection::received_valid_data 2012-02-09 06:24:58 +00:00
Arvid Norberg 94a1cae4a3 don't disconnect peers that don't have metadata 2012-02-07 09:18:07 +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 c77ca19140 fix shutdown issue when building without SSL 2012-01-29 23:04:22 +00:00
Arvid Norberg 6e9ef9edab fix connection asserts 2012-01-25 07:58:39 +00:00
Arvid Norberg 818620a5a8 fixed release build 2012-01-23 05:14:12 +00:00
Arvid Norberg 5fc9224072 remove invalid assert 2012-01-22 21:24:51 +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 7f90a241b6 don't let hung outgoing connection attempts block incoming connections 2012-01-21 09:05:34 +00:00
Arvid Norberg 88c5b35826 add asio debugging to the async shutdown of ssl sockets 2012-01-20 04:41:54 +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 4a40e68a82 landed ssl branch back into trunk 2012-01-14 16:04:25 +00:00
Arvid Norberg dd2db79896 fix overflow bug in progress_ppm field 2012-01-09 14:13:24 +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 152cee19f1 add compile-time feature to enable logging of all peer requests 2011-12-29 12:15:29 +00:00
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