g10: Use es_fopen instead of open.
authorNeal H. Walfield <neal@g10code.com>
Tue, 22 Nov 2016 16:12:38 +0000 (17:12 +0100)
committerNeal H. Walfield <neal@g10code.com>
Tue, 22 Nov 2016 16:12:38 +0000 (17:12 +0100)
* g10/tofu.c: Don't include <utime.h>, <fcntl.h> or <unistd.h>.
(busy_handler): Replace use of open with es_fopen.

--
Signed-off-by: Neal H. Walfield <neal@g10code.com>
Thanks for Werner for pointing this out: es_fopen is more portable
than open.

g10/tofu.c

index d7730a3..8575947 100644 (file)
@@ -29,9 +29,6 @@
 #include <stdarg.h>
 #include <sqlite3.h>
 #include <time.h>
 #include <stdarg.h>
 #include <sqlite3.h>
 #include <time.h>
-#include <utime.h>
-#include <fcntl.h>
-#include <unistd.h>
 
 #include "gpg.h"
 #include "types.h"
 
 #include "gpg.h"
 #include "types.h"
@@ -909,21 +906,23 @@ busy_handler (void *cookie, int call_count)
 
   (void) call_count;
 
 
   (void) call_count;
 
-  /* Update the lock file time stamp so that the current owner knows
-     that we want the lock.  */
+  /* Update the want-lock-file time stamp (specifically, the ctime) so
+   * that the current owner knows that we (well, someone) want the
+   * lock.  */
   if (dbs)
     {
       /* Note: we don't fail if we can't create the lock file: this
   if (dbs)
     {
       /* Note: we don't fail if we can't create the lock file: this
-         process will have to wait a bit longer, but otherwise nothing
-         horrible should happen.  */
+       * process will have to wait a bit longer, but otherwise nothing
+       * horrible should happen.  */
 
 
-      int fd = open (dbs->want_lock_file, O_CREAT|O_WRONLY|O_TRUNC,
-                     S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR);
-      if (fd == -1)
+      estream_t fp;
+
+      fp = es_fopen (dbs->want_lock_file, "w");
+      if (! fp)
         log_debug ("TOFU: Error opening '%s': %s\n",
                    dbs->want_lock_file, strerror (errno));
       else
         log_debug ("TOFU: Error opening '%s': %s\n",
                    dbs->want_lock_file, strerror (errno));
       else
-        close (fd);
+        es_fclose (fp);
     }
 
   /* Call again.  */
     }
 
   /* Call again.  */