Commit Graph

1163 Commits

Author SHA1 Message Date
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 18454d6344 replace trackers from resume data instead of adding them. 2010-01-10 03:02:46 +00:00
Arvid Norberg 85951208e4 added support for explicitly flushing the disk cache 2010-01-09 21:17:52 +00:00
Arvid Norberg d498c129ab clear sparse flag on files that complete on windows 2010-01-09 18:40:05 +00:00
Arvid Norberg cbf2526a8c added stats_alert reporting raw transfer stats per torrent every second 2010-01-02 14:16:35 +00:00
Arvid Norberg 0350e86867 fixed web seed unit test 2009-12-29 17:49:24 +00:00
Arvid Norberg d157af5305 build fixes 2009-12-28 20:59:34 +00:00
Arvid Norberg cdf459dad5 only keep one outstanding duplicate request per peer 2009-12-25 16:52:57 +00:00
Arvid Norberg 0fc90b5655 fixed support for min-interval on tracker failures 2009-12-21 09:47:32 +00:00
Arvid Norberg cebcbc3eeb fixed force reannounce bug with min_interval support 2009-12-13 16:36:45 +00:00
Arvid Norberg 6aa9d5fa52 more logging 2009-12-07 05:03:23 +00:00
Arvid Norberg a6ed83e7fe add load_state/save_state to python bindings and made them build 2009-12-05 07:24:22 +00:00
Arvid Norberg ff2063651b build fixes 2009-12-03 17:44:11 +00:00
Arvid Norberg 1e654220fa added support for min_interval 2009-12-02 04:05:24 +00:00
Arvid Norberg ea1043a293 fix crash in force_recheck for torrents with no metadata 2009-11-29 17:57:42 +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 39d14146e7 dynamic_cast fix 2009-11-27 21:04:26 +00:00
Arvid Norberg 8dd244581d header optimizations 2009-11-26 05:45:43 +00:00
Arvid Norberg 18e5d67967 protect file_priority functions from being called on torrents without metadata 2009-11-26 00:09:49 +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 603e719117 save and restore the super-seed state of torrents 2009-11-18 17:40:38 +00:00
Arvid Norberg d9671d05b5 fixed uninitialized member in torrent 2009-11-18 08:39:15 +00:00
Arvid Norberg e43340c961 made it possible to build without RTTI 2009-11-02 20:43:38 +00:00
Arvid Norberg 70df388e6c removed one iostream dependency 2009-10-28 19:55:20 +00:00
Arvid Norberg c418165e07 replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability) 2009-10-26 01:29:39 +00:00
Arvid Norberg 6c137d6ef6 announces torrents immediately to the DHT when it's started 2009-10-25 02:37:45 +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 ea1761838a added torrent_status::finished_time 2009-09-30 17:21:59 +00:00
Arvid Norberg 9b15c11740 don't send stats to trackers received through tracker exchange 2009-09-25 18:17:59 +00:00
Arvid Norberg 7e430d5a2a resume data alerts are always posted, regardless of alert mask 2009-09-23 18:44:21 +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 8e068cb801 fixed interger overflow bug 2009-09-09 17:59:01 +00:00
Arvid Norberg d168a709a2 promote an assert to expensive invariant checks only 2009-09-09 16:34:50 +00:00
Arvid Norberg d69d615be4 fixed bug where web seeds would not disconnect if being resolved when the torrent was paused 2009-09-07 06:17:22 +00:00
Arvid Norberg 3e9725b5d7 made peer_blocked_alert derive from torrent_alert 2009-09-07 01:47:30 +00:00
Arvid Norberg 6d01cb475c msvc build fixes 2009-09-06 00:57:01 +00:00
Georg Rudoy ce16f9848c Fix build with MSVS (use const_iterator where non-const one is not needed). 2009-09-01 13:36:30 +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 1e45b85c34 fixed incorrect assert in torrent::we_have 2009-08-26 02:42:42 +00:00
Arvid Norberg 45fd696bc6 added I2P support 2009-08-20 03:19:12 +00:00
Arvid Norberg 13967086aa added and removed some comments 2009-08-08 15:23:12 +00:00
Arvid Norberg 78a6df0b2a connect candidate fix 2009-08-01 22:48:43 +00:00
Arvid Norberg 137d2d63f5 cleaned up policy. Moved logic from policy to torrent 2009-07-23 04:38:52 +00:00
Arvid Norberg ae3be201c4 reduced the number of floating point operations to better support systems with no FPU 2009-07-19 04:59:27 +00:00
Arvid Norberg e2b8434361 simplified should_announce_dht slightly 2009-07-18 16:50:56 +00:00
Arvid Norberg 944b1a7d57 fixed inversed seed_time ratio logic 2009-07-18 07:16:20 +00:00
Arvid Norberg 93e204223d removed debug printouts 2009-07-04 05:06:50 +00:00
Arvid Norberg 51992dda6a added new alert when individual files complete 2009-07-04 04:58:24 +00:00
Arvid Norberg 8ee50045ca added support for uTorrent interpretation of multi-tracker torrents (off by default) 2009-06-28 20:21:55 +00:00
Arvid Norberg e9bd8f6e1f turned fast-resume errors into error_codes. fixed typo in documentation 2009-06-28 00:36:41 +00:00
Arvid Norberg 44ace0b86b fixed resume data compatibility with 0.13 2009-06-27 21:47:30 +00:00
Arvid Norberg cc3e6621ed fixed rename_file() bug where the new name would not be saved in the resume data in some cases 2009-06-22 00:52:57 +00:00
Arvid Norberg 306b75e6b1 boost 1.35 fixes 2009-06-19 16:42:33 +00:00
Arvid Norberg f09774607f added upload mode 2009-06-18 22:32:55 +00:00
Arvid Norberg 6b048dc85e fixed bug in connect candidate counter 2009-06-18 16:16:41 +00:00
Arvid Norberg 2c34e0aa18 only write operations should trigger piece_picker::write_failed 2009-06-13 17:40:18 +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 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 e438a3ccfc more boost-1.34.1 fixes 2009-06-03 07:46:50 +00:00
Arvid Norberg bd33814376 improve disk error handling 2009-05-31 22:41:53 +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
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
Arvid Norberg e3c07c0934 converted some recursive mutexes to regular ones 2009-05-23 21:36:09 +00:00
Arvid Norberg 5fbff8e060 fixed a bug when checking a torrent twice 2009-05-23 15:58:32 +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 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 b7c5d2f12d add a separate setting for max peer list size for paused torrents 2009-05-13 01:34:10 +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 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 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 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 641abc6c4a slight memory optimization and some header cleanup 2009-05-03 20:21:24 +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 84dda7b617 support for adjusting the socket buffer sizes through session_settings 2009-05-01 04:59:15 +00:00
Arvid Norberg 3cf34e3a91 greatly optimised memory usage for peer list 2009-04-30 05:49:46 +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 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 9ea68dbb9c fixed bug where an asio exception could be thrown when resolving peer countries 2009-04-24 17:29:57 +00:00
Andrew Resch 4137f47386 Do not set an error when pausing a checking torrent 2009-04-19 19:49:33 +00:00
Arvid Norberg 6a11d6ee4e IPv6 tracker fix 2009-04-12 00:37:06 +00:00
Arvid Norberg a051228069 fixed bug in storage when forcing recheck while renaming a file or moving it 2009-04-10 07:22:27 +00:00
Arvid Norberg 2bb1772299 time_duration fix (works with boost.date-time again) 2009-04-06 17:12:14 +00:00
Arvid Norberg aba5b2e9d0 dropped some iostream dependencies 2009-04-04 09:52:25 +00:00
Arvid Norberg d4e08cd37f generate partial resume data for torrents that haven't been checked 2009-03-27 18:40:05 +00:00
Arvid Norberg 643be6c44b fixed issue where renamed files would sometimes not be saved in the resume data 2009-03-22 22:21:48 +00:00
Arvid Norberg 1ed7e222f8 added documentation to explain how paused and auto_managed are overridden by resume_data. Added a mechanism to trunk to ignore the resume data for those two settings. Updated documentation in trunk to include more fields in the resume data. Fixed broken links in the trunk docs 2009-03-21 04:33:53 +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 b25a8db2a6 added more error codes. consolidated exception classes into one. moved over more places to use error_code instead of strings. fixed proper error handling for torrent_info 2009-02-23 01:21:19 +00:00
Arvid Norberg 658b7309d3 fixed issue where web peers would be connected before files were checked 2009-02-22 20:19:58 +00:00
Arvid Norberg 3187bd9905 moved some errors over to use error_code 2009-02-13 19:01:02 +00:00
Arvid Norberg 2f5604f3c0 removed duplicate code 2009-02-10 08:55:39 +00:00
Arvid Norberg 2c68654994 fixed bug where mapped files were not restored properly from the resume data. Fixes #483 2009-02-09 06:19:31 +00:00
Arvid Norberg fe714b4b89 fixed torrent checking race condition 2009-02-09 02:04:43 +00:00
Arvid Norberg ba0f894c7c avoid adding a torrent to the checking queue twice 2009-02-08 01:29:09 +00:00
Arvid Norberg c0d43b8110 resume data errors should always be logged, regardless of the alert being active 2009-02-08 00:05:27 +00:00
Arvid Norberg 7744718b44 added error message to invalid_torrent_file exception (will be replaced by error_code at some point) 2009-02-07 19:18:48 +00:00
Arvid Norberg cf55883d0f read_resume_data fix 2009-02-07 06:12:32 +00:00
Arvid Norberg 532a5f477d fixed checking files issue 2009-02-03 17:35:41 +00:00
Arvid Norberg 1ac8f806fa added seed mode support (lazy hash checking) 2009-02-03 07:46:24 +00:00
Arvid Norberg 2623037482 local peers are excempt from unchoke slots. #469 2009-01-28 06:14:21 +00:00
Arvid Norberg 0ba2e2cdbd fixed issue where torrents that failed checking would not resume checking when the error was cleared. One side effect of this fix is that it should now be possible to pause checking torrents with the 0.14 branch 2009-01-27 09:18:51 +00:00
Arvid Norberg 3cdf9c87a8 fixed build errors on Solaris 2009-01-27 08:24:48 +00:00
Arvid Norberg 8030454c96 fixes problem whith lexical_cast being locale dependent 2009-01-27 06:17:55 +00:00
Arvid Norberg fe94f17835 fixed assert in torrent::bytes_done() 2009-01-24 18:11:06 +00:00
Arvid Norberg b3a17b1787 added disk buffer instrumentation and log parser 2009-01-23 09:13:31 +00:00
Arvid Norberg f722731799 fixed division by zero when loading an empty torrent 2009-01-19 10:05:48 +00:00
Arvid Norberg cc86f78aa5 fixed assert 2009-01-19 09:52:08 +00:00
Arvid Norberg 8aa43b682b listen port cleanup 2009-01-19 08:31:31 +00:00
Arvid Norberg c8a784a513 added invariant check in on_piece_checked to narrow down #472 2009-01-17 19:00:09 +00:00
Arvid Norberg 13ceee7a55 fixed boost-1.34 compatibility 2009-01-17 18:47:35 +00:00
Arvid Norberg 97d8685066 pad file support fix 2009-01-15 18:52:41 +00:00
Arvid Norberg 66ccc9d23f improved support for padding files by not counting them in total_wanted_done and total_wanted or progress 2009-01-14 07:41:25 +00:00
Arvid Norberg b3999c8ac0 minor bytes_done fix 2009-01-12 02:22:11 +00:00
Arvid Norberg 1ac4b29aa9 fix invariant check failure 2009-01-07 10:09:25 +00:00
Arvid Norberg d07ccaf6b8 workaround for sparse files issue on Windows vista 2009-01-05 01:08:09 +00:00
Arvid Norberg a14421bde5 return if torrent is aborted in files checked 2009-01-02 09:47:51 +00:00
Arvid Norberg 06da1f8e8a added some session logging. added more disk-io-thread stats logging and parse script 2008-12-30 08:20:25 +00:00
Arvid Norberg e5d3755afb added support for http seeds (BEP 17) 2008-12-30 03:54:07 +00:00
Arvid Norberg b81ae19e86 fix uninitialized variable read (next_announce) 2008-12-27 07:22:57 +00:00
Arvid Norberg 952ed687cd made session stats config build 2008-12-26 07:00:21 +00:00
Arvid Norberg 6f80fdf9f7 fix bug when renaming files and using the web_peer_connection. Deprecated non-const file_storage access in torrent_info 2008-12-24 20:07:34 +00:00
Arvid Norberg 4bd0d2d2e6 added resolver cancellation to http_connection and udp_socket. might prevent potential shutdown stalls 2008-12-20 18:27:09 +00:00
Arvid Norberg b47f965c85 added torrent_handle::read_piece(). #441 2008-12-14 19:47:02 +00:00
Arvid Norberg 9c5c0418ba fixed tracker prioritization bug 2008-12-12 10:00:20 +00:00
Arvid Norberg 2a9353cf48 prefer udp trackers. Fixes #433 2008-12-08 09:13:21 +00:00
Arvid Norberg b41cdd6469 initial super seeding support 2008-12-08 06:36:22 +00:00
Arvid Norberg 14c142d997 added add_piece() to inject data from external sources 2008-12-07 21:04:19 +00:00
Arvid Norberg 70f4303d92 added tracker IP to tracker_response callback and added filtering of local IPs in pex and tracker responses. #409 2008-12-01 08:48:54 +00:00
Arvid Norberg 4b738fca7a added previous state to state_changed_alert. #401 2008-12-01 00:19:05 +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 d1a2b774e6 changed how trackers are handled. Implements #297 by setting session_settings::announce_to_all_trackers to true 2008-11-29 08:38:40 +00:00
Arvid Norberg acbdbfc1ef added tracker exchange (tex) extension 2008-11-27 20:51:59 +00:00
Arvid Norberg 1b686a1364 m_currently_trying_tracker cleanup 2008-11-27 20:48:29 +00:00
Arvid Norberg 3fd5405fa9 torrent_handle::add_tracker() 2008-11-26 01:42:14 +00:00
Arvid Norberg 294e62a4c3 current_tracker now also indicates which tracker is being tried. fixes #404 2008-11-26 01:31:54 +00:00
Arvid Norberg 73907913d7 force recheck assert fix 2008-11-24 19:18:53 +00:00
Arvid Norberg 723aba6c24 solved issue with pausing checking torrents. Introduced a new state, checkin_resume_data, which a torrent is in while waiting for the disk io thread to verify the resume data, but before it has been determined wheter it should be queued for checking or not 2008-11-19 00:46:48 +00:00
Arvid Norberg ce24a17308 minor checking torrent fix 2008-11-18 11:03:19 +00:00
Arvid Norberg 57c22bb214 complete support for pausing checking torrents 2008-11-18 11:01:30 +00:00
Arvid Norberg f503bbfe86 fix for when aborting torrents that are being checked. Fix in client_test when removing torrents that are checking. 2008-11-17 01:19:46 +00:00
Arvid Norberg c3bbf138a4 estimate TCP/IP overhead more accurately 2008-11-14 20:51:49 +00:00
Arvid Norberg 4578f3426c assert fix 2008-11-12 22:24:55 +00:00
Arvid Norberg 43a2db0b20 fix for recent move of torrent::start into the libtorrent thread 2008-11-12 03:30:19 +00:00
Arvid Norberg dd26371c0a indentation fix 2008-11-10 04:17:16 +00:00
Arvid Norberg 19c66a1826 exception fixes 2008-11-05 05:39:18 +00:00
Arvid Norberg 4dada930ac made torrents not wanting more peers whene they're shutting down. Closes out all connections in the connection queue explicitly when session is shutting down 2008-10-30 17:13:10 +00:00
Arvid Norberg 65c4b7ec13 fix for when removing a torrent when it is in the checking state 2008-10-26 09:23:00 +00:00
Arvid Norberg 392dbb71da more fixes to avoid unwanted exceptions 2008-10-23 04:10:23 +00:00
Arvid Norberg 41d5abf0d8 exception related fixes. Avoiding functions that may throw in places where exceptions shouldn't be thrown 2008-10-21 08:45:42 +00:00
Arvid Norberg cfe029d58f updated seed rank to lower priority for finished, but not seeding torrents 2008-10-19 08:05:36 +00:00
Arvid Norberg 3d75732145 changed variant_stream to return a pointer instead of a reference when querying for underlying type (avoids exceptions) 2008-10-18 07:12:04 +00:00
Arvid Norberg c04183d960 cleaned up save_resume_data 2008-10-17 01:56:36 +00:00
Arvid Norberg 16d56eaee6 clears torrent stats when paused 2008-10-15 17:31:20 +00:00
Arvid Norberg cb1fce0d62 fix to immediately unchoke another peer if an unchoked peer is disconnected 2008-10-14 01:00:05 +00:00
Arvid Norberg 3144767632 fixed buffer overrun when calling get_download_queue 2008-10-05 07:23:46 +00:00
Arvid Norberg d4c5d5835a another state fix where mutliple torrent_finished_alerts could be generated 2008-10-05 04:44:29 +00:00
Arvid Norberg 8f665e949f fixed rare bug where a torrent could be put back into downloading state when finishing checking files if it already finished by then 2008-10-05 01:44:57 +00:00
Arvid Norberg d4c206841b added support for bitcomet padding files. simplified storage read/write code. 2008-10-03 05:49:41 +00:00
Arvid Norberg ef42e8f77c fixed rename_file to work when the file hasn't been created yet. Fixed error reporting when rename_file fails. Updates the file in the torrent_handle when filename is updated 2008-09-30 23:37:42 +00:00
Arvid Norberg 8989699e1e fixed invariant check when pausing a torrent 2008-09-27 04:58:40 +00:00
Arvid Norberg d4e0ea6c1e added assert to make sure #365 doesn't happen 2008-09-25 22:08:18 +00:00
Arvid Norberg bb674134e3 fixed bind_port for outgoing peer connections 2008-09-25 07:40:55 +00:00
Arvid Norberg 80e9e8d1cf changed torrent::set_metadata() to reduce code duplication in metadata extensions. Exposed torrent_handle::set_metadata() to the public interface 2008-09-24 02:32:33 +00:00
Arvid Norberg df5e261ce8 fixed resume data loading for paused state 2008-09-24 02:29:24 +00:00
Arvid Norberg 2e0d0046d2 made torrent::replace_trackers() start or stop announcing depending on if trackers were added or cleared 2008-09-24 02:22:12 +00:00
Arvid Norberg a36da15c29 saves sequential download in fastresume data 2008-09-23 03:52:49 +00:00
Arvid Norberg c0c65d8ee6 fixed bug in read_fast_resume regarding auto_managed flag 2008-09-23 03:21:35 +00:00
Arvid Norberg 791a1f4365 saves trackers and web seeds in fastresume data. Fixes #369 2008-09-22 17:39:18 +00:00
Arvid Norberg 8ffc345308 fixed crash when add_torrent was fed with invalid resume data 2008-09-21 02:08:04 +00:00
Arvid Norberg 0338510b9b added more bandwidth monitoring of DHT and TCP/IP overhead. added monitoring of the running DHT lookups 2008-09-20 17:42:25 +00:00
Arvid Norberg 064d93b935 optimization for files with prioritiy 0 2008-09-19 19:46:04 +00:00
Arvid Norberg f14e76a3f9 fixed typo in previous iterator fix 2008-09-18 17:53:44 +00:00
Arvid Norberg cd1301b1c9 fix for invalid iterators when changing piece priorities causes peers to disconnect 2008-09-17 23:14:59 +00:00
Arvid Norberg c087c363be removed left over from debugging 2008-09-09 19:47:31 +00:00
Arvid Norberg 41808f8742 big change to improve piece picker. Better end-game mode. More options on which pieces to pick. 2008-09-06 21:04:57 +00:00
Arvid Norberg aedc92cb24 fix to announce with DHT for torrents without metadata 2008-08-29 22:58:47 +00:00
Arvid Norberg 92ed7fb364 fixed metadata extension issues 2008-08-29 17:21:56 +00:00
Arvid Norberg 9c59d1a308 fixed bug in last check-in 2008-08-27 15:29:42 +00:00
Arvid Norberg e2ae0a97e2 fix for tracker-less torrents (they didn't announce with the tracker) 2008-08-27 15:15:41 +00:00
Arvid Norberg af62dc1417 fixed crash when calling force_recheck on seeding torrent 2008-08-26 21:35:33 +00:00
Arvid Norberg e9045cc1df fixes bug where priorities where lost when force-rechecking. 2008-08-25 22:32:50 +00:00
Arvid Norberg e58485822b optimized encryption 2008-08-20 23:05:12 +00:00
Arvid Norberg 0454fb77d7 fixed bug where is_sequential_download would return false when it should be true 2008-08-19 16:04:01 +00:00
Arvid Norberg a134908bac fixed warnings and uninitialized variable 2008-08-19 14:53:50 +00:00
Arvid Norberg 9266afe5f5 fixed bug where a torrent would not get into the 'finished' state right after file checking. It would either go to downloading or seeding. Also added test_transfer 2008-08-18 20:02:50 +00:00
Arvid Norberg 7d6a895d1b makes all tracker requests 'stopped' when aborting 2008-08-11 14:31:58 +00:00
Arvid Norberg 9cd95fb52c fix to invariant check 2008-08-10 15:00:56 +00:00
Arvid Norberg 56ae82be2c made the invariant check more strict 2008-08-10 10:22:36 +00:00
Arvid Norberg 54a5dd4af4 added invariant check for file-checking queue consistency 2008-08-10 09:34:39 +00:00
Arvid Norberg 10c0956a2f removed redundant IP filter check 2008-08-03 23:04:38 +00:00
Arvid Norberg 7d47ed54eb removed connecting_to_tracker state 2008-08-03 15:32:15 +00:00
Arvid Norberg 18b14e56df made the minimum announce interval configurable 2008-08-01 22:34:37 +00:00
Arvid Norberg b5467845d7 fixed assert in file_progress and build issue when built with expensive invariant checks 2008-07-30 08:52:39 +00:00
Arvid Norberg c605c8021f added file priority functions 2008-07-20 16:00:08 +00:00
Arvid Norberg 8c91fff1d6 saves torrent settings in resume data (up/down rate limits, max connections, upload slots, paused state, auto managed, piece priorities, renamed files) 2008-07-19 11:12:40 +00:00
Arvid Norberg 8f1455919a disable announce timers when paused 2008-07-18 22:57:49 +00:00
Arvid Norberg 21dff61cb5 clears read cache when paused. Saves memory 2008-07-18 15:31:22 +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 e5c8b7c00a fixed issue when trying to announce to tracker for tracker-less torrents 2008-07-14 13:09:07 +00:00
Arvid Norberg 72b99059e7 optimized policy::peer 2008-07-14 11:15:35 +00:00
Arvid Norberg cf9ce06df3 fix logging build 2008-07-13 20:53:21 +00:00
Arvid Norberg d88acd3d95 file_progress fix 2008-07-13 16:44:14 +00:00
Arvid Norberg 8fd33d65f1 file_progress fix 2008-07-13 07:58:32 +00:00
Arvid Norberg 1ed583011c made the invariant checks cheaper and more useful. The full invariant checks are still available as an option 2008-07-12 17:51:59 +00:00
Arvid Norberg ff6cbbc6b6 added torrent_handle::clear_error() to retry a torrent that is in an error state (torrent_status::error is set) 2008-07-12 17:00:52 +00:00
Arvid Norberg 9bf25d1006 changed the definition of file_progress and deprecated the old function. Python bindings only exposes the new one 2008-07-12 13:38:22 +00:00
Arvid Norberg c5af2c2eaf moved tracker announces into a timer instead of polling every second. Added state to properly send complete, started and stopped events 2008-07-12 08:25:19 +00:00
Arvid Norberg 2435c5f19b increased accuracy of file_progress down to bytes (from 16kB blocks) 2008-07-11 14:10:33 +00:00
Arvid Norberg 96ca475652 added redundant and failed byte counters to session 2008-07-11 07:30:04 +00:00
Arvid Norberg 06f3ad65e8 fix to file_progress improvement 2008-07-09 15:23:42 +00:00
Arvid Norberg d06f125513 improved accuracy of the file progress report to include completed blocks from incomplete pieces (but not partial blocks) 2008-07-09 10:45:07 +00:00
Arvid Norberg 5c749bcb3c added base class for peer_alerts and turned more alerts into peer_alerts with more information about the peer that generated it 2008-07-08 09:30:10 +00:00
Arvid Norberg f7042ca84a improved piece timeout and peer snubbing logic 2008-07-07 12:04:06 +00:00
Arvid Norberg e576babbb8 changed the alerts to have categories and to be filtered with a bitmask instead of having a severity and be filtered by a severity level. 2008-07-06 12:22:56 +00:00
Arvid Norberg ecb538b4b2 added alert for torrent state changes. Fixes #360 2008-07-03 10:05:51 +00:00
Arvid Norberg 722e9e95e3 frees resume data when done with it 2008-07-02 21:23:02 +00:00
Arvid Norberg 9c84908bb9 switched resume data parsing over to use lazy_bdecode. Improves memory allocation performance, especially noticable when heap allocations are expensive. Makes it more practical to run with malloc debug. Changed resume data interface to take a vector as opposed to a parsed structure 2008-06-30 23:14:31 +00:00
Arvid Norberg d396ab7b17 added pause and resume to the session. Fixes #349 2008-06-29 19:08:30 +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 ca0f17ee95 won't save resume data for torrents without a complete state (checking or queued for checking torrents) 2008-06-24 12:48:28 +00:00
Arvid Norberg 92f13aea68 start torrents sooner after they complete checking 2008-06-23 18:56:55 +00:00
Arvid Norberg 87660b96c5 renamed announce_piece to piece_passed and moved it to piece_finished and piece_failed 2008-06-23 18:54:58 +00:00
Arvid Norberg 9447693202 storage fastresume fix 2008-06-23 18:31:52 +00:00
Arvid Norberg c210b11b80 better fix for failing pieces 2008-06-23 14:45:01 +00:00
Arvid Norberg 6db1b54304 simplified policy and optimized case when a piece fails hash check 2008-06-22 20:28:03 +00:00
Arvid Norberg a60b6f9e96 fixed bug in set_queue_position. Fixes #353 2008-06-21 15:51:03 +00:00
Arvid Norberg d2bde64e71 makes sure a torrent doesn't have too many pieces than can be handled. Fixes #61 2008-06-19 11:28:34 +00:00
Arvid Norberg 9c94f54868 fixes for torrents with smaller pieces than 16kB 2008-06-18 12:34:39 +00:00
Arvid Norberg 77c13d73f6 fixed assert in set_queue_position 2008-06-17 16:49:55 +00:00
Arvid Norberg 24b24aff4e force recheck fixes. Fixes #350 2008-06-17 14:56:22 +00:00
Arvid Norberg 6c24bd0774 moves force checked torrents to the end of the queue. Fixes #350 2008-06-16 22:27:14 +00:00
Arvid Norberg 3e000a3984 fixed save path updates when moving torrents. Fixes #310 2008-06-15 20:52:46 +00:00
Andrew Resch 933e3c8b54 Fixes for set_queue_position() 2008-06-11 12:14:10 +00:00
Arvid Norberg 6e69480176 disk_io_thread fixes. Properly destructs torrent objects while disk io mutex is not locked. Properly flushes disk cache when closing, and aborting read and file check jobs. Fixes #334 2008-06-09 04:46:34 +00:00
Arvid Norberg efcd69b009 fixed set_queue_position() for seeding (or finished) torrents 2008-06-08 13:47:35 +00:00
Andrew Resch 3ea075f169 Add torrent_resumed alert 2008-06-08 05:14:40 +00:00
Arvid Norberg a1857f9699 added force_recheck to torrent_handle. Fixes #120 2008-06-07 16:24:56 +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 bcc24bf831 added has_incoming to torrent_status per #315 2008-06-05 18:19:03 +00:00
Arvid Norberg 5d268424b2 update auto managed torrents sooner when changes are made 2008-06-03 20:21:47 +00:00
Arvid Norberg 31c9d378f5 completed queuing. It is now possible to change and query queue position of torrents. 2008-05-29 03:37:19 +00:00
Arvid Norberg 3910fe78de separated file_storage from torrent_info and create_torrent 2008-05-28 08:44:40 +00:00
Arvid Norberg 68c31e48dc replaced vector<bool> with a custom bitfield type 2008-05-28 02:35:02 +00:00
Arvid Norberg 4338140c85 added test and fixed total_wanted issue for files > 2 GB 2008-05-27 08:07:59 +00:00
Arvid Norberg 67354421fb introduced an error state for torrents. Torrents with an error are not restarted automatically 2008-05-20 07:57:44 +00:00
Arvid Norberg 5840a50d79 fixed stale state when switching from finished to downloading 2008-05-20 03:21:45 +00:00
Arvid Norberg 777954ab3e automatically scrape auto managed torrents to keep track of downloader/seed ratio 2008-05-19 04:06:25 +00:00
Arvid Norberg c460704a5f streamlined class footprint by reducing padding 2008-05-19 02:52:32 +00:00
Arvid Norberg 282f30c7e7 saves number of seeds and downloaders last seen in resume data 2008-05-18 19:31:06 +00:00
Arvid Norberg ffa9baed1d fixed bug where torrent would not connect to peers unless it had the .torrent 2008-05-18 18:30:26 +00:00
Arvid Norberg 7f639e57de improved error handling with regards to parse_url_components. For trunk, moved that function to its own file 2008-05-17 14:19:34 +00:00
Arvid Norberg ffbc22dfc2 respects the port filter for web seeds. Fixes #304 2008-05-15 05:13:09 +00:00
Arvid Norberg 91d6099a55 fixed issue with torrents with 0 pieces. Fixes #306 2008-05-15 02:29:26 +00:00
Arvid Norberg 8ed949c4d5 factored out torrent creation functionality from torrent_info into create_torrent. Modified torrent_info to use lazy_bdecoder for increased performance 2008-05-14 05:29:42 +00:00
Arvid Norberg 756dbe3316 removed leftover from debugging 2008-05-12 09:31:57 +00:00
Arvid Norberg a01c412f9e piece picker fixes (introduced when rewriting the piece checking) 2008-05-12 06:20:54 +00:00
Arvid Norberg 068adcd9a9 indentation fix 2008-05-12 06:03:31 +00:00
Arvid Norberg f2ac4db1af changed the optimistic disconnect logic to be more efficient and configurable 2008-05-12 05:17:11 +00:00
Arvid Norberg 5741f72ab3 seed rank fix 2008-05-07 17:05:16 +00:00
Arvid Norberg 018ec69d8c indentation fix 2008-05-06 21:27:06 +00:00
Arvid Norberg 9429ca4b1f replaced seed cycles with seed rank 2008-05-06 18:03:41 +00:00
Arvid Norberg e09457e4ab take an estimate of the IP ACK traffic into account when rate limiting (allows setting rate limits closer to the capacity) 2008-05-05 17:08:14 +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 7a432786e7 added url to tracker alerts. introduced a base class for all tracker alerts 2008-04-23 01:54:21 +00:00
Andrew Resch 05c1a64c76 Move the torrent_checked alert post to torrent::files_checked 2008-04-23 01:01:00 +00:00
Arvid Norberg d4ddf3712a initializes totals to 0 in torrent 2008-04-22 22:37:40 +00:00
Arvid Norberg a4b69e5b2d logging improvements 2008-04-20 17:17:58 +00:00
Arvid Norberg b452020404 fixed resume data bug 2008-04-16 07:51:08 +00:00
Arvid Norberg 755e50bb12 added active_time, seeding_time, all_time_upload and all_time_download to torrent_status. Also updated docs with some missing entries in torrent_status 2008-04-16 06:31:05 +00:00
Arvid Norberg 644d3aa66c disk IO thread error handling 2008-04-13 21:26:57 +00:00
Arvid Norberg 3fea2080fd added an asynchronous save_resume_data to make it easier to synchronize with the disk IO thread 2008-04-13 18:54:36 +00:00
Arvid Norberg 6639f72804 if priorities are changed so that the torrent changes state to be finished, a torrent_finished_alert is generated now. Fixes #305 2008-04-13 07:39:37 +00:00
Arvid Norberg 17c4257cce added get_full_peer_list to retrieve all the peers known for a swarm 2008-04-13 06:32:48 +00:00
Andrew Resch ca872a0e82 Revert last. 2008-04-13 02:47:41 +00:00
Andrew Resch d825c1d5bd Add torrent_resumed torrent alert. 2008-04-13 02:34:18 +00:00
Arvid Norberg 908273a02b fixed assert 2008-04-13 01:28:44 +00:00
Arvid Norberg d4cfa126aa storage fixes 2008-04-12 22:08:07 +00:00
Arvid Norberg 291ef2a2c9 optimized torrent_handle to use a weak_ptr directly to the torrent object 2008-04-09 20:09:36 +00:00
Arvid Norberg 4eeb15c1df verifies urls before connecting to web seeds. Fixes #301 2008-04-09 07:51:41 +00:00
Arvid Norberg 04a9dd77b5 assert fix 2008-04-07 08:15:31 +00:00
Arvid Norberg 89a9a25197 exception fixes in torrent 2008-04-07 02:51:21 +00:00
Arvid Norberg 35fd9aec61 msvc build fixes and warning fixes 2008-04-05 21:18:27 +00:00
Arvid Norberg 54bd1a41b0 fix to recent change to move out references to self() from peer_connection constructors 2008-04-01 19:17:09 +00:00
Arvid Norberg 4161be867e removed dht ping from peer_from_tracker. in trunk: implemented a rate limited DHT ping (once a second per torrent) and space optimized the peer structure 2008-04-01 17:38:19 +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 57cd1e7c97 fixed #298. Generates a torrent_paused alert when there's no storage 2008-03-30 15:44:31 +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 ffecb32b81 made a bias to give connection attempts to downloading torrents with few peers. Should accelerate downloads on windows (where there's a half-open connection limit) 2008-03-29 19:39:24 +00:00
Arvid Norberg 2014e312b1 exposed connection_candidates in torrent_status and made a small optimization to not attempt to connect peers on swarms that don't have any connect candidates 2008-03-29 18:47:24 +00:00
Arvid Norberg 537f21d1b9 connection rate improvement when using a half-open connections limit 2008-03-16 10:49:47 +00:00
Arvid Norberg 2cfbfd203f made tests build and pass in trunk. fixed issues in trunk revealed by the tests. fixed failing torrent invariant check in trunk and rc0.13 2008-03-14 10:17:27 +00:00
Arvid Norberg f53cfa7eeb removed checker thread 2008-03-08 06:06:31 +00:00
Arvid Norberg 9d3b60edb7 added support to bind outgoing connections to specific ports (might be useful to do traffic shaping) 2008-02-28 07:34:07 +00:00
Arvid Norberg a25c25b02a fixed windows build and removed msvc warnings 2008-02-25 10:28:53 +00:00
Arvid Norberg 333839c9b4 piece picker update 2008-02-18 03:07:14 +00:00
Arvid Norberg b6493bb4ef fixed typo 2008-02-17 20:57:16 +00:00
Arvid Norberg ea1ce8172f Fixed preprocessor directive error. Fixes #273 2008-02-17 20:42:56 +00:00
Arvid Norberg 7e83c3fc51 changed storage interface to not require exceptions 2008-02-14 03:48:20 +00:00
Arvid Norberg 8cf0510144 added disk cache for write operations 2008-02-08 10:22:05 +00:00
Arvid Norberg a53473a65d added new logging mode to log peer errors 2008-02-07 07:09:52 +00:00
Arvid Norberg c798ab30e1 rewrote the piece picker to be more cpu and memory efficient. replaces the concept of sequential-download-threshold with just a sequential download settings 2008-01-31 17:52:29 +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 5527a8e9b1 fixed build issue on msvc 2008-01-27 21:03:33 +00:00
Arvid Norberg 8b455be1d9 better exception handling and more invariant checks 2008-01-19 19:00:54 +00:00
Arvid Norberg 365b8c07c6 iterator fixes (to avoid triggering safe iterator asserts) 2008-01-19 18:12:02 +00:00
Arvid Norberg 4a92dae541 fixed typo 2008-01-17 21:25:19 +00:00
Arvid Norberg 4b3ba58ad2 disconnect all fix 2008-01-17 20:03:59 +00:00
Arvid Norberg 127d3e6ad5 bandwidth limiter fixes. proper priority that cannot starve connections 2008-01-17 17:40:46 +00:00
Arvid Norberg 832c0c8b63 improved auto-unchoke mechanism 2008-01-15 08:37:48 +00:00
Arvid Norberg b19bf337bf generalized peer read/write state 2008-01-13 23:46:43 +00:00
Arvid Norberg 3f4474caba per torrent bandwidth limiter fix 2008-01-13 22:27:33 +00:00
Arvid Norberg 3a727e99ff expose more info through peer_info 2008-01-10 22:13:23 +00:00
Arvid Norberg 695cd6407b remove use of strand 2008-01-08 05:47:43 +00:00
Arvid Norberg 1d6e0f5bf6 bandwidth request block size optimization 2008-01-07 04:47:20 +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 1c816fa608 removes peers from bandwidth request queue when disconnecting 2008-01-06 00:58:51 +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 ddf16fb3bb separated bandwidth_manager into bandwidht_limit and bandwidth_queue_entry and fixed problems related to #225 2007-12-31 09:41:50 +00:00
Arvid Norberg ae0e53820b added missing return statement 2007-12-29 07:16:36 +00:00
Arvid Norberg eb8ea0f461 made torrent_info not rely on exception support 2007-12-28 20:11:10 +00:00
Arvid Norberg bc656acebb fix limiting incoming connections to torrent limit 2007-12-27 10:19:36 +00:00
Arvid Norberg d1311e2bb8 improved session logging 2007-12-19 21:36:54 +00:00
Arvid Norberg 9aa2ddec80 added a plugin 'smart_ban' that can ban peers sending bad data with higher accuracy 2007-12-18 06:04:54 +00:00
Arvid Norberg 0943c0d299 added more asserts to make sure m_num_pieces is >= the number of pieces the piece picker thinks we have 2007-12-15 22:51:03 +00:00
Arvid Norberg 948f53a8af assert fix 2007-12-14 06:09:44 +00:00
Arvid Norberg db082dd5d2 added asserts for total_wanted_done 2007-12-09 19:38:17 +00:00
Arvid Norberg d695a44360 fixed bug where tracker wouldn't be announced when deleting files 2007-12-07 03:09:21 +00:00
Arvid Norberg b817412b90 fixed overflow bug in total_done() (as reported by MassaRoddel) 2007-11-30 06:14:45 +00:00
Arvid Norberg bfc4be1ca5 fixed #27 2007-11-28 02:54:46 +00:00
Arvid Norberg 1cc0118c9c supports retry for web seeds that respond with 503 2007-11-27 03:37:47 +00:00
Arvid Norberg 254e4ffce4 added extra asserts in torrent 2007-11-26 23:08:59 +00:00
Arvid Norberg c92fef5b69 simplified torrent_handle by using a macro and moving the big chunks of code into torrent (get_download_queue() and get_peer_info()) 2007-11-25 18:48:43 +00:00
Arvid Norberg b00096ad33 lsd and dht usage improvements 2007-11-25 09:33:26 +00:00
Arvid Norberg 41ffc87d98 fixed typo 2007-11-20 23:19:30 +00:00
Arvid Norberg fabfe6cd50 added scrape support 2007-11-20 22:46:27 +00:00
Arvid Norberg fd11e07a55 memory optimization to free piece hashes is now optional 2007-11-19 04:58:52 +00:00
Arvid Norberg 3c8587f919 fixed bug where removing all trackers would crash libtorrent. Fixes #205 2007-11-16 19:35:09 +00:00
Arvid Norberg 2ea9fb2851 improved error handling when deleting files 2007-11-16 19:04:43 +00:00
Arvid Norberg bab4695028 added test for replace_trackers and removed incorrect assert 2007-11-15 10:11:39 +00:00
Arvid Norberg 95d09070fb cancels more async operations on shutdown 2007-11-11 19:09:29 +00:00
Arvid Norberg 80e8aa0a18 add_extension on torrent_handle, to add an extension on an already running torrent 2007-11-08 01:45:35 +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 8f07edbed2 asio handlers are now properly cancelled when destructing the session object, race conditions are avoided by waiting for the io service to complete all tasks 2007-10-26 07:14:19 +00:00
Arvid Norberg 49e71de64a improved web seed logging 2007-10-23 22:11:02 +00:00
Arvid Norberg fcc238e801 lowered piece timeout and sends cancels for pieces when a time out occurs 2007-10-22 20:58:42 +00:00
Arvid Norberg 92d29334fa cleanup. doesn't allocate sockets on the heap for no reason anymore 2007-10-22 04:17:26 +00:00
Arvid Norberg a00f27b7ec some extra peer logging + fix for previous invariant check 2007-10-18 04:18:09 +00:00
Arvid Norberg b032c26bf0 adds invariant check to make sure pieces that are complete are also checked. adds a debug function in the disk_io_thread. Fixes a problem with a failing disk write that would not clear the block for re-download. Adds some extra session logging 2007-10-18 00:32:16 +00:00
Arvid Norberg 1699fa4652 fast reconnect fixes 2007-10-15 05:03:29 +00:00
Arvid Norberg 59c7f5bfbb added option to delete files from disk as a torrent is removed 2007-10-13 03:33:33 +00:00
Arvid Norberg ffe2e75882 added another alert to cover all cases where the torrent has to be checked at start, and tell the user why. Fixed a problem with the resume data generation introduced in last storage check-in 2007-10-09 00:25:01 +00:00
Arvid Norberg 4d19f7ff0f storage optimization. introduced a nother allocation mode: sparse. Now there is allocate, compact and sparse. Unless compact is used, the memory structures used to keep track of pieces are no longer allocated. sparse storage mode is now the default 2007-10-08 20:01:36 +00:00
Arvid Norberg 28274bf1bd improved shutdown behavior. decreased tracker timeouts to 5 seconds. added more logging 2007-10-07 18:06:56 +00:00
Arvid Norberg 64057e3fb0 torrent fix 2007-10-05 17:31:02 +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 c4c8d0f533 moved piece_finished_alert to debug level 2007-10-03 23:15:13 +00:00
Arvid Norberg f85873263b fixed possible race condition in debug mode 2007-10-03 17:40:18 +00:00
Arvid Norberg 16886741d0 release_files now keeps the torrent object alive 2007-10-02 18:34:34 +00:00
Arvid Norberg 0b1a542aa9 added test for local service discovery 2007-10-01 02:09:12 +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 c0195ae221 fix for last optimization 2007-09-26 15:32:49 +00:00
Arvid Norberg d97f4cd835 optimization of static country table 2007-09-26 00:03:22 +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 abbe3c774f fixed problem with clashing connections when allowing multiple peers from the same IP 2007-09-19 06:05:14 +00:00
Arvid Norberg 57a76f9db6 fixed debug assert on linux 2007-09-10 06:12:41 +00:00
Arvid Norberg c8088459a0 made torrent_info reference counted and held by a boost::intrusive_ptr 2007-09-01 03:00:31 +00:00
Arvid Norberg e248ba0cdc added asserts to make sure the global connection limit is not exceeded 2007-08-27 16:45:45 +00:00
Arvid Norberg 8b44a25bbb more asserts and tests for the bandwidth_limiter 2007-08-26 23:40:58 +00:00
Arvid Norberg 744d96796b made it possible to start torrents in paused state. updated documentation 2007-08-22 05:31:42 +00:00
Arvid Norberg b8e48c061e attempt to fix build errors on windows. #134 2007-08-21 04:46:17 +00:00
Arvid Norberg 3d3df51d45 fixed per torrent unchoke limit 2007-08-17 07:37:08 +00:00
Arvid Norberg b341b653cb assertion fix 2007-08-17 02:15:01 +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 4ac1ac8a1f removed allocate_resources. switched to a global unchoker and connection distribution 2007-08-16 12:41:46 +00:00
Arvid Norberg 6e78b6b824 optimization to only update peer interests in case a piece was filtered/unfiltered during a priority call 2007-08-10 21:13:35 +00:00
Arvid Norberg 3f5204aff6 removed some invariant checks that are expensive 2007-08-08 22:38:30 +00:00
Arvid Norberg 3cdbda928e fixes #104 2007-08-07 07:17:13 +00:00
Arvid Norberg f2a8fe6df7 fixes to prevent incorrect asserts 2007-08-01 15:48:55 +00:00
Arvid Norberg 1973af7779 added alert messages for blocks finishing, pieces finishing and blocks being requested. patch by micah 2007-08-01 06:14:16 +00:00
Arvid Norberg f89ce2669f fixes #90. adds compact_mode to torrent_status 2007-07-23 04:36:56 +00:00
Arvid Norberg 3050e35adf disabled lsd for private torrents 2007-07-23 00:38:31 +00:00
Arvid Norberg 664abc570b uploads limit fix 2007-07-17 06:39:39 +00:00
Arvid Norberg 6650a34cfd fixed #83 2007-07-15 14:20:55 +00:00
Arvid Norberg 9bdf2a9c8d fixed invariant check in policy 2007-07-10 17:25:10 +00:00
Arvid Norberg 4771f323f6 added invariant checks for peer_counter in block_info. added bytes_progress and block_size to block_info (to allow a more detail download progress display). Updated client_test to show download progress per block and also to have a separate color for 'multi blocks' (i.e. blocks that have been requested from more than one peer) 2007-07-08 20:45:42 +00:00
Arvid Norberg a3e66a3efe made the piece picker handle multi-request blocks better. fixes problem that might occur at the end of a torrent where the piece picker could take over blocks back and forth 2007-07-06 17:15:35 +00:00
Arvid Norberg 3c69e3b2cb updated asserts 2007-07-04 16:15:46 +00:00
Arvid Norberg b20270d243 added more asserts related to recent downloading_piece optimization and fixed a translation problem to the public interface 2007-07-04 15:46:10 +00:00
Arvid Norberg 3bdf01778a chamged peer representation from tcp::endpoint to policy::peer pointer in piece_picker's downloading piece. Saves memory, removes the need for lookup and improves the hash check fail/pass handling for closed connections 2007-07-04 02:16:49 +00:00
Arvid Norberg e714e1aeba improved bandwidth limiter and added a unit test for it 2007-07-02 23:48:06 +00:00
Arvid Norberg 8aa37dfa39 fixed #75 2007-07-02 19:31:46 +00:00
Arvid Norberg 816bf3ff2d made the number of peers requested from trackers customizable 2007-07-02 18:44:33 +00:00
Arvid Norberg 340a91e2a4 fixed #74 2007-06-21 00:51:42 +00:00
Arvid Norberg 0d7a208865 added more output to transfer tests and changed the data to be more easily debuggable + some code cleanup 2007-06-20 18:41:53 +00:00
Arvid Norberg bbaa2efcb0 removed asserts that are can no longer be maintained with the async io 2007-06-13 18:09:52 +00:00
Arvid Norberg b75a69cd47 added alerts for synchronizing disk io when pausing and moving storage 2007-06-11 21:24:14 +00:00
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg a7ad108e8a made the unchoke interval configurable 2007-06-07 22:37:58 +00:00
Arvid Norberg 4f339272dc minor cleanup 2007-06-03 05:57:05 +00:00
Arvid Norberg 31247c046a supports turning on and off upnp, natpmp and lsd. All ofthem are now off by default 2007-05-31 00:21:54 +00:00
Arvid Norberg f65c08338e fixed bug with torrents having peers despite being paused 2007-05-30 08:37:36 +00:00
Arvid Norberg 14a15831ef exposed piece availability vector 2007-05-30 06:52:59 +00:00
Arvid Norberg 1d15a5040c removed old unused logging 2007-05-26 22:55:21 +00:00
Arvid Norberg ea965431bf fixed typo 2007-05-26 19:28:38 +00:00
Arvid Norberg c10e74f4fc improved control over the rate of connection attempts 2007-05-25 21:00:35 +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 510966f2a5 fixed fast resume data bug when using full allocation mode, and moved parts of resume data generation to the storage 2007-05-24 18:53:55 +00:00
Arvid Norberg 58b23a79e7 exception fixes 2007-05-24 17:07:43 +00:00
Arvid Norberg cbd67ed729 added support for authentication in the url_parser and added a test for it 2007-05-22 20:44:18 +00:00
Arvid Norberg ea45641c8b made lsd work 2007-05-17 00:01:51 +00:00
Arvid Norberg 1d68e10684 made it build in msvc by inserting ; at the end of function try blocks 2007-05-16 01:17:14 +00:00
Arvid Norberg f5c449837f introduced an extra invariant check in policy to make sure peers are unique 2007-05-12 20:25:44 +00:00
Arvid Norberg f39185bb21 optimized the read callback to loop and exhaust the read buffer from the socket instead of making another async read call. #43 2007-05-10 01:50:11 +00:00
Arvid Norberg a5847956e1 most of the metadata is now freed when a torrent becomes a seed. #44 2007-05-09 22:54:26 +00:00
Arvid Norberg 6dcca9250b optimized heap allocations in piece_picker. #42 2007-05-09 00:49:13 +00:00
Arvid Norberg 4956639171 piece picker optimization 2007-05-08 11:13:13 +00:00
Arvid Norberg a2b359b64e fixed assert in torrent.cpp 2007-05-07 18:19:53 +00:00
Arvid Norberg 508dfd722a cleaned up policy a bit and the country code list 2007-05-05 22:55:34 +00:00
Arvid Norberg 49bd69cad4 introduced a proper half open TCP connection limit. Also exposed the connection queue to let clients use the same connection limiter as libtorrent. UPnP connections and tracker connection are now also limited as well as peer connections and web seeds 2007-05-05 00:29:33 +00:00
Arvid Norberg 983f4bc02e removed unneccesary connection lookup in connect_peer 2007-05-04 16:35:29 +00:00
Arvid Norberg 9be3f14dd7 fixed bug in recent connection queue changes 2007-05-03 17:12:24 +00:00
Arvid Norberg 56a4b8412a restored the faster connection behavior 2007-05-03 01:49:14 +00:00
Arvid Norberg 54805ca60b added option to disable country resolving 2007-05-02 19:47:38 +00:00
Arvid Norberg 13bcb48dba fixed warnings and removed unused variables 2007-05-02 18:45:29 +00:00
Arvid Norberg 04e41cf702 improved connection queue handling slightly. Will require further improvements 2007-05-02 17:38:37 +00:00
Arvid Norberg f41fd7d303 added catch blocks to lsd. changed bind expressions to use operators 2007-04-29 20:49:30 +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 75d61207f2 fix for prioritize_files() 2007-04-17 22:56:14 +00:00
Arvid Norberg 849db39472 added peer_blocked_alert which is generated when a peer is blocked by the IP filter. Fixed the ip-filter parsing in client_test and made it report the peer_blocked_alert. Added documentation. 2007-04-17 05:56:43 +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 0e5ce5dd9d cleaned up policy a bit, moved the seed check in on_bitfield to be performed before the piece picker is updated 2007-04-13 01:53:25 +00:00
Arvid Norberg 52623405f0 improved unchoking, connecting and disconnecting logic in policy. seems to fix #29 2007-04-12 10:21:55 +00:00
Arvid Norberg 87b1cdc341 fix to avoid connecting web seeds when not a seed but finished 2007-04-11 22:27:58 +00:00
Arvid Norberg e503e334d5 fix to previous check-in 2007-04-11 17:44:15 +00:00
Arvid Norberg 109cc3f232 made the announce timer (for dht and lsd) use a weak pointer instead of raw pointer, to avoid problems when torrent is being destructed 2007-04-11 17:22:19 +00:00
Arvid Norberg 250adabcfa removed unused web stats 2007-04-11 16:50:54 +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 4ceb6a02ea added download_limit and upload_limit functions to torrent_handle 2007-04-10 09:25:17 +00:00
Arvid Norberg d88ffcc0e4 removed some more unecessary boost.date_time dependencies 2007-04-10 07:52:58 +00:00
Arvid Norberg e7d1f92623 removed debug printout 2007-04-05 16:33:40 +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 a4ccee15df removed unused code 2007-04-04 02:10:25 +00:00
Arvid Norberg 5e32484194 first stab at getting local service discovery 2007-04-04 02:06:07 +00:00
Arvid Norberg ec2962dd62 extensions are now instantiated for web seeds as well 2007-04-02 20:00:24 +00:00
Arvid Norberg f65b5f677b fixed incorrect locking that might cause invariant check failures 2007-03-30 22:00:26 +00:00
Arvid Norberg 513d388c2c added extension hook when files have been checked 2007-03-28 22:59:35 +00:00
Arvid Norberg ce14cb5783 properly updates piece interest bit for deprecated filter functions 2007-03-28 22:22:24 +00:00
Arvid Norberg f1af5dc637 changes to ut_pex, added support for seed flag in pex messages 2007-03-28 01:06:15 +00:00
Arvid Norberg 985e457e91 fixed exception issue 2007-03-26 06:48:34 +00:00
Arvid Norberg 20e38bc42b peer interest flag is now updated when priority is changed. fixes in piece_picker 2007-03-21 02:09:50 +00:00
Arvid Norberg 776b399a97 added api for piece priorities 2007-03-20 01:59:00 +00:00
Arvid Norberg 7ff5893431 reverted bad check-in where files_checked was removed from piece_picker 2007-03-17 17:28:59 +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 4ac08f393a simplified the piece picker by initializing it properly in its constructor. Removed natpmp reporting port map success when removing mappings. fix where incoming connections before the files were completely checked would cause an assert. 2007-03-16 23:28:26 +00:00
Arvid Norberg 029953c5ae made the storage into a customization point. it is now interchangable for a custom implementation 2007-03-16 05:29:23 +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 87d9cdb965 fix for msvc-7.1 2007-03-11 23:17:40 +00:00
Arvid Norberg 6f0a0beadb fix to allow hostnames for peers in tracker responses 2007-03-07 18:50:38 +00:00
Arvid Norberg b0ae8d3a14 tracker fixes for trackerless torrents 2007-02-21 17:15:47 +00:00
Arvid Norberg 3fc73cb219 added a web seed test (requires manual environment setup for web server). fixed bug in torrent_info where file offsets could be left uninitialized. Fixed bug in torrent which would cause a crash in case a torrent without any trackers would be aborted. 2007-02-20 01:42:12 +00:00
Arvid Norberg 4f86042b97 bandwidth management fix + improved string conversion fallback in case strings are incorrect in torrent 2007-02-19 23:06:20 +00:00
Arvid Norberg f5fe27e691 bandwidth management fix + fix to http tracker connection request builder 2007-02-19 21:24:48 +00:00
Arvid Norberg 9c0e9701d9 fix for bug in bandwidth throttler when limiting a torrent to lower than bandwidth block size. Fixed #ifndef related to DHT support 2007-02-19 00:01:39 +00:00
Arvid Norberg 889ad70cee fixes for metadata-less torrents, and fixes for peer requests 2007-02-15 03:03:50 +00:00
Arvid Norberg 14cb23cec2 tracker announces will always request 50 peers, unless it's stopped 2007-02-12 22:45:23 +00:00
Arvid Norberg 6a47eb501e fixed problem with torrents that were paused not getting any upload slots or connection quota once the were unpaused 2007-02-12 18:21:14 +00:00
Arvid Norberg f795be7acf made the dht be a fallback by default, fixed glitch in earlier fix to make sure block requests are sent properly, fixed problem in peer_connection::second_tick if the piece picker was removed because of the torrent becoming a seed 2007-02-12 09:20:49 +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 d0ebdb2dee added prioritization in the bandwidth_manager (throttler), web seeds now have lower priority when being handed bandwidth. torrent_reply_alert now includes the number of peers returned from the tracker. updated Changelog 2007-02-01 07:33:04 +00:00
Arvid Norberg 05f4ce5b6c fixed potetial deadlock in bandwidth manager. Fixed http-tracker requests that are sensitive to existing arguments in url (avoids duplicates and doesn't replace arguments) 2007-01-30 17:56:42 +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 69ef67d71e made a common base class for torrent alerts. Made the bandwidth quota block size variable depending on the limit 2007-01-16 05:05:52 +00:00
Arvid Norberg cfb238886d added lines that were removed by mistake 2007-01-11 02:59:38 +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 45864b15ec fixed incorrect assert in bytes_done() 2006-12-31 14:48:18 +00:00
Arvid Norberg d58c6d2e31 fixed so that both session constructors initializes boost.filesystem. Fixed the case where the file check throws exceptions, the torrent is no longer removed, but paused 2006-12-30 23:02:21 +00:00
Arvid Norberg c69479a166 fixed the cause of an inconsistency in the piece picker and the torrent 2006-12-22 00:45:43 +00:00
Arvid Norberg 1b46fb9e1b fixed an assert in teh web seed downloader 2006-12-21 02:44:00 +00:00
Arvid Norberg ae4267e0a0 fixed the new web seed code to work with multi-file torrents 2006-12-20 23:06:24 +00:00
Arvid Norberg 3a7eeb3966 rewrote most of the web seed downloader to report its progress accurately (to prevent inconsistencies in the core). Not well tested with multi file torrents yet 2006-12-18 01:23:30 +00:00
Arvid Norberg 0bad3bcc48 fixed typos 2006-12-15 23:24:40 +00:00
Arvid Norberg 4c78274897 added more asserts in bytes_done() 2006-12-15 23:22:40 +00:00
Arvid Norberg 13facbdb83 added a strand for all async operations for thread safety 2006-12-15 17:47:21 +00:00
Arvid Norberg c567d06406 some asserts 2006-12-15 12:29:47 +00:00
Arvid Norberg 79ebcf5dd8 modified the hueristic for taking over blocks slightly, added logging 2006-12-15 10:42:56 +00:00