]> granicus.if.org Git - icinga2/commitdiff
Fix MkDirP() on Windows
authorMichael Friedrich <michael.friedrich@netways.de>
Thu, 3 Mar 2016 14:54:35 +0000 (15:54 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Thu, 3 Mar 2016 14:54:35 +0000 (15:54 +0100)
fixes #10231

lib/base/utility.cpp

index da21d74805f52f4197ad39ad77b1ec2c8dbe7dd0..c86051bb460f53be5dc36278e5e7563c5677fcea 100644 (file)
@@ -702,11 +702,13 @@ bool Utility::GlobRecursive(const String& path, const String& pattern, const boo
 
 void Utility::MkDir(const String& path, int mode)
 {
+
 #ifndef _WIN32
        if (mkdir(path.CStr(), mode) < 0 && errno != EEXIST) {
 #else /*_ WIN32 */
        if (mkdir(path.CStr()) < 0 && errno != EEXIST) {
 #endif /* _WIN32 */
+
                BOOST_THROW_EXCEPTION(posix_error()
                    << boost::errinfo_api_function("mkdir")
                    << boost::errinfo_errno(errno)
@@ -719,7 +721,11 @@ void Utility::MkDirP(const String& path, int mode)
        size_t pos = 0;
 
        while (pos != String::NPos) {
+#ifndef _WIN32
                pos = path.Find("/", pos + 1);
+#else /*_ WIN32 */
+               pos = path.Find("\\", pos + 1);
+#endif /* _WIN32 */
                MkDir(path.SubStr(0, pos), mode);
        }
 }