Commit Graph
88 Commits
Author SHA1 Message Date
Arvid Norberg de712dad55 Merge branch 'RC_2_0' into RC_2_1 2026-05-10 16:20:50 +02:00
Arvid NorbergandArvid Norberg aeb35ce73e fix bug in combine_path 2026-05-10 16:03:53 +02:00
Arvid Norberg f0a58a3523 Merge branch 'RC_2_0' into RC_2_1 2026-05-10 13:35:58 +02:00
Arvid NorbergandArvid Norberg b6750b694e in create_torrent, store symbolic links according to BEP 47 2026-05-10 10:32:03 +02:00
arvidnandArvid Norberg 5abab0509c add new multi-threaded disk I/O subsystem using preadv and pwritev 2026-03-03 15:01:55 +01:00
Arvid NorbergandArvid Norberg f51bffbd19 make torrent_info immutable to avoid copying it 2025-06-29 15:12:16 +02:00
arvidn 4a85472513 merged RC_2_0 into master 2022-09-21 09:57:51 +02:00
arvidnandArvid Norberg e4de026c9a expose mmapped file_open_mode flag 2022-09-21 01:25:48 +02:00
arvidn f7e04af45d merged RC_2_0 into master 2022-09-18 23:56:48 +02:00
arvidnandArvid Norberg 2eb6c21995 improve error reporting from file opy and move 2022-09-16 08:53:51 +02:00
arvidn 86820d2655 merged RC_2_0 into master 2022-08-10 20:14:20 +02:00
arvidnandArvid Norberg bcdf76a6fc remove file class. use file_handle instead 2022-08-10 13:17:35 +02:00
arvidn 964ffc57ba merge RC_2_0 into master 2022-06-23 08:07:28 +02:00
arvidnandArvid Norberg 550d3c7d9f update copyright headers 2022-06-22 21:42:55 +02:00
arvidn c01e6fa767 merged RC_2_0 into master 2022-03-12 15:04:31 +01:00
arvidnandArvid Norberg 940a515f60 remove unused recursive_copy function 2022-02-10 09:37:03 +01:00
arvidnandArvid Norberg 0d3f80bedd update copyright and license headers (of a few new files merged from RC_2_0) 2021-03-29 19:35:45 +02:00
arvidn 0afc27d158 merged RC_2_0 into master 2021-02-06 21:41:31 +01:00
arvidnandArvid Norberg cf8945ad64 move exists() function that ignore errors to test utils, and clean up use in posix_storage and mmap_storage 2021-02-05 01:40:15 +01:00
arvidn b40801a3a3 merge RC_2_0 into master 2021-01-30 14:35:30 +01:00
arvidn fa53a4d723 merged RC_1_2 into RC_2_0 2021-01-26 23:17:05 +01:00
arvidnandArvid Norberg 14473d07af fix the complete() function, turning a path into an absolute path, to correctly strip the ./ prefix of a relative path 2021-01-26 15:39:55 +01:00
Alden TorresandGitHub c71697106e moved copy_ptr.hpp, file.hpp and parse_url.hpp to aux (#5841) 2021-01-09 22:01:31 +01:00
Arvid Norberg 109eaea545 merged RC_2_0 into master 2020-12-06 17:39:59 +01:00
Arvid NorbergandArvid Norberg 24a362e696 simplify file class 2020-11-18 03:17:26 +01:00
Arvid Norberg 4dd05827ad merged RC_2_0 into master 2020-11-15 02:06:24 +01:00
Arvid NorbergandArvid Norberg 31622459fd update copyright 2020-11-14 20:25:15 +01:00
Alden TorresandArvid Norberg 93ff528645 using structured binding 2020-10-04 03:01:39 -07:00
arvidn 041d7cbc58 merged RC_2_0 into master 2020-09-19 00:47:01 +02:00
Arvid NorbergandArvid Norberg 14e334879b add wrapper around std::ofstream to simplify tests that creates files 2020-09-15 10:37:49 -07:00
Arvid NorbergandArvid Norberg 8ab7b8258b separate directory class from file.hpp. use fopen/fclose/fread in torrent_info, instead of file class. introduce a light abstraction around FILE* 2020-09-12 08:56:50 -07:00
arvidnandArvid Norberg 19e8c2f3ea remove full BSD license from all source files. reference LICENSE file in the root instead 2020-09-02 00:56:54 -07:00
arvidnandArvid Norberg 3b91d9b095 fix typo in file_open_mode conversion 2019-12-28 14:57:34 +01:00
arvidnandArvid Norberg d3f7a363c2 update copyright year 2019-08-29 00:13:04 +02:00
arvidn 86e11142a1 merged RC_1_2 into master 2019-08-10 21:11:10 -07:00
Steven SilotiandArvid Norberg 1a7ccf240f generate v2 metadata 2019-08-10 09:28:38 -07:00
arvidnandArvid Norberg 8e23f9cc92 improve file_storage::sanitize_symlinks 2019-07-29 06:10:04 -07:00
arvidn d6fc57f10e merged RC_1_2 into master 2019-03-23 10:06:22 +01:00
arvidnandArvid Norberg 2990532d10 reduce the amount of hacky path/string handling code 2019-03-22 07:48:07 +01:00
Arvid NorbergandArvid Norberg 57cd2882d4 update symlinks to conform to BEP 47 2019-03-19 10:05:06 +01:00
arvidnandArvid Norberg 5f85e40193 remove old, hacky and unused split_string() function 2019-03-19 09:27:06 +01:00
arvidnandArvid Norberg 8305c40d6a make disk_interface the customization point for storage, rather than storage_interface
remove the disk cache
remove trim_cache disk job
remove zero-storage
mark default_storage_constructor as deprecated
remove storage_interface
remove file_pool and default_storage_constructor. update connection_tester to use disk_io_thread.
only ftruncate files once
optimize hashing, by running sha1 directly on the memory mapped file
use boost-multi_index in file_view_pool
remove flush_piece and flush_hashed, simplify job-fence logic, remove prep_read_job_impl
support noatime
split out mmap implementation into a .cpp file
support hashing of content in part files. wraps up new disk storage
remove flush_piece disk job
separate out store_buffer into its own class
pass session_settings into storage operations instead of assigning a pointer in the storage object
use unordered_map in store_buffer
add fopen-based disk io back-end for non-64 bit systems or systems without mmap
factor out open_mode_t into its own header
first stab at windows memory mapped files support
build all of boost for autotools
remove flag in async_read callback handler
remove old open_mode_t, preadv/readv and coalesce buffers
support sparse and no_cache file flags in mmap
Remove use of overlapped I/O because we're no longer doing any scatter/gather syscalls the use of overlapped is an unnecessary complication.
don't explicitly specify global read and write. On MINGW we need to use libtorrent::read and libtorrent::write instead of the MINGW provided ::read and ::write.

If the underlying file is empty then m_mapping is expected to be null.
It is the caller's responsibilty to notice that the region's size is
zero and not dereference it in that case.

Otherwise there is no good way for users of default_storage::open_file
to determine that the opened file is empty.
2019-01-20 18:29:42 +01:00
arvidnandArvid Norberg f4f1425115 use UNC paths pervasively on windows 2019-01-12 21:00:40 +01:00
arvidnandArvid Norberg 5383854768 make span's and sha1_hash's index and size types signed (instead of unsigned). Specifically std::ptrdiff_t. In line with the direction of gsl span and reduce signed->unsigned casts 2018-11-16 14:06:22 +01:00
arvidn 1f9e74f40d merged RC_1_1 into master 2018-11-06 23:57:04 +01:00
Arvid NorbergandArvid Norberg cec300234c fix move_storage with save_path with a trailing slash 2018-11-06 23:46:18 +01:00
arvidnandArvid Norberg 6be8b395da some cleanup turning memcmp() and memcpy() into span comparisons and std::copy(). some more use of random_bytes() instead of loops. 2018-11-05 18:52:45 +01:00
arvidn 2e4713b223 merged RC_1_1 into master 2018-07-13 01:57:04 +02:00
Andrei KurushinandArvid Norberg 7a34b27499 fix Windows "file::preadv" emulation EOF handling 2018-07-12 23:54:34 +02:00
Andrei KurushinandArvid Norberg 5399a14027 Windows async read EOF handling (#3162)
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:30:50 +02:00