From 49cdfa7266ee240abcd226646408822bafd21c8c Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 10 Jun 2012 22:41:48 +0000 Subject: [PATCH] -LRN: fix mkdtemp on W32 --- src/util/disk.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/util/disk.c b/src/util/disk.c index 3705e1be2..ecd361ba1 100644 --- a/src/util/disk.c +++ b/src/util/disk.c @@ -440,6 +440,36 @@ mktemp_name (const char *t) return fn; } +#if WINDOWS +static char * +mkdtemp (char *fn) +{ + char *random_fn; + char *tfn; + while (1) + { + tfn = GNUNET_strdup (fn); + random_fn = _mktemp (tfn); + if (NULL == random_fn) + { + GNUNET_free (tfn); + return NULL; + } + /* FIXME: assume fn to be UTF-8-encoded and do the right thing */ + if (0 == CreateDirectoryA (tfn, NULL)) + { + DWORD error = GetLastError (); + GNUNET_free (tfn); + if (ERROR_ALREADY_EXISTS == error) + continue; + return NULL; + } + break; + } + strcpy (fn, tfn); + return fn; +} +#endif /** * Create an (empty) temporary directory on disk. If the given name is not -- 2.25.1