diff options
author | Ryan Lortie <desrt@desrt.ca> | 2010-07-17 12:42:44 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2010-07-17 12:42:44 -0400 |
commit | d03bd6b443a6b98430eed983cb1996bebb302d9e (patch) | |
tree | ad040268acec58c8bd123931bffa17158d259157 /service | |
parent | bece1f7488e07c2d3f2c9b978ef0065a3ab1413f (diff) | |
download | dconf-d03bd6b443a6b98430eed983cb1996bebb302d9e.tar.gz |
on NFS create a temp dir for the shm file
dconf should be vaguely NFS-safe now
Diffstat (limited to 'service')
-rw-r--r-- | service/dconf-writer.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/service/dconf-writer.c b/service/dconf-writer.c index 7f7ff7f..03a2975 100644 --- a/service/dconf-writer.c +++ b/service/dconf-writer.c @@ -3,6 +3,7 @@ #include "dconf-shmdir.h" #include "dconf-rebuilder.h" +#include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> @@ -119,7 +120,6 @@ void dconf_writer_init (void) { const gchar *config_dir = g_get_user_config_dir (); - const gchar *cache_dir = g_get_user_cache_dir (); dconf_writer_db_dir = g_build_filename (config_dir, "dconf", NULL); @@ -163,10 +163,12 @@ dconf_writer_init (void) if (dconf_writer_shm_dir == NULL) { - dconf_writer_shm_dir = g_build_filename (cache_dir, "dconf", NULL); + const gchar *tmpdir = g_get_tmp_dir (); + gchar *shmdir; - if (g_mkdir_with_parents (dconf_writer_shm_dir, 0700)) - g_error ("Can not create directory '%s': %s", - dconf_writer_shm_dir, g_strerror (errno)); + shmdir = g_build_filename (tmpdir, "dconf.XXXXXX", NULL); + + if ((dconf_writer_shm_dir = mkdtemp (shmdir)) == NULL) + g_error ("Can not create reasonable shm directory"); } } |