Allow TMPDIR to override directory used for temporary files (RHBZ#512905).
[libguestfs.git] / src / guestfs.c
index f445ada..386dee6 100644 (file)
@@ -875,7 +875,8 @@ static const char *supermin_hostfiles_name =
 int
 guestfs_launch (guestfs_h *g)
 {
-  static const char *dir_template = "/tmp/libguestfsXXXXXX";
+  const char *tmpdir;
+  char dir_template[PATH_MAX];
   int r, i, pmore;
   size_t len;
   int wfd[2], rfd[2];
@@ -885,6 +886,15 @@ guestfs_launch (guestfs_h *g)
   char unixsock[256];
   struct sockaddr_un addr;
 
+#ifdef P_tmpdir
+  tmpdir = P_tmpdir;
+#else
+  tmpdir = "/tmp";
+#endif
+
+  tmpdir = getenv ("TMPDIR") ? : tmpdir;
+  snprintf (dir_template, sizeof dir_template, "%s/libguestfsXXXXXX", tmpdir);
+
   /* Configured? */
   if (!g->cmdline) {
     error (g, _("you must call guestfs_add_drive before guestfs_launch"));