summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorJohn (J5) Palmieri <johnp@redhat.com>2006-08-10 20:09:43 +0000
committerJohn (J5) Palmieri <johnp@redhat.com>2006-08-10 20:09:43 +0000
commit2974c82428b5d9d3e1f504ba4052aec47fc2b415 (patch)
tree66973e6b07b52fcd01add8cdfb4c6e1bdac5fae0 /dbus
parent5628ef82de9e853381ab61bab8c3cd3b1b622290 (diff)
* dbus/dbus-sysdeps.c:
* dbus/dbus-address.c: * bus/activation.c: * test/shell-test.c: don't hardcode tmp directory (patch from Dave Meikle <dmk at davemeikle dot co dot uk>)
Diffstat (limited to 'dbus')
-rw-r--r--dbus/dbus-address.c2
-rw-r--r--dbus/dbus-sysdeps.c29
-rw-r--r--dbus/dbus-sysdeps.h1
3 files changed, 31 insertions, 1 deletions
diff --git a/dbus/dbus-address.c b/dbus/dbus-address.c
index 7dc33e3e..ae9acfee 100644
--- a/dbus/dbus-address.c
+++ b/dbus/dbus-address.c
@@ -715,7 +715,7 @@ _dbus_address_test (void)
&entries, &len, &error))
_dbus_assert_not_reached ("could not parse address");
_dbus_assert (len == 2);
- _dbus_assert (strcmp (dbus_address_entry_get_value (entries[0], "path"), "/tmp/foo") == 0);
+ _dbus_assert (strcmp (dbus_address_entry_get_value (entries[0], "path"), strcat(_dbus_get_tmpdir(),"/foo") == 0));
_dbus_assert (strcmp (dbus_address_entry_get_value (entries[1], "name"), "test") == 0);
_dbus_assert (strcmp (dbus_address_entry_get_value (entries[1], "sliff"), "sloff") == 0);
diff --git a/dbus/dbus-sysdeps.c b/dbus/dbus-sysdeps.c
index 9a2c1fde..43bfcd8c 100644
--- a/dbus/dbus-sysdeps.c
+++ b/dbus/dbus-sysdeps.c
@@ -2998,6 +2998,35 @@ int _dbus_printf_string_upper_bound (const char *format,
+/**
+ * Gets the temporary files directory by inspecting the environment variables
+ * TMPDIR, TMP, and TEMP in that order. If none of those are set "/tmp" is returned
+ *
+ * @returns char* - location of temp directory
+ */
+char*
+_dbus_get_tmpdir()
+{
+ char* tmpdir;
+
+ tmpdir = getenv("TMPDIR");
+ if (tmpdir) {
+ return tmpdir;
+ }
+
+ tmpdir = getenv("TMP");
+ if (tmpdir) {
+ return tmpdir;
+ }
+
+ tmpdir = getenv("TEMP");
+ if (tmpdir) {
+ return tmpdir;
+ }
+
+ return "/tmp";
+}
+
/** @} end of sysdeps */
/* tests in dbus-sysdeps-util.c */
diff --git a/dbus/dbus-sysdeps.h b/dbus/dbus-sysdeps.h
index ed5b48e9..8e7c5019 100644
--- a/dbus/dbus-sysdeps.h
+++ b/dbus/dbus-sysdeps.h
@@ -323,6 +323,7 @@ void _dbus_set_signal_handler (int sig,
dbus_bool_t _dbus_file_exists (const char *file);
dbus_bool_t _dbus_user_at_console (const char *username,
DBusError *error);
+char* _dbus_get_tmpdir();
/* Define DBUS_VA_COPY() to do the right thing for copying va_list variables.
* config.h may have already defined DBUS_VA_COPY as va_copy or __va_copy.