### daemon or test programs (all symbols in here should
### be underscore-prefixed)
set (DBUS_SHARED_SOURCES
+ ${DBUS_DIR}/dbus-config.c
${DBUS_DIR}/dbus-dataslot.c
${DBUS_DIR}/dbus-file.c
${DBUS_DIR}/dbus-hash.c
### to be unless they move to DBUS_SHARED_SOURCES later)
set (DBUS_UTIL_SOURCES
${DBUS_DIR}/dbus-auth-util.c
+ ${DBUS_DIR}/dbus-config.h
${DBUS_DIR}/dbus-credentials-util.c
${DBUS_DIR}/dbus-mainloop.c
${DBUS_DIR}/dbus-marshal-byteswap-util.c
### daemon or test programs (all symbols in here should
### be underscore-prefixed)
DBUS_SHARED_SOURCES= \
+ dbus-config.c \
+ dbus-config.h \
dbus-dataslot.c \
dbus-dataslot.h \
dbus-file.c \
#include <config.h>
#include "dbus-bus.h"
+#include "dbus-config.h"
#include "dbus-protocol.h"
#include "dbus-internals.h"
#include "dbus-message.h"
if (bus_connection_addresses[DBUS_BUS_STARTER] != NULL)
{
- s = _dbus_getenv ("DBUS_STARTER_BUS_TYPE");
+ s = _dbus_config_starter_bus_type();
if (s != NULL)
{
--- /dev/null
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* dbus-config.c client config api implementation
+ *
+ * Copyright (C) 2010 Ralf Habacker <ralf.habacker@freenet.de>
+ *
+ * Licensed under the Academic Free License version 2.1
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#include "dbus-config.h"
+#include "dbus-sysdeps.h"
+
+char *
+_dbus_config_block_on_abort ()
+{
+ return _dbus_getenv ("DBUS_BLOCK_ON_ABORT");
+}
+
+char *
+_dbus_config_common_program_files()
+{
+ return _dbus_getenv ("CommonProgramFiles");
+}
+
+char *
+_dbus_config_datadir ()
+{
+ return _dbus_getenv ("DBUS_DATADIR");
+}
+
+char *
+_dbus_config_debug_output ()
+{
+ return _dbus_getenv ("DBUS_DEBUG_OUTPUT");
+}
+
+char *
+_dbus_config_disable_mem_pools()
+{
+ return _dbus_getenv ("DBUS_DISABLE_MEM_POOLS");
+}
+
+char *
+_dbus_config_homedrive ()
+{
+ return _dbus_getenv("HOMEDRIVE");
+}
+
+char *
+_dbus_config_homepath ()
+{
+ return _dbus_getenv("HOMEPATH");
+}
+
+char *
+_dbus_config_fatal_warnings ()
+{
+ return _dbus_getenv ("DBUS_FATAL_WARNINGS");
+}
+
+char *
+_dbus_config_malloc_fail_nth ()
+{
+ return _dbus_getenv ("DBUS_MALLOC_FAIL_NTH");
+}
+
+char *
+_dbus_config_malloc_fail_greater_than ()
+{
+ return _dbus_getenv ("DBUS_MALLOC_FAIL_GREATER_THAN");
+}
+
+char *
+_dbus_config_malloc_guards ()
+{
+ return _dbus_getenv ("DBUS_MALLOC_GUARDS");
+}
+
+char *
+_dbus_config_malloc_backtraces ()
+{
+ return _dbus_getenv ("DBUS_MALLOC_BACKTRACES");
+}
+
+char *
+_dbus_config_starter_bus_type ()
+{
+ return _dbus_getenv ("DBUS_STARTER_BUS_TYPE");
+}
+
+char *
+_dbus_config_test_malloc_failures ()
+{
+ return _dbus_getenv ("DBUS_TEST_MALLOC_FAILURES");
+}
+
+char *
+_dbus_config_test_homedir ()
+{
+ return _dbus_getenv ("DBUS_TEST_HOMEDIR");
+}
+
+char *
+_dbus_config_test_data ()
+{
+ return _dbus_getenv ("DBUS_TEST_DATA");
+}
+
+char *
+_dbus_config_xdg_data_home ()
+{
+ return _dbus_getenv ("XDG_DATA_HOME");
+}
+
+char *
+_dbus_config_xdg_data_dirs ()
+{
+ return _dbus_getenv ("XDG_DATA_DIRS");
+}
+
+char *
+_dbus_config_verbose ()
+{
+ return _dbus_getenv ("DBUS_VERBOSE");
+}
--- /dev/null
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+/* dbus-config.h client config api header
+ *
+ * Copyright (C) 2010 Ralf Habacker <ralf.habacker@freenet.de>
+ *
+ * Licensed under the Academic Free License version 2.1
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef DBUS_CONFIG_H
+#define DBUS_CONFIG_H
+
+// session bus address
+// system bus address
+// activation bus address
+
+char *
+_dbus_config_block_on_abort ();
+char *
+_dbus_config_common_program_files ();
+char *
+_dbus_config_datadir ();
+char *
+_dbus_config_debug_output ();
+char *
+_dbus_config_disable_mem_pools ();
+char *
+_dbus_config_fatal_warnings ();
+char *
+_dbus_config_homedrive ();
+char *
+_dbus_config_homepath ();
+char *
+_dbus_config_malloc_backtraces ();
+char *
+_dbus_config_malloc_fail_nth ();
+char *
+_dbus_config_malloc_fail_greater_than ();
+char *
+_dbus_config_malloc_guards ();
+char *
+_dbus_config_starter_bus_type ();
+char *
+_dbus_config_test_malloc_failures ();
+char *
+_dbus_config_test_homedir ();
+char *
+_dbus_config_test_data ();
+char *
+_dbus_config_verbose ();
+char *
+_dbus_config_xdg_data_home ();
+char *
+_dbus_config_xdg_data_dirs ();
+
+#endif
*/
#include <config.h>
+#include "dbus-config.h"
#include "dbus-internals.h"
#include "dbus-protocol.h"
#include "dbus-marshal-basic.h"
if (!warn_initted)
{
const char *s;
- s = _dbus_getenv ("DBUS_FATAL_WARNINGS");
+ s = _dbus_config_fatal_warnings ();
if (s && *s)
{
if (*s == '0')
{
if (!verbose_initted)
{
- const char *p = _dbus_getenv ("DBUS_VERBOSE");
+ const char *p = _dbus_config_verbose ();
verbose = p != NULL && *p == '1';
verbose_initted = TRUE;
#ifdef DBUS_USE_OUTPUT_DEBUG_STRING
_dbus_verbose ("\n=================\n%s: about %d mallocs total\n=================\n",
description, approx_mallocs);
- setting = _dbus_getenv ("DBUS_TEST_MALLOC_FAILURES");
+ setting = _dbus_config_test_malloc_failures ();
if (setting != NULL)
{
DBusString str;
*/
#include <config.h>
+#include "dbus-config.h"
#include "dbus-memory.h"
#include "dbus-internals.h"
#include "dbus-sysdeps.h"
{
debug_initialized = TRUE;
- if (_dbus_getenv ("DBUS_MALLOC_FAIL_NTH") != NULL)
+ if (_dbus_config_malloc_fail_nth () != NULL)
{
- fail_nth = atoi (_dbus_getenv ("DBUS_MALLOC_FAIL_NTH"));
+ fail_nth = atoi (_dbus_config_malloc_fail_nth ());
fail_alloc_counter = fail_nth;
_dbus_verbose ("Will fail malloc every %d times\n", fail_nth);
}
- if (_dbus_getenv ("DBUS_MALLOC_FAIL_GREATER_THAN") != NULL)
+ if (_dbus_config_malloc_fail_greater_than () != NULL)
{
- fail_size = atoi (_dbus_getenv ("DBUS_MALLOC_FAIL_GREATER_THAN"));
+ fail_size = atoi (_dbus_config_malloc_fail_greater_than ());
_dbus_verbose ("Will fail mallocs over %ld bytes\n",
(long) fail_size);
}
- if (_dbus_getenv ("DBUS_MALLOC_GUARDS") != NULL)
+ if (_dbus_config_malloc_guards () != NULL)
{
guards = TRUE;
_dbus_verbose ("Will use malloc guards\n");
}
- if (_dbus_getenv ("DBUS_DISABLE_MEM_POOLS") != NULL)
+ if (_dbus_config_disable_mem_pools () != NULL)
{
disable_mem_pools = TRUE;
_dbus_verbose ("Will disable memory pools\n");
}
- if (_dbus_getenv ("DBUS_MALLOC_BACKTRACES") != NULL)
+ if (_dbus_config_malloc_backtraces () != NULL)
{
backtrace_on_fail_alloc = TRUE;
_dbus_verbose ("Will backtrace on failing a malloc\n");
#include <config.h>
+#include "dbus-config.h"
#include "dbus-internals.h"
#include "dbus-sysdeps.h"
#include "dbus-sysdeps-unix.h"
if (!_dbus_string_init (&servicedir_path))
return FALSE;
- xdg_data_home = _dbus_getenv ("XDG_DATA_HOME");
- xdg_data_dirs = _dbus_getenv ("XDG_DATA_DIRS");
+ xdg_data_home = _dbus_config_xdg_data_home ();
+ xdg_data_dirs = _dbus_config_xdg_data_dirs ();
if (xdg_data_dirs != NULL)
{
if (!_dbus_string_init (&servicedir_path))
return FALSE;
- xdg_data_dirs = _dbus_getenv ("XDG_DATA_DIRS");
+ xdg_data_dirs = _dbus_config_xdg_data_dirs ();
if (xdg_data_dirs != NULL)
{
{
const char *override;
- override = _dbus_getenv ("DBUS_TEST_HOMEDIR");
+ override = _dbus_config_test_homedir ();
if (override != NULL && *override != '\0')
{
_dbus_string_set_length (&homedir, 0);
dup2 (dev_null_fd, 0);
dup2 (dev_null_fd, 1);
- s = _dbus_getenv ("DBUS_DEBUG_OUTPUT");
+ s = _dbus_config_debug_output ();
if (s == NULL || *s == '\0')
dup2 (dev_null_fd, 2);
else
#endif
#endif
+#include "dbus-config.h"
#include "dbus-internals.h"
#include "dbus-sysdeps.h"
#include "dbus-threads.h"
#ifdef DBUS_WINCE
{
/* On Windows CE, we adjust datadir dynamically to installation location. */
- const char *data_dir = _dbus_getenv ("DBUS_DATADIR");
+ const char *data_dir = _dbus_config_datadir ();
if (data_dir != NULL)
{
if (!_dbus_string_init (&homedir))
return FALSE;
- homedrive = _dbus_getenv("HOMEDRIVE");
+ homedrive = _dbus_config_homedrive ();
if (homedrive != NULL && *homedrive != '\0')
{
_dbus_string_append(&homedir,homedrive);
}
- homepath = _dbus_getenv("HOMEPATH");
+ homepath = _dbus_config_homepath ();
if (homepath != NULL && *homepath != '\0')
{
_dbus_string_append(&homedir,homepath);
{
const char *override;
- override = _dbus_getenv ("DBUS_TEST_HOMEDIR");
+ override = _dbus_config_test_homedir ();
if (override != NULL && *override != '\0')
{
_dbus_string_set_length (&homedir, 0);
*/
#include <config.h>
+#include "dbus-config.h"
#include "dbus-internals.h"
#include "dbus-sysdeps.h"
#include "dbus-threads.h"
_dbus_print_backtrace ();
- s = _dbus_getenv ("DBUS_BLOCK_ON_ABORT");
+ s = _dbus_config_block_on_abort ();
if (s && *s)
{
/* don't use _dbus_warn here since it can _dbus_abort() */
*/
#include <config.h>
+#include "dbus-config.h"
#include "dbus-test.h"
#include "dbus-sysdeps.h"
#include "dbus-internals.h"
die ("debug threads init");
if (test_data_dir == NULL)
- test_data_dir = _dbus_getenv ("DBUS_TEST_DATA");
+ test_data_dir = _dbus_config_test_data ();
if (test_data_dir != NULL)
printf ("Test data in %s\n", test_data_dir);