X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_utils.c;h=3c4930f93d285d0a500f0d6b8524259ac575a864;hp=6853c66dacef29fd655d9c60d90d80597c1313ba;hb=4544c97f2699490bdfef560e6dbcd71de09db7b2;hpb=b47c2e44707f965100a561660a45f89b5759cbc1 diff --git a/src/rrd_utils.c b/src/rrd_utils.c index 6853c66..3c4930f 100644 --- a/src/rrd_utils.c +++ b/src/rrd_utils.c @@ -25,19 +25,24 @@ #include #include -#include #include #include #include #include +#ifndef _MSC_VER +#include #include - +#endif #ifdef WIN32 # define random() rand() # define srandom(x) srand(x) # define getpid() 0 #endif /* WIN32 */ +#ifndef S_ISDIR +#define S_ISDIR(x) (((x) & S_IFMT) == S_IFDIR) +#endif + /* make sure that the random number generator seeded EXACTLY ONCE */ long rrd_random(void) { @@ -171,7 +176,11 @@ int rrd_mkdir_p(const char *pathname, mode_t mode) if (NULL == (pathname_copy = strdup(pathname))) return -1; +#ifndef _MSC_VER base_dir = dirname(pathname_copy); +#else + _splitpath(pathname_copy, NULL, base_dir, NULL, NULL); +#endif if (0 != rrd_mkdir_p(base_dir, mode)) { int orig_errno = errno; @@ -183,8 +192,13 @@ int rrd_mkdir_p(const char *pathname, mode_t mode) free(pathname_copy); /* keep errno as set by mkdir() */ +#ifdef _MSC_VER + if (0 != mkdir(pathname)) + return -1; +#else if (0 != mkdir(pathname, mode)) return -1; +#endif return 0; } /* rrd_mkdir_p */