Commit Graph

478 Commits

Author SHA1 Message Date
c869b3996f Improve error handling (#2671)
Found via C++17 [[nodiscard]].
2025-06-07 14:58:06 +09:00
109c968baa Changed some INFO level log messages to DBG level 2025-06-07 00:16:44 +09:00
3421025074 Use region instead of endpoint for configuration (#2669)
This is more consistent with the AWS docs.  Generally endpoint refers
to an HTTP URL not just the region.  Fixes #2668.
2025-05-18 10:49:35 +09:00
d4f3fb01fc Make some methods const (#2614)
Found via cppcheck --inconclusive.
2024-12-01 10:31:03 +09:00
65e4aef2a1 Prefer C++-style casts over C-style casts (#2599)
The former are easier to identify.  Found via clang-tidy.

Co-authored-by: Takeshi Nakatani <ggtakec@gmail.com>
2024-12-01 10:29:08 +09:00
61abf80197 Organized multi-threading related options 2024-11-29 05:13:06 +09:00
956e8c5750 Added new class for curl share handle
Added new class for curl share handle.
And, paired the curl handle(S3fsCurl) with the worker thread.
Changed that each thread has its own SSL session cache to prevent data
races.
So OpenSSL suppression for ThreadSanitizer is no longer necessary, so
reverted it.
2024-11-28 03:40:40 +09:00
bfc3ea767a Removed last use of S3fsMultiCurl and changed those thread handling 2024-11-26 10:47:03 +09:00
499577c2a9 Refactored for standardizing content and copy handling for Multipart Upload 2024-11-25 05:48:38 +09:00
7410b95db2 Refactored parallel get object request 2024-11-23 02:22:27 +09:00
86b5c9d88e Refactored multipart put head request 2024-11-16 09:35:23 +09:00
a1e47bc287 Changed multiple Head requests from S3fsMultiCurl to ThreadPoolMan 2024-11-14 07:41:03 +09:00
efc23316e9 Refactored single type requests to use through ThreadPoolMan 2024-11-12 09:08:14 +09:00
a680d3e138 Removed CurlHandlerPool and simplified it
Removed CurlHandlerPool and simplified it.
And against data race in OpenSSL, temporarily changed to not use Sessin cache.
2024-11-12 07:33:04 +09:00
45b32046cd Consolidate lower and upper logic (#2594) 2024-11-06 00:07:12 +09:00
a101b88114 Compare case-insensitively instead of copying (#2593)
Also remove some code duplication.
2024-11-06 00:05:05 +09:00
82f694e473 Avoid unneeded std::string copies (#2589) 2024-11-04 23:59:54 +09:00
9a155c81a7 Enable clang-analyzer (#2588)
Also fix a few smaller issues.
2024-11-04 23:58:43 +09:00
b87a8400e3 Use pass-by-value for peeloff (#2578)
This avoids copies when used with std::move.
2024-10-29 18:21:07 +09:00
07881195f2 Add missing mutex header (#2576)
Found via clang-tidy.
2024-10-29 00:11:28 +09:00
7cb46db945 Add missing string header (#2574)
Found via clang-tidy.
2024-10-25 16:13:57 +09:00
fe82477a6b Add missing utility header for std::move (#2572)
Found via clang-tidy.
2024-10-25 14:55:01 +09:00
fe0a62118d Remove some unused parameters (#2565) 2024-10-22 20:34:22 +09:00
8c5ac5c2d9 Remove more raw pointers (#2556)
Make destructor public so std::unique_ptr can call it.  Also restrict
singleton creation to satisfy cppcheck.
2024-10-20 16:06:05 +09:00
141d74f187 Use auto for iterator variable types (#2554)
This touches a few other long type names.  Applied via clang-tidy
-fix.
2024-10-18 21:57:52 +09:00
e613ae55bb Replace curl_warnings_lock with std::atomic (#2550)
This is simpler and lighter-weight.
2024-10-18 00:36:36 +09:00
c5031a5a97 Simplify some method parameters (#2553)
Add const where possible and avoid unnecessary reference parameters.
2024-10-18 00:05:42 +09:00
c00b5fd4bb Propoagate error state from insertV4Headers (#2547)
s3fs_sha256_hex_fd returns an empty string when calculating the hash
fails.
2024-10-14 10:28:19 +09:00
743c86e506 Fix issues discovered by Coverity (#2535) 2024-10-08 08:07:13 +09:00
e80de15cc6 Make FILE ownership clearer via unique_ptr (#2534) 2024-10-06 18:03:02 +09:00
df5364d758 Enable readability-implicit-bool-conversion (#2530)
This fixes one real error, one misreported EPERM, and some false
positives.  References #2529.
2024-09-28 15:28:50 +09:00
e8f1e3473c Fixed miss-return code in S3fsCurl::RequestPerform 2024-09-28 13:25:37 +09:00
5691071ac6 Log entire line when curldbg lacks a newline (#2526)
Previously -o curldbg=body would read uninitialized memory.
2024-09-28 11:35:49 +09:00
7d2d4e8866 s3 signv4 support uri endpoints (#2510) 2024-08-17 13:46:13 +09:00
77ffe7d634 Wrap CURL* in a std::unique_ptr (#2495)
This is safer and clarifies the ownership of pointers.

Co-authored-by: Takeshi Nakatani <ggtakec@gmail.com>
2024-07-15 15:15:03 +09:00
50d5a73f84 Simplify curl progress tracking (#2486)
Use a struct with named fields instead of a pair for clarity and use a
single map to store the structs for efficiency.
2024-07-06 16:35:25 +09:00
622dc0a815 Convert pthread_mutex to std::mutex (#2476)
This simplifies resource management and improve Windows compatibility.
2024-06-24 00:48:01 +09:00
fa807a56fb Fix typos (#2473) 2024-06-23 15:33:46 +09:00
254d717a4a Address clang-tidy 19 warnings (#2474) 2024-06-23 12:21:51 +09:00
2841601ad5 Remove uses of AutoLock::ALREADY_LOCKED (#2466)
Instead annotate the methods with REQUIRES so that the caller knows if
they should lock.  For public interfaces, introduce HasLock wrappers.
This simplifies control flow, allows migration to std::mutex, and
eventually will enable use of static lock checking.
2024-06-23 11:24:51 +09:00
ebae5a302f Prefer std::string::clear where possible (#2467)
This is somewhat more clear and is declared noexcept.
2024-06-10 23:36:49 +09:00
dd6815b90f retry request on HTTP 429 error 2024-04-14 12:09:26 +09:00
95026804e9 Support SSL client cert and added ssl_client_cert option 2024-04-14 10:21:48 +09:00
a5cdd05c25 Added ipresolve option 2024-03-13 22:29:17 +09:00
c97f7a2a13 Address clang-tidy 18 warnings (#2428) 2024-03-07 01:04:22 +09:00
b97fd470a5 Abort for SSE-KMS encryption type and not SSL/TLS specified 2024-02-23 13:11:56 +09:00
e89adf6633 Fixed a bug that mounting with ksmid specified to fail 2024-02-18 21:18:50 +09:00
68bbfee8ea Address clang-tidy modernize-deprecated-headers (#2370) 2023-11-19 10:00:16 +09:00
4845831f93 Convert some const to constexpr (#2342)
This guarantees that the function or value will resolve at compile-time.
2023-11-14 22:15:17 +09:00
0cd73e406d Address clang-tidy 17 warnings (#2362) 2023-11-12 11:48:08 +09:00