cleanup
Some checks reported errors
BlockStorage/repertory/pipeline/head Something is wrong with the build of this commit

This commit is contained in:
2025-08-05 15:45:45 -05:00
parent 08449b2468
commit de3eec47a0
3 changed files with 65 additions and 38 deletions

View File

@@ -614,10 +614,9 @@ public:
return mount_location_;
}
[[nodiscard]] auto mount([[maybe_unused]] std::vector<std::string> orig_args,
std::vector<std::string> args,
[[maybe_unused]] provider_type prov,
[[maybe_unused]] std::string_view unique_id) -> int;
[[nodiscard]] auto mount(std::vector<std::string> orig_args,
std::vector<std::string> args, provider_type prov,
std::string_view unique_id) -> int;
};
} // namespace repertory

View File

@@ -397,12 +397,13 @@ auto fuse_base::mkdir_(const char *path, mode_t mode) -> int {
});
}
auto fuse_base::mount(std::vector<std::string> orig_args,
std::vector<std::string> args, provider_type prov,
std::string_view unique_id) -> int {
auto res = parse_args(args);
if (res != 0) {
return res;
auto fuse_base::mount([[maybe_unused]] std::vector<std::string> orig_args,
std::vector<std::string> args,
[[maybe_unused]] provider_type prov,
[[maybe_unused]] std::string_view unique_id) -> int {
auto ret{parse_args(args)};
if (ret != 0) {
return ret;
}
std::vector<const char *> fuse_argv(args.size());
@@ -476,20 +477,13 @@ auto fuse_base::mount(std::vector<std::string> orig_args,
notify_fuse_args_parsed(args);
const auto main_func = [&]() -> int {
auto ret = fuse_main(
static_cast<int>(fuse_argv.size()),
reinterpret_cast<char **>(const_cast<char **>(fuse_argv.data())),
&fuse_ops_, this);
notify_fuse_main_exit(ret);
return ret;
};
ret = fuse_main(
static_cast<int>(fuse_argv.size()),
reinterpret_cast<char **>(const_cast<char **>(fuse_argv.data())),
&fuse_ops_, this);
notify_fuse_main_exit(ret);
if (foreground_) {
return main_func();
}
return utils::create_daemon(main_func);
return ret;
}
auto fuse_base::open_(const char *path, struct fuse_file_info *f_info) -> int {

View File

@@ -225,6 +225,28 @@ void windows_create_to_unix(const UINT32 &create_options,
}
auto create_daemon(std::function<int()> main_func) -> int {
const auto recreate_handles = []() -> int {
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
auto file_desc = open("/dev/null", O_RDWR);
if (file_desc < 0) {
return 1;
}
dup2(file_desc, STDIN_FILENO);
dup2(file_desc, STDOUT_FILENO);
dup2(file_desc, STDERR_FILENO);
if (file_desc > STDERR_FILENO) {
close(file_desc);
}
return 0;
};
#if defined(__APPLE__)
auto pid = fork();
if (pid < 0) {
return 1;
@@ -247,31 +269,43 @@ auto create_daemon(std::function<int()> main_func) -> int {
_exit(0);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
auto file_desc = open("/dev/null", O_RDWR);
if (file_desc < 0) {
if (recreate_handles() != 0) {
return 1;
}
dup2(file_desc, STDIN_FILENO);
dup2(file_desc, STDOUT_FILENO);
dup2(file_desc, STDERR_FILENO);
if (file_desc > STDERR_FILENO) {
close(file_desc);
}
signal(SIGCHLD, SIG_DFL);
signal(SIGHUP, SIG_DFL);
signal(SIGPIPE, SIG_IGN);
umask(0);
chdir("/");
return main_func();
#else // !defined(__APPLE__)
auto pid = fork();
if (pid < 0) {
return 1;
}
if (pid == 0) {
signal(SIGCHLD, SIG_DFL);
if (setsid() < 0) {
return 1;
}
if (recreate_handles() != 0) {
return 1;
}
umask(0);
chdir("/");
return main_func();
}
signal(SIGCHLD, SIG_IGN);
#endif // defined(__APPLE__)
return 0;
}
#if defined(__APPLE__)