Arvid Norberg and Arvid Norberg
6d4e2cc064
make the save path for part files configurable
2026-01-24 11:47:19 +01:00
arvidn and Arvid Norberg
77eb55f31e
Transition resolving duplicate and invalid filenames to the new structure where torrent_info and file_storage are immutable and renamed files are recorded in a separate structure.
2025-07-15 17:45:39 +02:00
Arvid Norberg and Arvid Norberg
f51bffbd19
make torrent_info immutable to avoid copying it
2025-06-29 15:12:16 +02:00
arvidn and Arvid Norberg
4b3f5872e1
pass in whether a torrent has v1 and/or v2 hashes in storage_params
2024-02-20 09:14:21 +01:00
arvidn and Arvid Norberg
d4d7c25606
prepare web seed tests to use add_torrent_params instead of torrent_info
2023-01-29 13:22:14 +01:00
arvidn and Arvid Norberg
e65623b317
add a simpler overload to bencode() returning a vector<char>
2022-12-19 02:57:06 +01:00
arvidn
d61f88c062
merged RC_2_0 into master
2022-08-08 18:56:56 +02:00
arvidn and Arvid Norberg
9eac98fcd3
change vectored I/O API to single-buffer in readwritev() and posix- and mmap storage
2022-08-08 17:40:37 +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
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
arvidn
24912ce55e
merge RC_2_0 into master
2020-11-09 15:58:22 +01:00
Arvid Norberg
40a8e759b7
merge RC_1_2 into RC_2_0
2020-10-29 12:46:22 +01:00
Arvid Norberg and Arvid Norberg
7b85a05d35
add test for creating hard-links for existing files in other torrents
2020-10-28 23:53:17 +01: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
d3f7a363c2
update copyright year
2019-08-29 00:13:04 +02:00
arvidn and Arvid Norberg
05351c2127
fix build with no mmap support
2019-02-23 01:41:46 +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
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 and Arvid Norberg
5530793c75
improve the API for iterating over all files and pieces, with the new strong index types.
2018-06-12 11:44:29 +02:00
arvidn and Arvid Norberg
6785046c2f
introduce a download_priority_t type, for uniform an type-safe piece- and file priorities
2017-11-02 08:20:21 +01:00
arvidn and Arvid Norberg
c4eb4c8b5f
use span in torrent_info constructors and deprecate the redundant flags argument
2017-07-22 00:00:44 -07:00
arvidn and Arvid Norberg
c4afb5e949
use a dedicated class template for flags types instead of enum class. It's more backwards compatible and improves ergonomics
2017-07-15 01:15:57 -07:00
arvidn and Arvid Norberg
aa842948a3
storage_params cleanup
2017-06-20 10:27:28 -04:00
arvidn and Arvid Norberg
ffaabd846c
make file open mode flags be an enum class for type-safety
2017-05-28 11:16:59 -04:00
arvidn and Arvid Norberg
d138f02424
introduce lt namespace alias
2017-04-23 23:43:58 -04:00
arvidn and Arvid Norberg
51c42adc3e
steps towars making file_pool private to disk_io_thread
2017-04-07 08:38:35 -04:00
Arvid Norberg and GitHub
64ad4f5c96
enable warnings when building tests ( #1880 )
2017-04-02 14:22:17 -04:00
Arvid Norberg and GitHub
3d06371f31
factor out some common storage utilities out of storage.cpp ( #1515 )
...
factor out some common storage utilities out of storage.cpp
2017-01-11 00:42:10 -05:00
Arvid Norberg and GitHub
3f1084d63d
strengthened type safety in handling of piece and file indices ( #1409 )
...
strengthened type safety in handling of piece and file indices
2016-12-22 10:42:33 -05:00
arvidn and Arvid Norberg
20aeed09e1
clean up tests
2016-11-12 17:39:34 -05:00
Alden Torres and Arvid Norberg
6751a1eeb1
removed spaces in template types and more c++11 auto/loop refactor
2016-10-26 00:08:00 -04:00
arvidn
6c805bd06d
simplify print statements in tests
2016-10-09 20:23:45 -04:00
Alden Torres and Arvid Norberg
5789b02e1b
storage_interface refactor to use span and references ( #1007 )
...
storage_interface refactor to use span and references
2016-08-18 11:57:50 -04:00
Alden Torres and Arvid Norberg
bb388563b3
refactor to use torrent_info with std::shared_ptr ( #1006 )
2016-08-17 17:26:35 -04:00
Arvid Norberg and GitHub
7bf49c0a1c
modernize hasher to use array_view ( #931 )
...
modernize hasher to use array_view as well as adding array_view support to entry
2016-07-22 07:29:39 -07:00
Arvid Norberg and GitHub
717ed8bd3b
Msvc warnings ( #822 )
...
fix msvc warnings in python bindings and simulations
2016-06-18 19:24:27 -04:00
Arvid Norberg and GitHub
ed077c8358
use cstdint intead of boost/cstdint.hpp ( #833 )
...
use cstdint intead of boost/cstdint.hpp
2016-06-18 14:01:38 -04:00
Arvid Norberg
e8380e1d0b
factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows ( #732 )
2016-05-17 09:24:06 -04:00
Arvid Norberg
44a668db62
build with gcc/mingw on appveyor ( #722 )
...
enable gcc/mingw builds on appveyor. Some mingw tests crash currently, they need debugging and are currently disabled.
2016-05-15 13:28:22 -04:00
Andrei Kurushin and Arvid Norberg
62eb956c54
fix x64 build with VS2015 UP2 compiler ( #640 )
...
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
arvidn and arvidn
efe32c6a0e
rewrite most of web_peer_connection::on_receive to make it a lot simpler and fix edge cases with pad-files
2016-01-28 01:58:33 -05:00