diff --git a/libi2pd/FS.cpp b/libi2pd/FS.cpp index d38bcc2f..4d48fc47 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)) +#if 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;