Removing "Could not open temporary WARC manifest file." issue in Win builds
authorBykov Aleksey <gnfalex@rambler.ru>
Fri, 17 May 2013 20:36:36 +0000 (23:36 +0300)
committerGiuseppe Scrivano <gscrivano@gnu.org>
Tue, 4 Jun 2013 18:36:42 +0000 (20:36 +0200)
ChangeLog
bootstrap.conf
src/ChangeLog
src/warc.c

index 104ca3cbfed18738ed39ccd73da930df16b0ad2b..62c36d426e0fd5121353131ecf379589de4063a0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-05-17 Bykov Aleksey <gnfalex@rambler.ru>
+
+       * bootstrap: Add `mkostemp'
+
 2012-10-07  Giuseppe Scrivano  <gscrivano@gnu.org>
 
        * configure.ac: Check for patchconf.
index efb1bc21c7f45f9d16867b3259beb79721edfcab..516bbb619d475a9a50c418936184dd0c7f22b486 100644 (file)
@@ -52,6 +52,7 @@ maintainer-makefile
 mbtowc
 mkdir
 mkstemp
+mkostemp
 crypto/md5
 crypto/sha1
 pipe
index fd037a1d572ac80bd9106444740cc3858bde151b..32f3b82479bbe3399eb90f7de4ccddc63ffca48f 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-14 Bykov Aleksey <gnfalex@rambler.ru>
+
+       * warc.c (warc_tempfile): For fix "Could not open temporary WARC manifest
+       file." issue in Win system force to use `mkostemp(filename, O_TEMPORARY)'
+       instead  of `mkstemp(filename)'. Thank to Angel Gonzalez for help.
+
 2013-05-14  Tim Ruehsen  <tim.ruehsen@gmx.de>
 
        * cookies.c (cookie_jar_load): Replaced read_whole_file() by getline().
index 916b53df2342081131b514935640275ac0cdf2a2..9202e8d2c331d104442f41ee3ee174e49000948e 100644 (file)
@@ -51,10 +51,16 @@ as that of the covered work.  */
 
 #ifndef WINDOWS
 #include <libgen.h>
+#else
+#include <fcntl.h>
 #endif
 
 #include "warc.h"
 
+#ifndef O_TEMPORARY
+#define O_TEMPORARY 0
+#endif
+
 extern char *version_string;
 
 /* Set by main in main.c */
@@ -1147,12 +1153,15 @@ warc_tempfile (void)
   if (path_search (filename, 100, opt.warc_tempdir, "wget", true) == -1)
     return NULL;
 
-  int fd = mkstemp (filename);
+  int fd = mkostemp (filename, O_TEMPORARY);
   if (fd < 0)
     return NULL;
 
+#if !O_TEMPORARY
   if (unlink (filename) < 0)
     return NULL;
+#endif
+
 
   return fdopen (fd, "wb+");
 }