v2.0.3-rc (#32)
	
		
			
	
		
	
	
		
	
		
			Some checks reported errors
		
		
	
	
		
			
				
	
				BlockStorage/repertory/pipeline/head Something is wrong with the build of this commit
				
			
		
		
	
	
				
					
				
			
		
			Some checks reported errors
		
		
	
	BlockStorage/repertory/pipeline/head Something is wrong with the build of this commit
				
			# Changelog ## v2.0.3-rc ### Issues * \#28 \[bug\] Address slow directory responses in S3 mounts for deeply nested directories * \#29 \[bug\] S3 error responses are not being logged * \#30 \[bug\] Sia provider error responses are not logged * \#31 \[bug\] S3 provider should limit max key size to 1024 ### Changes from v2.0.2-rc * Always use direct for read-only providers * Fixed externally removed files not being processed during cleanup * Fixed http headers not being added for requests * Fixed incorrect `stat` values for remote mounts * Fixed invalid directory nullptr error on remote mounts * Fixed memory leak in event system * Refactored application shutdown * Refactored event system * Updated build system to Alpine 3.21.0 * Updated build system to MinGW-w64 12.0.0 * Updated copyright to 2018-2025 Reviewed-on: #32
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| /* | ||||
|   Copyright <2018-2024> <scott.e.graves@protonmail.com> | ||||
|   Copyright <2018-2025> <scott.e.graves@protonmail.com> | ||||
|  | ||||
|   Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|   of this software and associated documentation files (the "Software"), to deal | ||||
| @@ -32,17 +32,19 @@ namespace repertory::utils::encryption { | ||||
| class encrypting_reader final { | ||||
| public: | ||||
|   encrypting_reader(std::string_view file_name, std::string_view source_path, | ||||
|                     stop_type &stop_requested, std::string_view token, | ||||
|                     stop_type_callback stop_requested_cb, | ||||
|                     std::string_view token, | ||||
|                     std::optional<std::string> relative_parent_path, | ||||
|                     std::size_t error_return = 0U); | ||||
|  | ||||
|   encrypting_reader(std::string_view encrypted_file_path, | ||||
|                     std::string_view source_path, stop_type &stop_requested, | ||||
|                     std::string_view source_path, | ||||
|                     stop_type_callback stop_requested_cb, | ||||
|                     std::string_view token, std::size_t error_return = 0U); | ||||
|  | ||||
|   encrypting_reader( | ||||
|       std::string_view encrypted_file_path, std::string_view source_path, | ||||
|       stop_type &stop_requested, std::string_view token, | ||||
|       stop_type_callback stop_requested_cb, std::string_view token, | ||||
|       std::vector<std::array<unsigned char, | ||||
|                              crypto_aead_xchacha20poly1305_IETF_NPUBBYTES>> | ||||
|           iv_list, | ||||
| @@ -62,7 +64,7 @@ public: | ||||
|  | ||||
| private: | ||||
|   utils::encryption::hash_256_t key_; | ||||
|   stop_type &stop_requested_; | ||||
|   stop_type_callback stop_requested_cb_; | ||||
|   size_t error_return_; | ||||
|   std::unique_ptr<utils::file::i_file> source_file_; | ||||
|  | ||||
| @@ -87,16 +89,16 @@ private: | ||||
|   auto reader_function(char *buffer, size_t size, size_t nitems) -> size_t; | ||||
|  | ||||
| public: | ||||
|   [[nodiscard]] static auto | ||||
|   calculate_decrypted_size(std::uint64_t total_size) -> std::uint64_t; | ||||
|   [[nodiscard]] static auto calculate_decrypted_size(std::uint64_t total_size) | ||||
|       -> std::uint64_t; | ||||
|  | ||||
|   [[nodiscard]] static auto | ||||
|   calculate_encrypted_size(std::string_view source_path) -> std::uint64_t; | ||||
|  | ||||
|   [[nodiscard]] auto create_iostream() const -> std::shared_ptr<iostream>; | ||||
|  | ||||
|   [[nodiscard]] static constexpr auto | ||||
|   get_encrypted_chunk_size() -> std::size_t { | ||||
|   [[nodiscard]] static constexpr auto get_encrypted_chunk_size() | ||||
|       -> std::size_t { | ||||
|     return encrypted_chunk_size_; | ||||
|   } | ||||
|  | ||||
| @@ -116,14 +118,17 @@ public: | ||||
|     return error_return_; | ||||
|   } | ||||
|  | ||||
|   [[nodiscard]] auto get_iv_list() | ||||
|       -> std::vector<std::array<unsigned char, | ||||
|                                 crypto_aead_xchacha20poly1305_IETF_NPUBBYTES>> { | ||||
|   [[nodiscard]] static constexpr auto get_header_size() -> std::size_t { | ||||
|     return header_size_; | ||||
|   } | ||||
|  | ||||
|   [[nodiscard]] auto get_iv_list() -> std::vector< | ||||
|       std::array<unsigned char, crypto_aead_xchacha20poly1305_IETF_NPUBBYTES>> { | ||||
|     return iv_list_; | ||||
|   } | ||||
|  | ||||
|   [[nodiscard]] auto get_stop_requested() const -> bool { | ||||
|     return stop_requested_; | ||||
|     return stop_requested_cb_(); | ||||
|   } | ||||
|  | ||||
|   [[nodiscard]] auto get_total_size() const -> std::uint64_t { | ||||
| @@ -131,8 +136,8 @@ public: | ||||
|   } | ||||
|  | ||||
|   [[nodiscard]] static auto reader_function(char *buffer, size_t size, | ||||
|                                             size_t nitems, | ||||
|                                             void *instream) -> size_t { | ||||
|                                             size_t nitems, void *instream) | ||||
|       -> size_t { | ||||
|     return reinterpret_cast<encrypting_reader *>(instream)->reader_function( | ||||
|         buffer, size, nitems); | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user