nixpkgs/pkgs/applications/networking/p2p/gnunet/tmpdir.patch

94 lines
2.7 KiB
Diff
Raw Normal View History

Make sure the core libraries used by the tests honor $TMPDIR.
diff --git a/src/applications/dstore_sqlite/dstore.c b/src/applications/dstore_sqlite/dstore.c
index cdcae81..4bb45a3 100644
--- a/src/applications/dstore_sqlite/dstore.c
+++ b/src/applications/dstore_sqlite/dstore.c
@@ -129,6 +129,7 @@ db_reset ()
int fd;
sqlite3 *dbh;
char *tmpl;
+ const char *tmpdir;
if (fn != NULL)
{
@@ -136,7 +137,15 @@ db_reset ()
GNUNET_free (fn);
}
payload = 0;
- tmpl = "/tmp/dstoreXXXXXX";
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-dstoreXXXXXX"
+ tmpl = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tmpl, tmpdir);
+ strcat (tmpl, TEMPLATE);
+#undef TEMPLATE
#ifdef MINGW
fn = (char *) GNUNET_malloc (MAX_PATH + 1);
diff --git a/src/applications/fs/collection/collection.c b/src/applications/fs/collection/collection.c
index 5671cb3..da2b605 100644
--- a/src/applications/fs/collection/collection.c
+++ b/src/applications/fs/collection/collection.c
@@ -487,6 +487,7 @@ GNUNET_CO_collection_publish_now ()
char *dirData;
char this_revision_string[128];
char next_revision_string[128];
+ const char *tmpdir;
GNUNET_mutex_lock (lock);
if ((collectionData == NULL) ||
@@ -495,7 +496,17 @@ GNUNET_CO_collection_publish_now ()
GNUNET_mutex_unlock (lock);
return;
}
- tmpName = GNUNET_strdup ("/tmp/gnunet-collectionXXXXXX");
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-collectionXXXXXX"
+ tmpName = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tmpName, tmpdir);
+ strcat (tmpName, TEMPLATE);
+#undef TEMPLATE
+
+ tmpName = GNUNET_strdup (tmpName);
fd = mkstemp (tmpName);
if (fd == -1)
{
diff --git a/src/applications/fs/fsui/upload.c b/src/applications/fs/fsui/upload.c
index dc683a5..46a04af 100644
--- a/src/applications/fs/fsui/upload.c
+++ b/src/applications/fs/fsui/upload.c
@@ -159,6 +159,7 @@ createDirectoryHelper (struct GNUNET_GE_Context *ectx,
int handle;
struct GNUNET_GE_Memory *mem;
struct GNUNET_GE_Context *ee;
+ const char *tmpdir;
fis = NULL;
size = 0;
@@ -208,7 +209,17 @@ createDirectoryHelper (struct GNUNET_GE_Context *ectx,
pos = pos->next;
}
GNUNET_GE_memory_reset (mem);
- tempName = GNUNET_strdup ("/tmp/gnunet-upload-dir.XXXXXX");
+
+ tmpdir = getenv ("TMPDIR");
+ tmpdir = tmpdir ? tmpdir : "/tmp";
+
+#define TEMPLATE "/gnunet-upload-dirXXXXXX"
+ tempName = alloca (strlen (tmpdir) + sizeof (TEMPLATE) + 1);
+ strcpy (tempName, tmpdir);
+ strcat (tempName, TEMPLATE);
+#undef TEMPLATE
+
+ tempName = GNUNET_strdup (tempName);
handle = mkstemp (tempName);
if (handle == -1)
{