Arvid Norberg
de712dad55
Merge branch 'RC_2_0' into RC_2_1
2026-05-10 16:20:50 +02:00
Arvid Norberg and Arvid 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 Norberg and Arvid Norberg
b6750b694e
in create_torrent, store symbolic links according to BEP 47
2026-05-10 10:32:03 +02:00
arvidn and Arvid Norberg
5abab0509c
add new multi-threaded disk I/O subsystem using preadv and pwritev
2026-03-03 15:01:55 +01:00
Arvid Norberg and Arvid 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
arvidn and Arvid 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
arvidn and Arvid 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
arvidn and Arvid 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
arvidn and Arvid 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
arvidn and Arvid Norberg
940a515f60
remove unused recursive_copy function
2022-02-10 09:37:03 +01:00
arvidn and Arvid 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
arvidn and Arvid 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
arvidn and Arvid 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 Torres and GitHub
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 Norberg and Arvid 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 Norberg and Arvid Norberg
31622459fd
update copyright
2020-11-14 20:25:15 +01:00
Alden Torres and Arvid 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 Norberg and Arvid Norberg
14e334879b
add wrapper around std::ofstream to simplify tests that creates files
2020-09-15 10:37:49 -07:00
Arvid Norberg and Arvid 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
arvidn and Arvid 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
arvidn and Arvid Norberg
3b91d9b095
fix typo in file_open_mode conversion
2019-12-28 14:57:34 +01:00
arvidn and Arvid 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 Siloti and Arvid Norberg
1a7ccf240f
generate v2 metadata
2019-08-10 09:28:38 -07:00
arvidn and Arvid 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
arvidn and Arvid Norberg
2990532d10
reduce the amount of hacky path/string handling code
2019-03-22 07:48:07 +01:00
Arvid Norberg and Arvid Norberg
57cd2882d4
update symlinks to conform to BEP 47
2019-03-19 10:05:06 +01:00
arvidn and Arvid Norberg
5f85e40193
remove old, hacky and unused split_string() function
2019-03-19 09:27:06 +01:00
arvidn and Arvid 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
arvidn and Arvid Norberg
f4f1425115
use UNC paths pervasively on windows
2019-01-12 21:00:40 +01:00
arvidn and Arvid 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 Norberg and Arvid Norberg
cec300234c
fix move_storage with save_path with a trailing slash
2018-11-06 23:46:18 +01:00
arvidn and Arvid 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 Kurushin and Arvid Norberg
7a34b27499
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:54:34 +02:00
Andrei Kurushin and Arvid Norberg
5399a14027
Windows async read EOF handling ( #3162 )
...
fix Windows "file::preadv" emulation EOF handling
2018-07-12 23:30:50 +02:00