From 51446f032477cacc4d6b3be25ee6abab746b50ab Mon Sep 17 00:00:00 2001 From: Vlad Solomenchuk Date: Fri, 8 Mar 2024 10:23:51 -0800 Subject: [PATCH] fix FS::HashedStorage::Init exceptions in ios simulator. --- libi2pd/FS.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/libi2pd/FS.cpp b/libi2pd/FS.cpp index d38bcc2f..a02c0818 100644 --- a/libi2pd/FS.cpp +++ b/libi2pd/FS.cpp @@ -9,6 +9,11 @@ #include #include +#if defined(MAC_OSX) +#include +#include +#endif + #ifdef _WIN32 #include #include @@ -251,8 +256,22 @@ namespace fs { auto p = root + i2p::fs::dirSep + prefix1 + chars[i]; if (boost::filesystem::exists(p)) continue; - if (boost::filesystem::create_directory(p)) +#ifdef TARGET_OS_SIMULATOR + // ios simulator fs says it is case sensitive, but it is not + boost::system::error_code ec; + if (boost::filesystem::create_directory(p, ec)) + continue; + switch (ec.value()) { + case boost::system::errc::file_exists: + case boost::system::errc::success: + continue; + default: + throw boost::system::system_error( ec, __func__ ); + } +#else + if (boost::filesystem::create_directory(p)) continue; /* ^ throws exception on failure */ +#endif return false; } return true;