Commit Graph

2508 Commits

Author SHA1 Message Date
Arvid Norberg 3df15ad39e fixed memory leak in disk io thread when not using the cache 2009-06-14 22:48:07 +00:00
Arvid Norberg 62a7946968 disk stats fix 2009-06-14 22:20:23 +00:00
Arvid Norberg 2c34e0aa18 only write operations should trigger piece_picker::write_failed 2009-06-13 17:40:18 +00:00
Arvid Norberg 8af5211fb5 fix deadlock when upnp or natpmp fails to start 2009-06-13 10:45:07 +00:00
Arvid Norberg 7328b30517 fixed potential deadlock in natpmp and upnp 2009-06-13 08:04:53 +00:00
Arvid Norberg 2da772210c fix to make torrent_status::list_peers more accurate 2009-06-13 04:14:41 +00:00
Arvid Norberg f20f63f865 fixed deadlock in some session member functions 2009-06-13 04:09:54 +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 af25f26538 correction of previous 'assert fix' 2009-06-12 16:12:19 +00:00
Arvid Norberg cf8659a0af fixed typo 2009-06-12 06:28:18 +00:00
Arvid Norberg 7b6261a63a fixed piece picker assert (would change the peer_count for pieces we have, and assert on them) 2009-06-12 06:20:08 +00:00
Arvid Norberg 3e23029670 removed incorrect assert 2009-06-11 06:35:00 +00:00
Arvid Norberg 5e87420b6f set all piece priorities to 0 when a write fails 2009-06-10 09:20:55 +00:00
Arvid Norberg 6b908e5f3f fixed compile warnings 2009-06-10 08:42:05 +00:00
Arvid Norberg f0134c1b11 improved disk error handling and expanded use of error_code in error reporting 2009-06-10 08:30:55 +00:00
Arvid Norberg 4554e06837 fixed bug when setting unlimited upload or download rates for torrents 2009-06-09 19:33:18 +00:00
Arvid Norberg d263526246 make incoming connections considered connectable when they tell us their listen port 2009-06-09 16:33:10 +00:00
Arvid Norberg cfbcacce79 fixed bug when handling malformed webseed urls and an http proxy 2009-06-09 16:00:10 +00:00
Arvid Norberg 8256a5628d fixed typo when using TORRENT_USE_OPENSSL 2009-06-09 15:43:56 +00:00
Arvid Norberg 33768fa282 fixed deadlock in http_tracker_connection 2009-06-09 05:51:10 +00:00
Arvid Norberg 18bc7c3fc7 fixed deadlock 2009-06-09 05:48:38 +00:00
Arvid Norberg 7eb78298f3 fixed windows build issue in file, as well as expanded the comment at the static assert 2009-06-09 05:46:51 +00:00
Arvid Norberg e438a3ccfc more boost-1.34.1 fixes 2009-06-03 07:46:50 +00:00
Arvid Norberg a9a12a2391 fix build with boost-1.34.1 2009-06-03 07:22:43 +00:00
Arvid Norberg a061592619 udp_socket fix 2009-05-31 23:48:24 +00:00
Arvid Norberg bd33814376 improve disk error handling 2009-05-31 22:41:53 +00:00
Arvid Norberg 0283f07aed more buffer categories to help debugging 2009-05-31 22:38:49 +00:00
Arvid Norberg b2c5d8a563 include the piece index that failed in disk errors 2009-05-31 19:44:56 +00:00
Arvid Norberg 3e7bd46706 fixed handling of unaligned block requests 2009-05-31 19:33:54 +00:00
Arvid Norberg 524151c040 don't make more calls to the disk thread when aborting 2009-05-31 19:25:26 +00:00
Arvid Norberg 6b4fcfcd38 fixed assert 2009-05-31 10:43:29 +00:00
Arvid Norberg d45e6cb118 fix bug in disk_io_thread 2009-05-31 10:15:45 +00:00
Arvid Norberg 177a7e881c fixed handling of dropped request 2009-05-31 05:50:07 +00:00
Andrew Resch d230dfaf3a Fix upnp when checking for "http://" in control_url there is an improper substr call 2009-05-31 02:41:59 +00:00
Arvid Norberg 9effe8a54a fixed deadlock in http_connection. added two error codes for that class. Added more documentation on error_code 2009-05-30 18:50:38 +00:00
Arvid Norberg 31cae31ccc fix invariant check failure 2009-05-30 04:27:26 +00:00
Arvid Norberg d25d09cb70 fixed assert in peer_connection invariant check 2009-05-30 04:03:57 +00:00
Arvid Norberg bc83387583 fix uninitialized variable in disk_io_thread 2009-05-30 04:02:03 +00:00
Arvid Norberg 745a16ec09 watchdog for stalled queued checking torrents 2009-05-30 02:38:34 +00:00
Arvid Norberg eb2203abf5 fixed torrent file path vulnerability 2009-05-28 07:25:09 +00:00
Arvid Norberg 3ea52b240f fixed memory leak in disk cache 2009-05-28 01:19:48 +00:00
Andrew Resch 6242ae051e added ability to give seeding torrents preference to active slots 2009-05-27 19:27:12 +00:00
Arvid Norberg 065bd283cf timer fixes 2009-05-27 17:06:50 +00:00
Arvid Norberg c66dda1c9f fixed bug in disk cache flush, largest contiguous function 2009-05-27 16:50:46 +00:00
Arvid Norberg e744174f9a removed dead code 2009-05-27 16:49:28 +00:00
Arvid Norberg 64c8834fbb updated tuning document for seed boxes 2009-05-27 06:37:45 +00:00
Daniel Wallin bcfe8cbf2d Fix #ifdef typo. 2009-05-26 18:20:32 +00:00
Arvid Norberg 7b8ac7276c added some more asserts around m_outstanding_bytes 2009-05-26 16:12:09 +00:00
Arvid Norberg f05777c2c2 fixed shutdown issue when trackers times out (introduced with the timer optimization) 2009-05-25 23:12:06 +00:00
Arvid Norberg c695729bbe fixed bug when force-checking a torrent with partial pieces 2009-05-25 20:31:20 +00:00
Arvid Norberg efb6ec5824 fixed expensive-invariant-checks build 2009-05-25 17:23:03 +00:00
Daniel Wallin 757b0437e9 Don't construct a temporary peer just for searching. Clean up some duplicate code. 2009-05-25 10:15:35 +00:00
Arvid Norberg 2cfb4e8205 printf formatting fixes 2009-05-25 08:55:43 +00:00
Arvid Norberg 9f7104b2d5 fixed makefiles 2009-05-25 07:47:24 +00:00
Arvid Norberg bb47b2924c fix coalesce reads and writes setting 2009-05-25 07:46:31 +00:00
Arvid Norberg aa02e36327 retry web seeds when name lookup fails instead of discarding them 2009-05-25 07:04:14 +00:00
Arvid Norberg 30c704523c caches the time every 100 ms and use the cache where high resolution timer is not needed 2009-05-25 02:45:51 +00:00
Daniel Wallin 68629eb6bc Split peer list into IPv4 and IPv6 peers. Saves 12 bytes per IPv4 peer. 2009-05-24 21:49:19 +00:00
Arvid Norberg 2f627a4b00 attempt to mitigate read cache thrashing 2009-05-24 16:49:01 +00:00
Arvid Norberg 29d56f9a8b improved read cache memory utilization 2009-05-24 15:32:14 +00:00
Arvid Norberg a89d6cced1 clean up some disk cache duplication of logic and added another memory usage optimization for the write cache 2009-05-24 00:12:53 +00:00
Arvid Norberg 6b2148cb39 removed redundant code 2009-05-23 21:42:29 +00:00
Arvid Norberg e3c07c0934 converted some recursive mutexes to regular ones 2009-05-23 21:36:09 +00:00
Arvid Norberg ae8488fb91 improved read cache memory efficiency 2009-05-23 19:27:27 +00:00
Arvid Norberg e322b318ae improved handling of out-of-memory conditions in disk I/O thread 2009-05-23 18:39:55 +00:00
Arvid Norberg e197f5cb85 disk_io_thread assert fixes 2009-05-23 17:17:47 +00:00
Arvid Norberg 5fbff8e060 fixed a bug when checking a torrent twice 2009-05-23 15:58:32 +00:00
Arvid Norberg f9c12ef589 added more disk io asserts 2009-05-23 15:50:38 +00:00
Arvid Norberg c1d9198dc3 added largest_contiguous cache flush algorithm 2009-05-23 07:35:45 +00:00
Arvid Norberg 1392b14fec fixed disk_io error handling bugs 2009-05-23 03:05:21 +00:00
Arvid Norberg e36ea4ba5d added instrumentation for disk access. Useful to benchmark disk cache performance 2009-05-23 03:03:52 +00:00
Arvid Norberg 0127edac14 added disk-checking delay, to leave room for other disk operations while checking a torrent 2009-05-22 06:32:39 +00:00
Arvid Norberg 11e97842da changed the optimistic disconnect implementation to be slightly more efficient 2009-05-22 06:27:47 +00:00
Arvid Norberg 292c7f61a1 revert and do what the previous check-in was supposed to do 2009-05-22 03:36:05 +00:00
Arvid Norberg 065c33969a promoted an expensive invariant check to only be built with full invariant checks 2009-05-22 03:26:24 +00:00
Arvid Norberg cb9c3cb37d memory optimization for checking torrents 2009-05-21 16:15:05 +00:00
Daniel Wallin 6014ac1e7a Allocate memory for read/write handlers inplace inside peer_connection instance. 2009-05-20 08:57:08 +00:00
Arvid Norberg 98ee6daddc fixed shadowing variable bug 2009-05-19 22:22:22 +00:00
Arvid Norberg e7d6c9cd3c fixed printf formatting issue 2009-05-19 20:53:27 +00:00
Arvid Norberg c047f66454 improved disk buffer logging and added extra asserts when logging disk buffer stats 2009-05-19 07:00:05 +00:00
Arvid Norberg ad157d49d2 fixed bug that prevented buffer optimization 2009-05-19 06:51:30 +00:00
Arvid Norberg 536d1e2cf6 removed assert in policy 2009-05-16 02:38:53 +00:00
Arvid Norberg a2668d9b1b optimized memory usage when checking files fails 2009-05-16 02:25:28 +00:00
Arvid Norberg 5bce212126 fixed incoming peer source flag and exposed it in client_test 2009-05-15 23:22:11 +00:00
Arvid Norberg a51dfa50f5 renamed peer_from_tracker to add_peer 2009-05-15 22:07:19 +00:00
Arvid Norberg 437cb94fd0 improved IPv6 support by announcing twice when necessary 2009-05-15 21:23:41 +00:00
Arvid Norberg 81af5d52fb fixed broken url generation in tracker announce 2009-05-15 16:31:47 +00:00
Arvid Norberg 53f890608d use C99 string formatting macros for platform independence 2009-05-15 15:52:15 +00:00
Arvid Norberg 6e39f24dcf optimized http tracker url construction by moving most of it over to snprintf 2009-05-14 22:10:00 +00:00
Arvid Norberg 1eda63c4f5 avoid using ' in peer ids, since there are buggy trackers that don't support it 2009-05-14 21:07:49 +00:00
Arvid Norberg c459262c51 exception and IPv6 fixes 2009-05-14 20:38:42 +00:00
Arvid Norberg 890811dcc3 added missing include 2009-05-14 20:31:44 +00:00
Arvid Norberg 31c422df0a added feature to set a separate global rate limit for local peers 2009-05-14 17:21:19 +00:00
Arvid Norberg 28c334fb35 web_peer_connection statistics fix 2009-05-13 23:02:08 +00:00
Arvid Norberg 00ccf9064e optimized memory usage in the DHT, and added some handling for out-of-memory cases 2009-05-13 22:18:41 +00:00
Arvid Norberg bdd7e21831 replace endpoint with address in DHT node ban list 2009-05-13 21:07:51 +00:00
cg25 7038dd3cd7 fix src/Makefile.am against socks4_stream.cpp 2009-05-13 20:52:20 +00:00
Arvid Norberg 062e1796c0 fixed crash when shutting down while checking a torrent 2009-05-13 17:17:33 +00:00
Arvid Norberg c8066aabd8 fixed policy::peer cast bug (introduced when optimizing the peer allocation) 2009-05-13 16:14:20 +00:00
Arvid Norberg b7c5d2f12d add a separate setting for max peer list size for paused torrents 2009-05-13 01:34:10 +00:00
Arvid Norberg 8e3bd5154a removed iostream and boost-regex dependency in client_test 2009-05-13 01:02:06 +00:00
Arvid Norberg 85bf463e11 added session setting to control disk buffer pool allocation sizes 2009-05-12 18:52:05 +00:00
Arvid Norberg 46c286eea3 assert fixes 2009-05-12 18:24:16 +00:00
Arvid Norberg 649f95c932 added session_settings presets for low memory usage and seed box environments 2009-05-12 18:05:04 +00:00
Arvid Norberg d5164b1b1e fixed typo. made it possible to set max_outstanding_disk_bytes_per_connection to 0 2009-05-12 17:57:52 +00:00
Arvid Norberg 039ee486af use alloca for iovec arrays 2009-05-12 17:56:12 +00:00
Arvid Norberg 89e4c41ea2 fixed indentation 2009-05-11 21:19:03 +00:00
Arvid Norberg 92f42eb23c fixed move_stororage to handle the case where it fails 2009-05-11 21:18:09 +00:00
Arvid Norberg 136f101449 when reaching peer list size limit, rank peers to be removed. Fix for updating IP filter 2009-05-11 20:23:47 +00:00
Arvid Norberg a14bc56520 fixed bug in smart_ban (introduced when policy::peer allocation was changed) 2009-05-10 17:25:29 +00:00
Arvid Norberg 9523d88909 made file_pool use std::map instead of multi-index, and use std::string::operator< instead of the quite inefficient filesystem::path::operator< 2009-05-09 21:11:25 +00:00
Arvid Norberg 1eb2799a03 added more allocation logging for statistics builds. Identified and fixed some memory waste 2009-05-07 20:30:20 +00:00
Arvid Norberg 0aa477ce54 handle web seed urls that don't end with / when they should 2009-05-07 20:27:07 +00:00
Arvid Norberg a961e253ef fix logging build 2009-05-07 16:30:14 +00:00
Arvid Norberg d0786a0fde added BOOST_NO_EXCEPTIONS ifdefs 2009-05-07 07:01:36 +00:00
Arvid Norberg d0d2328288 fixed indentation 2009-05-07 06:47:19 +00:00
Arvid Norberg 838df44184 documented file_rename_failed_alert and file_renamed_alert. they were previously not documented. Fixed bug where the storage would be left in an error state (and eventually pause the torrent) when a rename_file() failed. The error is now only reported back through the alert 2009-05-07 06:41:41 +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 ea91a6e077 fixed inverted peer connect rank. Used to connect to the least likely to work peer, instead of the most likely 2009-05-06 22:31:17 +00:00
Arvid Norberg ff3db926fb allocates 10 disk buffers at a time instead of 32. Fixed bug where connection candidates would be too high 2009-05-06 07:06:26 +00:00
Arvid Norberg 6c03035aa0 added total number of peers logging to session statistics 2009-05-04 06:56:29 +00:00
Arvid Norberg cf6dc377c9 define fixes for disk stats build configurations 2009-05-04 06:42:24 +00:00
Arvid Norberg 89ac9916d7 replaced std::set with std::vector for accept fast piece list 2009-05-04 00:08:00 +00:00
Arvid Norberg 641abc6c4a slight memory optimization and some header cleanup 2009-05-03 20:21:24 +00:00
Arvid Norberg f2ec6b5adb added option to use a single block buffer when hashing, instead of for the entire piece 2009-05-03 19:09:06 +00:00
Arvid Norberg d73c97e444 made get_download_queue() use considerably less memory and scale with larger piece_sizes 2009-05-03 09:45:07 +00:00
Arvid Norberg 7563ba87b5 added comments to #endifs 2009-05-03 06:57:58 +00:00
Arvid Norberg c71100950b fix to recalculate_connect_candidates 2009-05-03 06:57:04 +00:00
Arvid Norberg 7439ca3277 add an invariant check for num_connect_candidate in policy 2009-05-03 03:41:33 +00:00
Arvid Norberg 807c1fc397 added validation check to disk_buffer_pool (and disk_io_thread in 0.14). This should catch any reference to the disk_io_thread after it has been destructed 2009-05-03 03:16:15 +00:00
Arvid Norberg b75648445e fixed magnet link parser to accept hex encoded info-hashes 2009-05-02 18:36:51 +00:00
Arvid Norberg 76ce836fb9 magnet link fix 2009-05-02 08:06:37 +00:00
Arvid Norberg e4ddb13b6f made the cache_size setting include send and receive buffers 2009-05-02 06:52:57 +00:00
Arvid Norberg 06b609aa1f fixed unchoke bug. made the automatic unchoke strategy the default 2009-05-02 03:15:52 +00:00
Arvid Norberg 033fd5bd22 count send and receive buffers against the cache size limit 2009-05-01 08:00:58 +00:00
Arvid Norberg 84dda7b617 support for adjusting the socket buffer sizes through session_settings 2009-05-01 04:59:15 +00:00
Arvid Norberg 6ca1c191b6 some windows fixes for dynamic linking 2009-04-30 17:30:14 +00:00
Arvid Norberg 3cf34e3a91 greatly optimised memory usage for peer list 2009-04-30 05:49:46 +00:00
Arvid Norberg c7dd73dd08 add asserts to catch negative m_outstanding_bytes 2009-04-26 19:44:08 +00:00
Arvid Norberg 5fc239bd23 ignore empty strings when passed as a tracker url to the torrent constructor 2009-04-26 19:16:55 +00:00
Arvid Norberg 3ecbcc8fe7 filters trackers with empty url fields 2009-04-26 08:05:42 +00:00
Arvid Norberg 86a3bf3e07 fixed assert when adding a torrent with resume data and immediately setting all piece priorities to 0 2009-04-26 07:31:26 +00:00
Arvid Norberg 6c972e03a4 fixed corruption of the connection queue when a peer_connection fails immediately in its connect() function 2009-04-26 02:46:10 +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 6b69f1d8c4 fixed crash when shutting down while checking a torrent 2009-04-25 08:45:13 +00:00
Arvid Norberg fba4ae541c fixed invalid iterator access in debug mode 2009-04-25 08:19:21 +00:00
Arvid Norberg 679a594f4e fixed typo in verbose bandwidth logging 2009-04-24 17:40:40 +00:00
Arvid Norberg 9ea68dbb9c fixed bug where an asio exception could be thrown when resolving peer countries 2009-04-24 17:29:57 +00:00