Commit Graph

18 Commits

Author SHA1 Message Date
Luke Dashjr
ec34bd875d Merge rpccookieperms_log_improvements-28+k 2025-03-05 03:27:08 +00:00
Luke Dashjr
25f0359c10 Merge 31453 via macos_exfat_warning-28+knots 2025-03-05 03:27:08 +00:00
Luke Dashjr
3c618efb42 fs_helpers: Guard _POSIX_C_SOURCE check within #ifdef 2025-02-24 20:01:00 +00:00
Luke Dashjr
6da7613ee5 RPC: Use normal stringification for perms_to_str 2025-02-21 17:04:00 +00:00
willcl-ark
d4d9bdfa49 util: detect and warn when using exFAT on macOS
exFAT is known to cause corruption on macOS. See #28552.

Therefore we should warn when using this fs format for either the blocks
or data directories.

Github-Pull: #31453
Rebased-From: df1ba101419729aafa382d970ee605e2a6273e26
2025-02-21 15:55:04 +00:00
Evan Klitzke
2bc60a4acb Try to use posix_fadvise with CBufferedFile
This primarily affects blocks when bitcoin is launched with -reindex, as
that causes the block files to be loaded as CBufferedFile objects one at
a time as the reindex progresses.

Co-Authored-By: Luke Dashjr <luke-jr+git@utopios.org>

Github-Pull: #14485
Rebased-From: 289e88b3133107f8a54184d8316559c7cf8ddb12
2024-11-10 19:13:17 +00:00
willcl-ark
7df03f1a92
util: add perm string helper functions
PermsToSymbolicString will convert from fs::perms to string type
'rwxrwxrwx'.

InterpretPermString will convert from a user-supplied "perm string" such
as 'owner', 'group' or 'all, into appropriate fs::perms.
2024-06-27 14:55:10 +01:00
MarcoFalke
dddd40ba82
scripted-diff: Add IWYU pragma keep to bitcoin-config.h includes
-BEGIN VERIFY SCRIPT-
 perl -0777 -pi -e 's/#if defined\(HAVE_CONFIG_H\)\n#include <config\/bitcoin-config.h>.*\n#endif.*\n/#include <config\/bitcoin-config.h> \/\/ IWYU pragma: keep\n/g' $( git grep -l '#include <config/bitcoin-config.h>' )
-END VERIFY SCRIPT-
2024-05-01 08:33:04 +02:00
MarcoFalke
fa5844f06d
Remove unused g++-10 workaround
This reverts d4999d40b9
2024-03-14 15:53:43 +01:00
MarcoFalke
fad0335517
scripted-diff: Replace error() with LogError()
This fixes the log output when -logsourcelocations is used.

Also, instead of 'ERROR:', the log will now say '[error]', like other
errors logged with LogError.

-BEGIN VERIFY SCRIPT-
 sed -i --regexp-extended 's!  error\("([^"]+)"!  LogError("\1\\n"!g' $( git grep -l '  error(' ./src/ )
-END VERIFY SCRIPT-
2024-03-11 13:49:37 +01:00
fanquake
f48a789385
Merge bitcoin/bitcoin#28075: util: Remove DirIsWritable, GetUniquePath
fa3da629a1 Remove DirIsWritable, GetUniquePath (MarcoFalke)
fad3a9793b Return LockResult::ErrorWrite in LockDirectory (MarcoFalke)
fa0afe7408 refactor: Return enum in LockDirectory (MarcoFalke)

Pull request description:

  `GetUniquePath` is only used in tests and in `DirIsWritable`. The check by `DirIsWritable` is redundant with the check done in `LockDirectory`.

  Fix the redundancy by removing everything, except `LockDirectory`.

ACKs for top commit:
  TheCharlatan:
    Re-ACK fa3da629a1
  hebasto:
    ACK fa3da629a1, I have reviewed the code and it looks OK.

Tree-SHA512: e95f18cd586de7582e9c08ac7ddb860bfcfcbc8963804f45c5784c5e4c0598dc59ae7e45dd4daf30a5020dbf8433f5db2ad06e46a8676371982003790043c6c9
2023-12-13 10:06:16 +00:00
MarcoFalke
fa3da629a1
Remove DirIsWritable, GetUniquePath 2023-10-26 10:32:56 +02:00
MarcoFalke
fad3a9793b
Return LockResult::ErrorWrite in LockDirectory
This allows the caller to remove a call to DirIsWritable(), which did a
similar check. Users should not notice any different behavior.
2023-10-26 10:32:47 +02:00
MarcoFalke
fa0afe7408
refactor: Return enum in LockDirectory
This makes it easier to add more Error cases in the future. Also, add
missing util namespace.
2023-10-26 10:25:22 +02:00
MarcoFalke
fada2f9110 refactor: Replace <filesystem> with <util/fs.h>
All code in this repo uses <util/fs.h>, except for a few lines. This is
confusing and potentially dangerous, if the safe <util/fs.h> wrappers
are not used.
2023-09-14 18:58:37 +02:00
John Moffett
c95a4432d7 Show descriptive error messages when FileCommit fails
Only raw errno codes are logged if FileCommit fails. These are
implementation-specific, so it makes it harder to debug based on
user reports. Instead, use SysErrorString to display both the
raw int value and the descriptive message.
2023-06-30 09:48:21 -04:00
TheCharlatan
00e9b97f37
refactor: Move fs.* to util/fs.*
The fs.* files are already part of the libbitcoin_util library. With the
introduction of the fs_helpers.* it makes sense to move fs.* into the
util/ directory as well.
2023-03-23 12:55:18 +01:00
Ben Woosley
18fb36367a
refactor: Extract util/fs_helpers from util/system
This is an extraction of filesystem related functions from util/system
into their own utility file.

The background of this commit is an ongoing effort to decouple the
libbitcoinkernel library from the ArgsManager defined in system.h.
Moving these functions out of system.h allows including them from a
separate source file without including the ArgsManager definitions from
system.h.
2023-03-23 12:52:00 +01:00