Commit Graph

478 Commits

Author SHA1 Message Date
Arvid Norberg 557ddca693 fixed bug when remapping files 2011-01-19 08:42:17 +00:00
Arvid Norberg 59a7ee73dc fixed file allocation bug when existing files are larger than they're supposed to be 2011-01-19 07:39:55 +00:00
Arvid Norberg d301890d78 fixed edge case of pad file support 2010-12-13 16:47:12 +00:00
Arvid Norberg 2e69366b02 reverted part of the file_storage API to match the previous one more closly 2010-11-29 05:44:29 +00:00
Arvid Norberg e5f980d80d merged uTP branch into trunk (yay) 2010-11-29 01:33:05 +00:00
Arvid Norberg 894db973e8 optimized memory usage of torrent_info and file_storage 2010-11-24 23:49:22 +00:00
Arvid Norberg 2353cc8ec2 assert we don't ask for physical offset of a pad file 2010-11-14 08:17:27 +00:00
Arvid Norberg 0773644a4e fixed web seed test to work with invariant checks turned on and fixed error reporting when receiving an unexpected responce for http seeds 2010-10-30 19:45:50 +00:00
Arvid Norberg 4b6a73417d fixed error reporting issue in disk I/O thread 2010-10-18 07:38:14 +00:00
Arvid Norberg 554e329f57 remove udp_socket mutex 2010-09-25 21:39:27 +00:00
Arvid Norberg b7b542f587 optimized file_pool lookups and string handling 2010-08-23 08:48:02 +00:00
Arvid Norberg 2736a3b7ff fixed file checking bug 2010-08-23 05:51:12 +00:00
Arvid Norberg 7c5ca7712a fixed bug on windows when verifying resume data for a torrent where one of its directories had been removed 2010-07-24 07:06:45 +00:00
Arvid Norberg beafa4f3e0 add some more potential error codes that should cause the torrent check to skip the file 2010-07-15 01:32:59 +00:00
Arvid Norberg 97afe3fca8 added option to set file priorities when adding torrents 2010-07-15 01:14:36 +00:00
Arvid Norberg dce2edb6cc fixed vs 2010 build 2010-04-30 19:08:16 +00:00
Arvid Norberg 62eef91338 added setting to ignore file modification time when loading resume files 2010-04-11 21:02:43 +00:00
Arvid Norberg 247bd9256d fixed bug in fallocate usage and avoid trying to allocate and truncate files that don't need it to not update their modification time for no good reason 2010-03-06 20:09:18 +00:00
Arvid Norberg 1b2798970c support O_NOATIME on linux and use it by default 2010-02-02 19:44:52 +00:00
Arvid Norberg 5b747f58f7 add guided read cache and update tuning docs 2010-01-31 19:14:00 +00:00
Arvid Norberg da89e1b2ee indentation fix 2010-01-17 07:39:07 +00:00
Arvid Norberg c9b594fde1 support sending suggest messages based on what's in the read cache. support 'explicit read cache' 2010-01-15 16:45:42 +00:00
Arvid Norberg d498c129ab clear sparse flag on files that complete on windows 2010-01-09 18:40:05 +00:00
Arvid Norberg ac8f64f5fe fixed deadlock in piece_manager 2009-12-25 16:02:45 +00:00
Arvid Norberg df2f2570c2 factor out page size function and make aligned allocator configurable to use posix_memalign and memalign 2009-12-09 01:55:30 +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 1d6d11bf0c storage fix 2009-11-28 08:58:07 +00:00
Arvid Norberg 6343fe6a6d optimized header dependencies to lower build time 2009-11-23 08:38:50 +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 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 fdb3b355ad fixed incorrect error when deleting files from a torrent where not all files have been created 2009-10-08 18:21:13 +00:00
Arvid Norberg 562450f545 more storage::hash_for_slot fixes 2009-09-05 16:32:54 +00:00
Arvid Norberg 8273d67a42 fixed bug in storage::hash_for_slot 2009-09-05 14:20:00 +00:00
Arvid Norberg bec481acdf improved disk read performance and fixed bug in storage_interface's backwards compatibility functions 2009-09-05 07:21:10 +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 6078dd06b0 removed the last dependency on iostream and lexical cast 2009-08-25 18:13:46 +00:00
Arvid Norberg 4cfc97f396 added limewire to projects page and fixed some documentation typos 2009-08-05 02:31:57 +00:00
Arvid Norberg 63368c1383 added dummy storage class to disable disk I/O and an option to disable hash checking (for performance testing and simulation) 2009-08-02 06:40:45 +00:00
Arvid Norberg ecdd7231b8 removed redundant code in disk_io_thread 2009-07-21 04:32:27 +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 b6b4e0d051 fix wpath build issue 2009-06-24 17:05:14 +00:00
Arvid Norberg 7eb7dfdf17 fixed rename_file 2009-06-24 09:09:35 +00:00
Arvid Norberg 3e3c60b1ca fixed support for non-utf8 codepages 2009-06-23 02:49:57 +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 8f47ba50f1 hash_for_slot fix 2009-06-14 22:50:35 +00:00
Arvid Norberg 62a7946968 disk stats fix 2009-06-14 22:20:23 +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 bd33814376 improve disk error handling 2009-05-31 22:41:53 +00:00
Arvid Norberg b2c5d8a563 include the piece index that failed in disk errors 2009-05-31 19:44:56 +00:00
Daniel Wallin bcfe8cbf2d Fix #ifdef typo. 2009-05-26 18:20:32 +00:00
Arvid Norberg 5fbff8e060 fixed a bug when checking a torrent twice 2009-05-23 15:58:32 +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 cb9c3cb37d memory optimization for checking torrents 2009-05-21 16:15:05 +00:00
Arvid Norberg a2668d9b1b optimized memory usage when checking files fails 2009-05-16 02:25:28 +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 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 4421ccf11c fixed missed spot in safe_convert -> convert_to_wstring rename 2009-04-24 08:33:23 +00:00
Arvid Norberg fb5ef271cd storage fix for locale dependent filename encoding 2009-04-13 01:03:33 +00:00
Arvid Norberg c3dce7c91b fixed typo 2009-04-12 21:07:17 +00:00
Arvid Norberg 3426385226 improve error reporting for boost-1.34 and fix boost-1.34 compatibility 2009-04-12 18:04:20 +00:00
Arvid Norberg efbb3a5861 removed debug logging 2009-04-10 08:21:10 +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 6219c2e36c fixed padding file and resume data bug 2009-04-09 17:36:05 +00:00
Arvid Norberg aba5b2e9d0 dropped some iostream dependencies 2009-04-04 09:52:25 +00:00
Arvid Norberg 3499913c59 storage compact mode resume data fix 2009-03-31 08:20:34 +00:00
Arvid Norberg c6017f9366 reverted bug introduced a few check-ins ago. Fixed case when recursive_copy fails (don't remove the original files). Cleaned up callback dispatching in disk_io_thread in trunk. Improved unit tests for move_storage 2009-03-31 08:05:46 +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 1cdfe26630 Fixed bug when moving storage with files renamed to end up outside of the rood directory. Fixes Deluge bug http://dev.deluge-torrent.org/ticket/839 2009-03-17 09:31:30 +00:00
Arvid Norberg b809028bda uses iconv by default on linux to convert filenames from utf-8 to the current locale 2009-03-01 00:02:33 +00:00
Arvid Norberg fbc6910335 fix cast issue on 64-bit platforms 2009-02-22 20:18:42 +00:00
Arvid Norberg d728af10a2 fix 64-bit cast issue 2009-02-21 18:02:12 +00:00
Arvid Norberg 13ca386838 improved support for sparse files on windows 2009-02-17 00:11:38 +00:00
Arvid Norberg 75efebac1e allocate files on unix when allocate storage mode is used 2009-02-16 00:42:44 +00:00
Arvid Norberg 9905f700ae prepare to take sparse regions into account when checking files 2009-02-14 04:31:08 +00:00
Arvid Norberg dc4d50b117 don't make files sparse when allocation mode is set on the storage (windows only) 2009-02-14 03:56:07 +00:00
Arvid Norberg 1ac8f806fa added seed mode support (lazy hash checking) 2009-02-03 07:46:24 +00:00
Arvid Norberg b3a17b1787 added disk buffer instrumentation and log parser 2009-01-23 09:13:31 +00:00
Arvid Norberg 00808473e7 factor out disk_buffer_pool from disk_io_thread. refactored the file open modes to be platform independent. gave the disk_io_thread its own copy of session_settings that it shares with storage. added an unaligned_read implementation to storage. Added options to session_settings on when to open files in unbuffered mode. Added unit tests for unaligned reads 2009-01-21 07:31:49 +00:00
Arvid Norberg ae1fa3c1b5 linux file fixes 2009-01-17 09:37:40 +00:00
Arvid Norberg 5b551c1761 merged storage::readv() and storage::writev() 2009-01-17 08:35:48 +00:00
Arvid Norberg b9d7538ba8 fixed storage to generate a proper error when the read operation 2009-01-14 03:05:35 +00:00
Arvid Norberg 0bb330225c another storage fix 2009-01-13 08:58:35 +00:00
Arvid Norberg 2a19a52465 fix incorrect buffer handling with pad files 2009-01-12 18:08:18 +00:00
Arvid Norberg eea890de11 added support for generating torrent files with padding files in them 2009-01-11 10:32:57 +00:00
Arvid Norberg 7592ad4aee updated disk IO to support unbuffered files 2009-01-11 02:02:34 +00:00
Arvid Norberg f1d229aae6 first pass of replacing coalesce writes and reads by writev and readv (no windows support yet) 2009-01-03 08:11:31 +00:00
Arvid Norberg eb1de9d9eb fixed potential problem in storage where it sometimes checks files without first initializing 2008-12-13 03:32:57 +00:00
Arvid Norberg ef8234efc5 fixed preprocessor defines using UNICODE instead of TORRENT_USE_WPATH. Removed old boost.filesystem replacement code to support boost 1.33 2008-12-09 03:45:58 +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 357d548bb5 fixed boost.filesystem usage to not rely on deprecated functions 2008-11-21 23:38:07 +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 de93105d51 pad file fix 2008-11-16 23:33:59 +00:00
Arvid Norberg 7e4d5dc72f avoid exception from boost.filesystem 2008-11-14 23:23:02 +00:00
Arvid Norberg 40946162b3 avoid exceptions from boost.filesystem 2008-11-14 21:35:21 +00:00
Arvid Norberg 03398e94b0 replaced utf8 conversion with code from unicode.org 2008-11-13 06:39:08 +00:00
Arvid Norberg afb6b55b8f fixed typo in safe_convert call 2008-10-30 17:04:59 +00:00
Arvid Norberg d6a8c28d9c storage cleanup and truncating files that are larger than they should be 2008-10-30 06:09:23 +00:00
Arvid Norberg 829a5a9e25 removed debug output to stderr 2008-10-30 02:33:58 +00:00
Arvid Norberg 535f668c5d simplified the file interface 2008-10-19 05:03:17 +00:00
Arvid Norberg c0df461296 relaxed file timestamp requirements to work better with FAT volumes 2008-10-15 20:19:03 +00:00
Arvid Norberg ef48097421 fix for #389 2008-10-12 20:36:22 +00:00
Arvid Norberg 8e206c7d0d attempt to fix bug in storage on windows where ENOENT was not properly caught 2008-10-07 09:24:30 +00:00
Arvid Norberg 3d3a8cca6b fixed std::max usage in storage (fixes msvc build) 2008-10-07 05:53:38 +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 ba28449765 rename_file now creates missing directories before renaming 2008-09-30 23:55:45 +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 317d97b316 config fix for unicode builds on windows 2008-09-27 19:49:31 +00:00
Arvid Norberg 97f107a7fd fixed bug in verify_fast_resume. Fixes #397 2008-09-20 06:02:40 +00:00
Arvid Norberg a533bf817c properly reports disk io errors when hashing pieces. made the partial_hash.log easier to enable/disable 2008-09-16 23:32:27 +00:00
Arvid Norberg b72badd1b1 added test for checking files when some files are missing 2008-08-20 08:07:31 +00:00
Arvid Norberg 9bae670ac7 fix build with boost-1.36 2008-08-16 21:11:27 +00:00
Arvid Norberg b32aa520c2 delete_files bug fix 2008-07-20 17:38:59 +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 21dff61cb5 clears read cache when paused. Saves memory 2008-07-18 15:31:22 +00:00
Arvid Norberg db4001e406 fixed file checking bug where the files on disk wouldn't even be inspected 2008-07-18 13:51:26 +00:00
Arvid Norberg 3cb1369385 improved error reporting of file errors (uses boost.system's error_code). Now permission errors are properly reported when checking files 2008-07-17 23:41:46 +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
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 9447693202 storage fastresume fix 2008-06-23 18:31:52 +00:00
Arvid Norberg 811d0a6250 storage fast resume check fix 2008-06-22 23:41:03 +00:00
Arvid Norberg 3e000a3984 fixed save path updates when moving torrents. Fixes #310 2008-06-15 20:52:46 +00:00
Arvid Norberg d47ec46e76 storage wpath fix (for unicode) 2008-06-12 04:52:37 +00:00
Arvid Norberg 59c8a74ba8 in case a regular rename fails, try to copy the storage to the new location. Fixes #231 2008-06-05 16:56:39 +00:00
Arvid Norberg 4709d202e1 fixed unicode issue in storage 2008-06-04 07:57:07 +00:00
Arvid Norberg 3910fe78de separated file_storage from torrent_info and create_torrent 2008-05-28 08:44:40 +00:00
Arvid Norberg ed3cf2bb54 fixed typo 2008-05-15 16:57:35 +00:00
Arvid Norberg 8909aeaadc attempt to fix removal of files on windows with unicode (to fix #216) 2008-05-15 16:38:04 +00:00
Arvid Norberg 91d6099a55 fixed issue with torrents with 0 pieces. Fixes #306 2008-05-15 02:29:26 +00:00
Arvid Norberg d15573ecc2 disk receive buffer cleanup 2008-05-05 06:25:22 +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 d4cfa126aa storage fixes 2008-04-12 22:08:07 +00:00
Arvid Norberg 093d912e9a receive buffer optimization. added receive_buffer_size and used_receive_buffer to peer_info. changed plugin api to make use of new disk_buffer_holder type 2008-04-10 10:03:23 +00:00
Arvid Norberg 5f35d170b0 disk io thread cleanup (all read operations are now read into disk buffers, no custom buffers) 2008-04-10 09:11:54 +00:00
Arvid Norberg 642768bc24 storage cleanup 2008-04-09 01:11:16 +00:00
Arvid Norberg f40eba34a8 exception fixes in storage 2008-04-07 01:45:33 +00:00
Arvid Norberg 35fd9aec61 msvc build fixes and warning fixes 2008-04-05 21:18:27 +00:00
Arvid Norberg 95f1601aa2 storage fix 2008-03-31 03:26:37 +00:00
Arvid Norberg d5d450b483 storage fix 2008-03-25 04:45:46 +00:00
Arvid Norberg 5860ca8706 previous checkin was a mistake 2008-03-25 04:44:30 +00:00
Arvid Norberg b6be33b5b6 storage fix 2008-03-25 04:38:59 +00:00
Arvid Norberg 9eeb3cea9d fast resume data check fix 2008-03-16 18:24:57 +00:00
Arvid Norberg e5072b80f5 fixed file checking bug in trunk 2008-03-16 12:42:59 +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 a25c25b02a fixed windows build and removed msvc warnings 2008-02-25 10:28:53 +00:00
Arvid Norberg 8a14f829b4 removed debug output 2008-02-25 08:42:13 +00:00
Arvid Norberg c1c2fb4409 resume data unit test and fix 2008-02-25 05:07:29 +00:00
Arvid Norberg 9f44c577d7 updated file_win and file_pool error handling 2008-02-25 04:41:21 +00:00
Arvid Norberg 682a5f85f9 fixed crash bug in storage 2008-02-22 06:09:30 +00:00