summaryrefslogtreecommitdiff
path: root/bus
diff options
context:
space:
mode:
Diffstat (limited to 'bus')
-rw-r--r--bus/Makefile.am111
-rw-r--r--bus/Makefile.in1493
-rw-r--r--bus/activation.c559
-rw-r--r--bus/activation.h7
-rw-r--r--bus/bus.c247
-rw-r--r--bus/bus.h14
-rw-r--r--bus/config-loader-expat.c14
-rw-r--r--bus/config-loader-libxml.c1
-rw-r--r--bus/config-parser-common.c7
-rw-r--r--bus/config-parser-common.h5
-rw-r--r--bus/config-parser-trivial.c20
-rw-r--r--bus/config-parser-trivial.h5
-rw-r--r--bus/config-parser.c63
-rw-r--r--bus/config-parser.h2
-rw-r--r--bus/connection.c27
-rw-r--r--bus/dbus-daemon.1760
-rw-r--r--bus/dbus-daemon.1.in760
-rw-r--r--bus/dbus.service.in10
-rw-r--r--bus/dbus.socket.in5
-rw-r--r--bus/desktop-file.c4
-rw-r--r--bus/desktop-file.h5
-rw-r--r--bus/dir-watch-default.c5
-rw-r--r--bus/dir-watch-inotify.c1
-rw-r--r--bus/dir-watch-kqueue.c2
-rw-r--r--bus/dispatch.c889
-rw-r--r--bus/driver.c223
-rw-r--r--bus/expirelist.c3
-rw-r--r--bus/main.c100
-rw-r--r--bus/messagebus-config.in178
-rwxr-xr-xbus/messagebus.in2
-rw-r--r--bus/org.freedesktop.dbus-session.plist.in33
-rw-r--r--bus/policy.c15
-rw-r--r--bus/rc.messagebus.in2
-rw-r--r--bus/selinux.c5
-rw-r--r--bus/services.c2
-rw-r--r--bus/session.conf.in5
-rw-r--r--bus/signals.c462
-rw-r--r--bus/signals.h2
-rw-r--r--bus/test-launch-helper.c1
-rw-r--r--bus/test-main.c11
-rw-r--r--bus/test-system.c1
-rw-r--r--bus/test.c68
-rw-r--r--bus/test.h6
43 files changed, 3446 insertions, 2689 deletions
diff --git a/bus/Makefile.am b/bus/Makefile.am
index ad49e6dd..efa8ab5b 100644
--- a/bus/Makefile.am
+++ b/bus/Makefile.am
@@ -3,18 +3,24 @@ configdir=$(sysconfdir)/dbus-1
INCLUDES=-I$(top_srcdir) $(DBUS_BUS_CFLAGS) @PIE_CFLAGS@ \
-DDBUS_SYSTEM_CONFIG_FILE=\""$(configdir)/system.conf"\" \
- -DDAEMON_NAME=\"dbus-daemon\" -DDBUS_COMPILATION
+ -DDBUS_COMPILATION
EFENCE=
CONFIG_IN_FILES= \
session.conf.in \
- system.conf.in
+ system.conf.in \
+ org.freedesktop.dbus-session.plist.in
config_DATA= \
session.conf \
system.conf
+if DBUS_ENABLE_LAUNCHD
+agentdir=$(LAUNCHD_AGENT_DIR)
+agent_DATA=org.freedesktop.dbus-session.plist
+endif
+
if DBUS_USE_LIBXML
XML_SOURCES=config-loader-libxml.c
endif
@@ -74,11 +80,12 @@ BUS_SOURCES= \
dbus_daemon_SOURCES= \
$(BUS_SOURCES) \
- main.c
+ main.c
+dbus_daemon_CPPFLAGS = -DDBUS_STATIC_BUILD
dbus_daemon_LDADD= \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(EFENCE) \
- $(top_builddir)/dbus/libdbus-convenience.la \
$(DBUS_BUS_LIBS)
dbus_daemon_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @PIE_LDFLAGS@
@@ -102,8 +109,9 @@ dbus_daemon_launch_helper_SOURCES= \
activation-helper-bin.c \
$(LAUNCH_HELPER_SOURCES)
+dbus_daemon_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD
dbus_daemon_launch_helper_LDADD= \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
dbus_daemon_launch_helper_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
@@ -115,11 +123,11 @@ dbus_daemon_launch_helper_test_SOURCES= \
$(LAUNCH_HELPER_SOURCES)
dbus_daemon_launch_helper_test_LDADD= \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
dbus_daemon_launch_helper_test_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
-dbus_daemon_launch_helper_test_CPPFLAGS= \
+dbus_daemon_launch_helper_test_CPPFLAGS= -DDBUS_STATIC_BUILD \
-DACTIVATION_LAUNCHER_TEST
## we build yet another binary so we can do the OOM tests
@@ -129,27 +137,39 @@ bus_test_launch_helper_SOURCES= \
$(LAUNCH_HELPER_SOURCES)
bus_test_launch_helper_LDADD= \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
bus_test_launch_helper_LDFLAGS=@R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
-bus_test_launch_helper_CPPFLAGS= \
+bus_test_launch_helper_CPPFLAGS= -DDBUS_STATIC_BUILD \
-DACTIVATION_LAUNCHER_TEST \
-DACTIVATION_LAUNCHER_DO_OOM
+extra_tests=
+extra_noinst_programs=
+extra_inst_programs=
+if DBUS_UNIX
+extra_tests+=bus-test-launch-helper
+extra_noinst_programs+=dbus-daemon-launch-helper dbus-daemon-launch-helper-test dbus-daemon
+endif
+if DBUS_WIN
+extra_inst_programs+=dbus-daemon
+endif
+
## note that TESTS has special meaning (stuff to use in make check)
-## so if adding tests not to be run in make check, don't add them to
+## so if adding tests not to be run in make check, don't add them to
## TESTS
if DBUS_BUILD_TESTS
TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus DBUS_FATAL_WARNINGS=1 DBUS_BLOCK_ON_ABORT=1
-TESTS=bus-test bus-test-system bus-test-launch-helper
+TESTS=bus-test bus-test-system $(extra_tests)
else
TESTS=
endif
-## we use noinst_PROGRAMS not check_PROGRAMS so that we build
+## we use noinst_PROGRAMS not check_PROGRAMS so that we build
## even when not doing "make check"
-noinst_PROGRAMS=$(TESTS) dbus-daemon dbus-daemon-launch-helper-test dbus-daemon-launch-helper
+noinst_PROGRAMS=$(TESTS) $(extra_noinst_programs)
+bin_PROGRAMS=$(extra_inst_programs)
bus_test_system_SOURCES= \
$(XML_SOURCES) \
@@ -161,14 +181,16 @@ bus_test_system_SOURCES= \
utils.h \
test-system.c
-bus_test_system_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+bus_test_system_CPPFLAGS = -DDBUS_STATIC_BUILD
+bus_test_system_LDADD=$(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS)
bus_test_system_LDFLAGS=@R_DYNAMIC_LDFLAG@
bus_test_SOURCES= \
$(BUS_SOURCES) \
test-main.c
-bus_test_LDADD=$(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+bus_test_CPPFLAGS = -DDBUS_STATIC_BUILD
+bus_test_LDADD=$(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS)
bus_test_LDFLAGS=@R_DYNAMIC_LDFLAG@
## mop up the gcov files
@@ -176,32 +198,47 @@ clean-local:
/bin/rm *.bb *.bbg *.da *.gcov || true
uninstall-hook:
- rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon
- rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper
+ rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT)
+ rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT)
install-data-hook:
- if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
- fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
$(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services
+if DBUS_UNIX
+ if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
+ $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+ chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+ fi
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1
- $(INSTALL_PROGRAM) dbus-daemon-launch-helper $(DESTDIR)$(libexecdir)
+ if test -f dbus-daemon-launch-helper$(EXEEXT) ; then \
+ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon-launch-helper$(EXEEXT) $(DESTDIR)$(libexecdir); \
if test `id -u` -eq 0; then \
- chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
- chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
+ chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
+ chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
else \
echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \
echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \
+ fi \
fi
+endif
+if HAVE_SYSTEMD
+# Install dbus.socket as default implementation of a D-Bus stack
+ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants
+ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket
+# Unconditionally enable D-Bus on systemd installations
+ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants
+ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket
+ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants
+ $(LN_S) ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service
+endif
#### Init scripts fun
SCRIPT_IN_FILES=messagebus.in \
+ messagebus-config.in \
rc.messagebus.in
## Red Hat start
@@ -226,9 +263,25 @@ initd_SCRIPTS= \
endif
## Slackware end
-MAN_IN_FILES=dbus-daemon.1.in
-man_MANS = dbus-daemon.1
+## Cygwin start
+if DBUS_INIT_SCRIPTS_CYGWIN
+
+bin_SCRIPTS= \
+ messagebus-config
+
+endif
+## Cygwin end
+
+if HAVE_SYSTEMD
+SCRIPT_IN_FILES += \
+ dbus.service.in \
+ dbus.socket.in
+
+systemdsystemunit_DATA = \
+ dbus.service \
+ dbus.socket
+endif
-#### Extra dist
+#### Extra dist
-EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES)
+EXTRA_DIST=$(CONFIG_IN_FILES) $(SCRIPT_IN_FILES)
diff --git a/bus/Makefile.in b/bus/Makefile.in
index 13a599af..7ea6fe64 100644
--- a/bus/Makefile.in
+++ b/bus/Makefile.in
@@ -36,31 +36,53 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+@DBUS_UNIX_TRUE@am__append_1 = bus-test-launch-helper
+@DBUS_UNIX_TRUE@am__append_2 = dbus-daemon-launch-helper dbus-daemon-launch-helper-test dbus-daemon
+@DBUS_WIN_TRUE@am__append_3 = dbus-daemon
@DBUS_BUILD_TESTS_TRUE@TESTS = bus-test$(EXEEXT) \
@DBUS_BUILD_TESTS_TRUE@ bus-test-system$(EXEEXT) \
-@DBUS_BUILD_TESTS_TRUE@ bus-test-launch-helper$(EXEEXT)
-noinst_PROGRAMS = $(am__EXEEXT_1) dbus-daemon$(EXEEXT) \
- dbus-daemon-launch-helper-test$(EXEEXT) \
- dbus-daemon-launch-helper$(EXEEXT)
+@DBUS_BUILD_TESTS_TRUE@ $(am__EXEEXT_4)
+noinst_PROGRAMS = $(am__EXEEXT_5) $(am__EXEEXT_7)
+bin_PROGRAMS = $(am__EXEEXT_2)
+@HAVE_SYSTEMD_TRUE@am__append_4 = \
+@HAVE_SYSTEMD_TRUE@ dbus.service.in \
+@HAVE_SYSTEMD_TRUE@ dbus.socket.in
+
subdir = bus
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(srcdir)/dbus-daemon.1.in $(srcdir)/messagebus.in \
+ $(srcdir)/dbus.service.in $(srcdir)/dbus.socket.in \
+ $(srcdir)/messagebus-config.in $(srcdir)/messagebus.in \
+ $(srcdir)/org.freedesktop.dbus-session.plist.in \
$(srcdir)/rc.messagebus.in $(srcdir)/session.conf.in \
$(srcdir)/system.conf.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
- $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES = system.conf session.conf messagebus rc.messagebus \
- dbus-daemon.1
+CONFIG_CLEAN_FILES = system.conf session.conf messagebus \
+ messagebus-config org.freedesktop.dbus-session.plist \
+ rc.messagebus dbus.service dbus.socket
CONFIG_CLEAN_VPATH_FILES =
-@DBUS_BUILD_TESTS_TRUE@am__EXEEXT_1 = bus-test$(EXEEXT) \
+@DBUS_WIN_TRUE@am__EXEEXT_1 = dbus-daemon$(EXEEXT)
+am__EXEEXT_2 = $(am__EXEEXT_1)
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(initddir)" "$(DESTDIR)$(agentdir)" \
+ "$(DESTDIR)$(configdir)" "$(DESTDIR)$(systemdsystemunitdir)"
+@DBUS_UNIX_TRUE@am__EXEEXT_3 = bus-test-launch-helper$(EXEEXT)
+am__EXEEXT_4 = $(am__EXEEXT_3)
+@DBUS_BUILD_TESTS_TRUE@am__EXEEXT_5 = bus-test$(EXEEXT) \
@DBUS_BUILD_TESTS_TRUE@ bus-test-system$(EXEEXT) \
-@DBUS_BUILD_TESTS_TRUE@ bus-test-launch-helper$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
+@DBUS_BUILD_TESTS_TRUE@ $(am__EXEEXT_4)
+@DBUS_UNIX_TRUE@am__EXEEXT_6 = dbus-daemon-launch-helper$(EXEEXT) \
+@DBUS_UNIX_TRUE@ dbus-daemon-launch-helper-test$(EXEEXT) \
+@DBUS_UNIX_TRUE@ dbus-daemon$(EXEEXT)
+am__EXEEXT_7 = $(am__EXEEXT_6)
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am__bus_test_SOURCES_DIST = activation.c activation.h \
activation-exit-codes.h bus.c bus.h config-parser.c \
config-parser.h config-parser-common.c config-parser-common.h \
@@ -71,24 +93,27 @@ am__bus_test_SOURCES_DIST = activation.c activation.h \
selinux.c services.c services.h signals.c signals.h test.c \
test.h utils.c utils.h config-loader-expat.c \
config-loader-libxml.c test-main.c
-@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-default.$(OBJEXT)
-@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-dnotify.$(OBJEXT)
-@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = dir-watch-inotify.$(OBJEXT)
-@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_1 = \
-@DBUS_BUS_ENABLE_KQUEUE_TRUE@ dir-watch-kqueue.$(OBJEXT)
-@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_2 = config-loader-libxml.$(OBJEXT)
-@DBUS_USE_EXPAT_TRUE@am__objects_2 = config-loader-expat.$(OBJEXT)
-am__objects_3 = activation.$(OBJEXT) bus.$(OBJEXT) \
- config-parser.$(OBJEXT) config-parser-common.$(OBJEXT) \
- connection.$(OBJEXT) desktop-file.$(OBJEXT) $(am__objects_1) \
- dispatch.$(OBJEXT) driver.$(OBJEXT) expirelist.$(OBJEXT) \
- policy.$(OBJEXT) selinux.$(OBJEXT) services.$(OBJEXT) \
- signals.$(OBJEXT) test.$(OBJEXT) utils.$(OBJEXT) \
+@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-default.$(OBJEXT)
+@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-dnotify.$(OBJEXT)
+@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_1 = bus_test-dir-watch-inotify.$(OBJEXT)
+@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_1 = bus_test-dir-watch-kqueue.$(OBJEXT)
+@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_2 = bus_test-config-loader-libxml.$(OBJEXT)
+@DBUS_USE_EXPAT_TRUE@am__objects_2 = \
+@DBUS_USE_EXPAT_TRUE@ bus_test-config-loader-expat.$(OBJEXT)
+am__objects_3 = bus_test-activation.$(OBJEXT) bus_test-bus.$(OBJEXT) \
+ bus_test-config-parser.$(OBJEXT) \
+ bus_test-config-parser-common.$(OBJEXT) \
+ bus_test-connection.$(OBJEXT) bus_test-desktop-file.$(OBJEXT) \
+ $(am__objects_1) bus_test-dispatch.$(OBJEXT) \
+ bus_test-driver.$(OBJEXT) bus_test-expirelist.$(OBJEXT) \
+ bus_test-policy.$(OBJEXT) bus_test-selinux.$(OBJEXT) \
+ bus_test-services.$(OBJEXT) bus_test-signals.$(OBJEXT) \
+ bus_test-test.$(OBJEXT) bus_test-utils.$(OBJEXT) \
$(am__objects_2)
-am_bus_test_OBJECTS = $(am__objects_3) test-main.$(OBJEXT)
+am_bus_test_OBJECTS = $(am__objects_3) bus_test-test-main.$(OBJEXT)
bus_test_OBJECTS = $(am_bus_test_OBJECTS)
am__DEPENDENCIES_1 =
-bus_test_DEPENDENCIES = $(top_builddir)/dbus/libdbus-convenience.la \
+bus_test_DEPENDENCIES = $(top_builddir)/dbus/libdbus-internal.la \
$(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_$(V))
am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
@@ -115,8 +140,7 @@ am_bus_test_launch_helper_OBJECTS = \
$(am__objects_5)
bus_test_launch_helper_OBJECTS = $(am_bus_test_launch_helper_OBJECTS)
bus_test_launch_helper_DEPENDENCIES = \
- $(top_builddir)/dbus/libdbus-convenience.la \
- $(am__DEPENDENCIES_1)
+ $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1)
bus_test_launch_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(bus_test_launch_helper_LDFLAGS) \
@@ -125,13 +149,16 @@ am__bus_test_system_SOURCES_DIST = config-loader-expat.c \
config-loader-libxml.c config-parser-common.c \
config-parser-common.h config-parser-trivial.c \
config-parser-trivial.h utils.c utils.h test-system.c
-am_bus_test_system_OBJECTS = $(am__objects_2) \
- config-parser-common.$(OBJEXT) config-parser-trivial.$(OBJEXT) \
- utils.$(OBJEXT) test-system.$(OBJEXT)
+@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_6 = bus_test_system-config-loader-libxml.$(OBJEXT)
+@DBUS_USE_EXPAT_TRUE@am__objects_6 = bus_test_system-config-loader-expat.$(OBJEXT)
+am_bus_test_system_OBJECTS = $(am__objects_6) \
+ bus_test_system-config-parser-common.$(OBJEXT) \
+ bus_test_system-config-parser-trivial.$(OBJEXT) \
+ bus_test_system-utils.$(OBJEXT) \
+ bus_test_system-test-system.$(OBJEXT)
bus_test_system_OBJECTS = $(am_bus_test_system_OBJECTS)
bus_test_system_DEPENDENCIES = \
- $(top_builddir)/dbus/libdbus-convenience.la \
- $(am__DEPENDENCIES_1)
+ $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1)
bus_test_system_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(bus_test_system_LDFLAGS) $(LDFLAGS) \
@@ -146,11 +173,26 @@ am__dbus_daemon_SOURCES_DIST = activation.c activation.h \
selinux.c services.c services.h signals.c signals.h test.c \
test.h utils.c utils.h config-loader-expat.c \
config-loader-libxml.c main.c
-am_dbus_daemon_OBJECTS = $(am__objects_3) main.$(OBJEXT)
+@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-default.$(OBJEXT)
+@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_TRUE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-dnotify.$(OBJEXT)
+@DBUS_BUS_ENABLE_INOTIFY_TRUE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@am__objects_7 = dbus_daemon-dir-watch-inotify.$(OBJEXT)
+@DBUS_BUS_ENABLE_KQUEUE_TRUE@am__objects_7 = dbus_daemon-dir-watch-kqueue.$(OBJEXT)
+@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_8 = dbus_daemon-config-loader-libxml.$(OBJEXT)
+@DBUS_USE_EXPAT_TRUE@am__objects_8 = dbus_daemon-config-loader-expat.$(OBJEXT)
+am__objects_9 = dbus_daemon-activation.$(OBJEXT) \
+ dbus_daemon-bus.$(OBJEXT) dbus_daemon-config-parser.$(OBJEXT) \
+ dbus_daemon-config-parser-common.$(OBJEXT) \
+ dbus_daemon-connection.$(OBJEXT) \
+ dbus_daemon-desktop-file.$(OBJEXT) $(am__objects_7) \
+ dbus_daemon-dispatch.$(OBJEXT) dbus_daemon-driver.$(OBJEXT) \
+ dbus_daemon-expirelist.$(OBJEXT) dbus_daemon-policy.$(OBJEXT) \
+ dbus_daemon-selinux.$(OBJEXT) dbus_daemon-services.$(OBJEXT) \
+ dbus_daemon-signals.$(OBJEXT) dbus_daemon-test.$(OBJEXT) \
+ dbus_daemon-utils.$(OBJEXT) $(am__objects_8)
+am_dbus_daemon_OBJECTS = $(am__objects_9) dbus_daemon-main.$(OBJEXT)
dbus_daemon_OBJECTS = $(am_dbus_daemon_OBJECTS)
-dbus_daemon_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- $(top_builddir)/dbus/libdbus-convenience.la \
- $(am__DEPENDENCIES_1)
+dbus_daemon_DEPENDENCIES = $(top_builddir)/dbus/libdbus-internal.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
dbus_daemon_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(dbus_daemon_LDFLAGS) $(LDFLAGS) -o $@
@@ -160,16 +202,21 @@ am__dbus_daemon_launch_helper_SOURCES_DIST = activation-helper-bin.c \
config-parser-trivial.c config-parser-trivial.h desktop-file.c \
desktop-file.h utils.c utils.h activation-exit-codes.h \
activation-helper.h activation-helper.c
-am__objects_6 = $(am__objects_2) config-parser-common.$(OBJEXT) \
- config-parser-trivial.$(OBJEXT) desktop-file.$(OBJEXT) \
- utils.$(OBJEXT) activation-helper.$(OBJEXT)
+@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_10 = dbus_daemon_launch_helper-config-loader-libxml.$(OBJEXT)
+@DBUS_USE_EXPAT_TRUE@am__objects_10 = dbus_daemon_launch_helper-config-loader-expat.$(OBJEXT)
+am__objects_11 = $(am__objects_10) \
+ dbus_daemon_launch_helper-config-parser-common.$(OBJEXT) \
+ dbus_daemon_launch_helper-config-parser-trivial.$(OBJEXT) \
+ dbus_daemon_launch_helper-desktop-file.$(OBJEXT) \
+ dbus_daemon_launch_helper-utils.$(OBJEXT) \
+ dbus_daemon_launch_helper-activation-helper.$(OBJEXT)
am_dbus_daemon_launch_helper_OBJECTS = \
- activation-helper-bin.$(OBJEXT) $(am__objects_6)
+ dbus_daemon_launch_helper-activation-helper-bin.$(OBJEXT) \
+ $(am__objects_11)
dbus_daemon_launch_helper_OBJECTS = \
$(am_dbus_daemon_launch_helper_OBJECTS)
dbus_daemon_launch_helper_DEPENDENCIES = \
- $(top_builddir)/dbus/libdbus-convenience.la \
- $(am__DEPENDENCIES_1)
+ $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1)
dbus_daemon_launch_helper_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) $(dbus_daemon_launch_helper_LDFLAGS) \
@@ -181,21 +228,20 @@ am__dbus_daemon_launch_helper_test_SOURCES_DIST = \
config-parser-trivial.h desktop-file.c desktop-file.h utils.c \
utils.h activation-exit-codes.h activation-helper.h \
activation-helper.c
-@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_7 = dbus_daemon_launch_helper_test-config-loader-libxml.$(OBJEXT)
-@DBUS_USE_EXPAT_TRUE@am__objects_7 = dbus_daemon_launch_helper_test-config-loader-expat.$(OBJEXT)
-am__objects_8 = $(am__objects_7) \
+@DBUS_USE_EXPAT_FALSE@@DBUS_USE_LIBXML_TRUE@am__objects_12 = dbus_daemon_launch_helper_test-config-loader-libxml.$(OBJEXT)
+@DBUS_USE_EXPAT_TRUE@am__objects_12 = dbus_daemon_launch_helper_test-config-loader-expat.$(OBJEXT)
+am__objects_13 = $(am__objects_12) \
dbus_daemon_launch_helper_test-config-parser-common.$(OBJEXT) \
dbus_daemon_launch_helper_test-config-parser-trivial.$(OBJEXT) \
dbus_daemon_launch_helper_test-desktop-file.$(OBJEXT) \
dbus_daemon_launch_helper_test-utils.$(OBJEXT) \
dbus_daemon_launch_helper_test-activation-helper.$(OBJEXT)
am_dbus_daemon_launch_helper_test_OBJECTS = dbus_daemon_launch_helper_test-activation-helper-bin.$(OBJEXT) \
- $(am__objects_8)
+ $(am__objects_13)
dbus_daemon_launch_helper_test_OBJECTS = \
$(am_dbus_daemon_launch_helper_test_OBJECTS)
dbus_daemon_launch_helper_test_DEPENDENCIES = \
- $(top_builddir)/dbus/libdbus-convenience.la \
- $(am__DEPENDENCIES_1)
+ $(top_builddir)/dbus/libdbus-internal.la $(am__DEPENDENCIES_1)
dbus_daemon_launch_helper_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(AM_CFLAGS) $(CFLAGS) \
@@ -221,9 +267,7 @@ am__nobase_list = $(am__nobase_strip_setup); \
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(initddir)" "$(DESTDIR)$(man1dir)" \
- "$(DESTDIR)$(configdir)"
-SCRIPTS = $(initd_SCRIPTS)
+SCRIPTS = $(bin_SCRIPTS) $(initd_SCRIPTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
@@ -260,10 +304,7 @@ DIST_SOURCES = $(am__bus_test_SOURCES_DIST) \
$(am__dbus_daemon_SOURCES_DIST) \
$(am__dbus_daemon_launch_helper_SOURCES_DIST) \
$(am__dbus_daemon_launch_helper_test_SOURCES_DIST)
-man1dir = $(mandir)/man1
-NROFF = nroff
-MANS = $(man_MANS)
-DATA = $(config_DATA)
+DATA = $(agent_DATA) $(config_DATA) $(systemdsystemunit_DATA)
ETAGS = etags
CTAGS = ctags
am__tty_colors = \
@@ -273,10 +314,13 @@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
+AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
+BUILD_FILEVERSION = @BUILD_FILEVERSION@
+BUILD_TIMESTAMP = @BUILD_TIMESTAMP@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
@@ -308,6 +352,8 @@ DBUS_MAJOR_VERSION = @DBUS_MAJOR_VERSION@
DBUS_MICRO_VERSION = @DBUS_MICRO_VERSION@
DBUS_MINOR_VERSION = @DBUS_MINOR_VERSION@
DBUS_PATH_OR_ABSTRACT = @DBUS_PATH_OR_ABSTRACT@
+DBUS_PREFIX = @DBUS_PREFIX@
+DBUS_SESSION_BUS_DEFAULT_ADDRESS = @DBUS_SESSION_BUS_DEFAULT_ADDRESS@
DBUS_SESSION_SOCKET_DIR = @DBUS_SESSION_SOCKET_DIR@
DBUS_SYSTEM_BUS_DEFAULT_ADDRESS = @DBUS_SYSTEM_BUS_DEFAULT_ADDRESS@
DBUS_SYSTEM_PID_FILE = @DBUS_SYSTEM_PID_FILE@
@@ -321,6 +367,7 @@ DBUS_X_CFLAGS = @DBUS_X_CFLAGS@
DBUS_X_LIBS = @DBUS_X_LIBS@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
DOXYGEN = @DOXYGEN@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
@@ -334,6 +381,7 @@ EXPANDED_DATADIR = @EXPANDED_DATADIR@
EXPANDED_LIBDIR = @EXPANDED_LIBDIR@
EXPANDED_LIBEXECDIR = @EXPANDED_LIBEXECDIR@
EXPANDED_LOCALSTATEDIR = @EXPANDED_LOCALSTATEDIR@
+EXPANDED_PREFIX = @EXPANDED_PREFIX@
EXPANDED_SYSCONFDIR = @EXPANDED_SYSCONFDIR@
FGREP = @FGREP@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
@@ -343,6 +391,8 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LAUNCHCTL = @LAUNCHCTL@
+LAUNCHD_AGENT_DIR = @LAUNCHD_AGENT_DIR@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
@@ -358,6 +408,7 @@ LT_CURRENT = @LT_CURRENT@
LT_REVISION = @LT_REVISION@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MAN2HTML = @MAN2HTML@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
@@ -370,6 +421,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PIC_CFLAGS = @PIC_CFLAGS@
@@ -399,6 +451,7 @@ TEST_SOCKET_DIR = @TEST_SOCKET_DIR@
TEST_VALID_SERVICE_DIR = @TEST_VALID_SERVICE_DIR@
TEST_VALID_SERVICE_SYSTEM_DIR = @TEST_VALID_SERVICE_SYSTEM_DIR@
VERSION = @VERSION@
+WINDRES = @WINDRES@
XMKMF = @XMKMF@
XMLTO = @XMLTO@
X_CFLAGS = @X_CFLAGS@
@@ -454,6 +507,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
@@ -461,17 +515,20 @@ top_srcdir = @top_srcdir@
configdir = $(sysconfdir)/dbus-1
INCLUDES = -I$(top_srcdir) $(DBUS_BUS_CFLAGS) @PIE_CFLAGS@ \
-DDBUS_SYSTEM_CONFIG_FILE=\""$(configdir)/system.conf"\" \
- -DDAEMON_NAME=\"dbus-daemon\" -DDBUS_COMPILATION
+ -DDBUS_COMPILATION
EFENCE =
CONFIG_IN_FILES = \
session.conf.in \
- system.conf.in
+ system.conf.in \
+ org.freedesktop.dbus-session.plist.in
config_DATA = \
session.conf \
system.conf
+@DBUS_ENABLE_LAUNCHD_TRUE@agentdir = $(LAUNCHD_AGENT_DIR)
+@DBUS_ENABLE_LAUNCHD_TRUE@agent_DATA = org.freedesktop.dbus-session.plist
@DBUS_USE_EXPAT_TRUE@XML_SOURCES = config-loader-expat.c
@DBUS_USE_LIBXML_TRUE@XML_SOURCES = config-loader-libxml.c
@DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX_FALSE@@DBUS_BUS_ENABLE_INOTIFY_FALSE@@DBUS_BUS_ENABLE_KQUEUE_FALSE@DIR_WATCH_SOURCE = dir-watch-default.c
@@ -516,11 +573,12 @@ BUS_SOURCES = \
dbus_daemon_SOURCES = \
$(BUS_SOURCES) \
- main.c
+ main.c
+dbus_daemon_CPPFLAGS = -DDBUS_STATIC_BUILD
dbus_daemon_LDADD = \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(EFENCE) \
- $(top_builddir)/dbus/libdbus-convenience.la \
$(DBUS_BUS_LIBS)
dbus_daemon_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@ @PIE_LDFLAGS@
@@ -542,8 +600,9 @@ dbus_daemon_launch_helper_SOURCES = \
activation-helper-bin.c \
$(LAUNCH_HELPER_SOURCES)
+dbus_daemon_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD
dbus_daemon_launch_helper_LDADD = \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
dbus_daemon_launch_helper_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
@@ -552,11 +611,11 @@ dbus_daemon_launch_helper_test_SOURCES = \
$(LAUNCH_HELPER_SOURCES)
dbus_daemon_launch_helper_test_LDADD = \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
dbus_daemon_launch_helper_test_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
-dbus_daemon_launch_helper_test_CPPFLAGS = \
+dbus_daemon_launch_helper_test_CPPFLAGS = -DDBUS_STATIC_BUILD \
-DACTIVATION_LAUNCHER_TEST
bus_test_launch_helper_SOURCES = \
@@ -564,14 +623,17 @@ bus_test_launch_helper_SOURCES = \
$(LAUNCH_HELPER_SOURCES)
bus_test_launch_helper_LDADD = \
- $(top_builddir)/dbus/libdbus-convenience.la \
+ $(top_builddir)/dbus/libdbus-internal.la \
$(DBUS_LAUNCHER_LIBS)
bus_test_launch_helper_LDFLAGS = @R_DYNAMIC_LDFLAG@ @SECTION_LDFLAGS@
-bus_test_launch_helper_CPPFLAGS = \
+bus_test_launch_helper_CPPFLAGS = -DDBUS_STATIC_BUILD \
-DACTIVATION_LAUNCHER_TEST \
-DACTIVATION_LAUNCHER_DO_OOM
+extra_tests = $(am__append_1)
+extra_noinst_programs = $(am__append_2)
+extra_inst_programs = $(am__append_3)
@DBUS_BUILD_TESTS_TRUE@TESTS_ENVIRONMENT = DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus DBUS_FATAL_WARNINGS=1 DBUS_BLOCK_ON_ABORT=1
bus_test_system_SOURCES = \
$(XML_SOURCES) \
@@ -583,19 +645,20 @@ bus_test_system_SOURCES = \
utils.h \
test-system.c
-bus_test_system_LDADD = $(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+bus_test_system_CPPFLAGS = -DDBUS_STATIC_BUILD
+bus_test_system_LDADD = $(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS)
bus_test_system_LDFLAGS = @R_DYNAMIC_LDFLAG@
bus_test_SOURCES = \
$(BUS_SOURCES) \
test-main.c
-bus_test_LDADD = $(top_builddir)/dbus/libdbus-convenience.la $(DBUS_BUS_LIBS)
+bus_test_CPPFLAGS = -DDBUS_STATIC_BUILD
+bus_test_LDADD = $(top_builddir)/dbus/libdbus-internal.la $(DBUS_BUS_LIBS)
bus_test_LDFLAGS = @R_DYNAMIC_LDFLAG@
#### Init scripts fun
-SCRIPT_IN_FILES = messagebus.in \
- rc.messagebus.in
-
+SCRIPT_IN_FILES = messagebus.in messagebus-config.in rc.messagebus.in \
+ $(am__append_4)
@DBUS_INIT_SCRIPTS_RED_HAT_TRUE@initddir = $(sysconfdir)/rc.d/init.d
@DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@initddir = $(sysconfdir)/rc.d/
@DBUS_INIT_SCRIPTS_RED_HAT_TRUE@initd_SCRIPTS = \
@@ -604,11 +667,16 @@ SCRIPT_IN_FILES = messagebus.in \
@DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@initd_SCRIPTS = \
@DBUS_INIT_SCRIPTS_SLACKWARE_TRUE@ rc.messagebus
-MAN_IN_FILES = dbus-daemon.1.in
-man_MANS = dbus-daemon.1
+@DBUS_INIT_SCRIPTS_CYGWIN_TRUE@bin_SCRIPTS = \
+@DBUS_INIT_SCRIPTS_CYGWIN_TRUE@ messagebus-config
-#### Extra dist
-EXTRA_DIST = $(CONFIG_IN_FILES) $(SCRIPT_IN_FILES) $(man_MANS) $(MAN_IN_FILES)
+@HAVE_SYSTEMD_TRUE@systemdsystemunit_DATA = \
+@HAVE_SYSTEMD_TRUE@ dbus.service \
+@HAVE_SYSTEMD_TRUE@ dbus.socket
+
+
+#### Extra dist
+EXTRA_DIST = $(CONFIG_IN_FILES) $(SCRIPT_IN_FILES)
all: all-am
.SUFFIXES:
@@ -649,10 +717,59 @@ session.conf: $(top_builddir)/config.status $(srcdir)/session.conf.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
messagebus: $(top_builddir)/config.status $(srcdir)/messagebus.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+messagebus-config: $(top_builddir)/config.status $(srcdir)/messagebus-config.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+org.freedesktop.dbus-session.plist: $(top_builddir)/config.status $(srcdir)/org.freedesktop.dbus-session.plist.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
rc.messagebus: $(top_builddir)/config.status $(srcdir)/rc.messagebus.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-dbus-daemon.1: $(top_builddir)/config.status $(srcdir)/dbus-daemon.1.in
+dbus.service: $(top_builddir)/config.status $(srcdir)/dbus.service.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+dbus.socket: $(top_builddir)/config.status $(srcdir)/dbus.socket.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p || test -f $$p1; \
+ then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
clean-noinstPROGRAMS:
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
@@ -680,6 +797,40 @@ dbus-daemon-launch-helper$(EXEEXT): $(dbus_daemon_launch_helper_OBJECTS) $(dbus_
dbus-daemon-launch-helper-test$(EXEEXT): $(dbus_daemon_launch_helper_test_OBJECTS) $(dbus_daemon_launch_helper_test_DEPENDENCIES)
@rm -f dbus-daemon-launch-helper-test$(EXEEXT)
$(AM_V_CCLD)$(dbus_daemon_launch_helper_test_LINK) $(dbus_daemon_launch_helper_test_OBJECTS) $(dbus_daemon_launch_helper_test_LDADD) $(LIBS)
+install-binSCRIPTS: $(bin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
install-initdSCRIPTS: $(initd_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(initddir)" || $(MKDIR_P) "$(DESTDIR)$(initddir)"
@@ -721,10 +872,28 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation-helper-bin.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation-helper.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/activation.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-activation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-bus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-loader-expat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-loader-libxml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-parser-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-config-parser.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-connection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-desktop-file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-default.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-dnotify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-inotify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dir-watch-kqueue.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-dispatch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-driver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-expirelist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-policy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-services.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-signals.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-test-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-activation-helper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-config-loader-expat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-config-loader-libxml.Po@am__quote@
@@ -733,12 +902,42 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-desktop-file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-test-launch-helper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_launch_helper-utils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-loader-expat.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-loader-libxml.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser-common.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser-trivial.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/config-parser.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-loader-expat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-loader-libxml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-parser-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-config-parser-trivial.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-test-system.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bus_test_system-utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-activation.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-bus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-loader-expat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-loader-libxml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-parser-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-config-parser.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-connection.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-desktop-file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-default.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-inotify.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-dispatch.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-driver.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-expirelist.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-main.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-policy.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-services.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-signals.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon-utils.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-config-loader-expat.Po@am__quote@
@@ -747,23 +946,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-config-parser-trivial.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-desktop-file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dbus_daemon_launch_helper_test-utils.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/desktop-file.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-default.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-dnotify.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-inotify.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dir-watch-kqueue.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dispatch.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/driver.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/expirelist.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/policy.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/selinux.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/services.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signals.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-main.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-system.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -789,6 +971,358 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+bus_test-activation.o: activation.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-activation.o -MD -MP -MF $(DEPDIR)/bus_test-activation.Tpo -c -o bus_test-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-activation.Tpo $(DEPDIR)/bus_test-activation.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='bus_test-activation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c
+
+bus_test-activation.obj: activation.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-activation.obj -MD -MP -MF $(DEPDIR)/bus_test-activation.Tpo -c -o bus_test-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-activation.Tpo $(DEPDIR)/bus_test-activation.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='bus_test-activation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi`
+
+bus_test-bus.o: bus.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-bus.o -MD -MP -MF $(DEPDIR)/bus_test-bus.Tpo -c -o bus_test-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-bus.Tpo $(DEPDIR)/bus_test-bus.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='bus_test-bus.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c
+
+bus_test-bus.obj: bus.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-bus.obj -MD -MP -MF $(DEPDIR)/bus_test-bus.Tpo -c -o bus_test-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-bus.Tpo $(DEPDIR)/bus_test-bus.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='bus_test-bus.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi`
+
+bus_test-config-parser.o: config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser.o -MD -MP -MF $(DEPDIR)/bus_test-config-parser.Tpo -c -o bus_test-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser.Tpo $(DEPDIR)/bus_test-config-parser.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='bus_test-config-parser.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c
+
+bus_test-config-parser.obj: config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser.obj -MD -MP -MF $(DEPDIR)/bus_test-config-parser.Tpo -c -o bus_test-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser.Tpo $(DEPDIR)/bus_test-config-parser.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='bus_test-config-parser.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi`
+
+bus_test-config-parser-common.o: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser-common.o -MD -MP -MF $(DEPDIR)/bus_test-config-parser-common.Tpo -c -o bus_test-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser-common.Tpo $(DEPDIR)/bus_test-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test-config-parser-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+
+bus_test-config-parser-common.obj: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-parser-common.obj -MD -MP -MF $(DEPDIR)/bus_test-config-parser-common.Tpo -c -o bus_test-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-parser-common.Tpo $(DEPDIR)/bus_test-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+
+bus_test-connection.o: connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-connection.o -MD -MP -MF $(DEPDIR)/bus_test-connection.Tpo -c -o bus_test-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-connection.Tpo $(DEPDIR)/bus_test-connection.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='bus_test-connection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+
+bus_test-connection.obj: connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-connection.obj -MD -MP -MF $(DEPDIR)/bus_test-connection.Tpo -c -o bus_test-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-connection.Tpo $(DEPDIR)/bus_test-connection.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='bus_test-connection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+
+bus_test-desktop-file.o: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-desktop-file.o -MD -MP -MF $(DEPDIR)/bus_test-desktop-file.Tpo -c -o bus_test-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-desktop-file.Tpo $(DEPDIR)/bus_test-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='bus_test-desktop-file.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+
+bus_test-desktop-file.obj: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-desktop-file.obj -MD -MP -MF $(DEPDIR)/bus_test-desktop-file.Tpo -c -o bus_test-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-desktop-file.Tpo $(DEPDIR)/bus_test-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='bus_test-desktop-file.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+
+bus_test-dir-watch-default.o: dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-default.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-default.Tpo -c -o bus_test-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-default.Tpo $(DEPDIR)/bus_test-dir-watch-default.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='bus_test-dir-watch-default.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c
+
+bus_test-dir-watch-default.obj: dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-default.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-default.Tpo -c -o bus_test-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-default.Tpo $(DEPDIR)/bus_test-dir-watch-default.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='bus_test-dir-watch-default.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi`
+
+bus_test-dir-watch-dnotify.o: dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-dnotify.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo -c -o bus_test-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo $(DEPDIR)/bus_test-dir-watch-dnotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='bus_test-dir-watch-dnotify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c
+
+bus_test-dir-watch-dnotify.obj: dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-dnotify.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo -c -o bus_test-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-dnotify.Tpo $(DEPDIR)/bus_test-dir-watch-dnotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='bus_test-dir-watch-dnotify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi`
+
+bus_test-dir-watch-inotify.o: dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-inotify.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-inotify.Tpo -c -o bus_test-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-inotify.Tpo $(DEPDIR)/bus_test-dir-watch-inotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='bus_test-dir-watch-inotify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c
+
+bus_test-dir-watch-inotify.obj: dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-inotify.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-inotify.Tpo -c -o bus_test-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-inotify.Tpo $(DEPDIR)/bus_test-dir-watch-inotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='bus_test-dir-watch-inotify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi`
+
+bus_test-dir-watch-kqueue.o: dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-kqueue.o -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo -c -o bus_test-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo $(DEPDIR)/bus_test-dir-watch-kqueue.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='bus_test-dir-watch-kqueue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c
+
+bus_test-dir-watch-kqueue.obj: dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dir-watch-kqueue.obj -MD -MP -MF $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo -c -o bus_test-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dir-watch-kqueue.Tpo $(DEPDIR)/bus_test-dir-watch-kqueue.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='bus_test-dir-watch-kqueue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi`
+
+bus_test-dispatch.o: dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dispatch.o -MD -MP -MF $(DEPDIR)/bus_test-dispatch.Tpo -c -o bus_test-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dispatch.Tpo $(DEPDIR)/bus_test-dispatch.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='bus_test-dispatch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c
+
+bus_test-dispatch.obj: dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-dispatch.obj -MD -MP -MF $(DEPDIR)/bus_test-dispatch.Tpo -c -o bus_test-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-dispatch.Tpo $(DEPDIR)/bus_test-dispatch.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='bus_test-dispatch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi`
+
+bus_test-driver.o: driver.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-driver.o -MD -MP -MF $(DEPDIR)/bus_test-driver.Tpo -c -o bus_test-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-driver.Tpo $(DEPDIR)/bus_test-driver.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='bus_test-driver.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c
+
+bus_test-driver.obj: driver.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-driver.obj -MD -MP -MF $(DEPDIR)/bus_test-driver.Tpo -c -o bus_test-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-driver.Tpo $(DEPDIR)/bus_test-driver.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='bus_test-driver.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi`
+
+bus_test-expirelist.o: expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-expirelist.o -MD -MP -MF $(DEPDIR)/bus_test-expirelist.Tpo -c -o bus_test-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-expirelist.Tpo $(DEPDIR)/bus_test-expirelist.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='bus_test-expirelist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c
+
+bus_test-expirelist.obj: expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-expirelist.obj -MD -MP -MF $(DEPDIR)/bus_test-expirelist.Tpo -c -o bus_test-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-expirelist.Tpo $(DEPDIR)/bus_test-expirelist.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='bus_test-expirelist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi`
+
+bus_test-policy.o: policy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-policy.o -MD -MP -MF $(DEPDIR)/bus_test-policy.Tpo -c -o bus_test-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-policy.Tpo $(DEPDIR)/bus_test-policy.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='bus_test-policy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c
+
+bus_test-policy.obj: policy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-policy.obj -MD -MP -MF $(DEPDIR)/bus_test-policy.Tpo -c -o bus_test-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-policy.Tpo $(DEPDIR)/bus_test-policy.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='bus_test-policy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi`
+
+bus_test-selinux.o: selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-selinux.o -MD -MP -MF $(DEPDIR)/bus_test-selinux.Tpo -c -o bus_test-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-selinux.Tpo $(DEPDIR)/bus_test-selinux.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='bus_test-selinux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c
+
+bus_test-selinux.obj: selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-selinux.obj -MD -MP -MF $(DEPDIR)/bus_test-selinux.Tpo -c -o bus_test-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-selinux.Tpo $(DEPDIR)/bus_test-selinux.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='bus_test-selinux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi`
+
+bus_test-services.o: services.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-services.o -MD -MP -MF $(DEPDIR)/bus_test-services.Tpo -c -o bus_test-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-services.Tpo $(DEPDIR)/bus_test-services.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='bus_test-services.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c
+
+bus_test-services.obj: services.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-services.obj -MD -MP -MF $(DEPDIR)/bus_test-services.Tpo -c -o bus_test-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-services.Tpo $(DEPDIR)/bus_test-services.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='bus_test-services.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi`
+
+bus_test-signals.o: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-signals.o -MD -MP -MF $(DEPDIR)/bus_test-signals.Tpo -c -o bus_test-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-signals.Tpo $(DEPDIR)/bus_test-signals.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='bus_test-signals.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+
+bus_test-signals.obj: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-signals.obj -MD -MP -MF $(DEPDIR)/bus_test-signals.Tpo -c -o bus_test-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-signals.Tpo $(DEPDIR)/bus_test-signals.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='bus_test-signals.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+
+bus_test-test.o: test.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test.o -MD -MP -MF $(DEPDIR)/bus_test-test.Tpo -c -o bus_test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test.Tpo $(DEPDIR)/bus_test-test.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='bus_test-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+
+bus_test-test.obj: test.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test.obj -MD -MP -MF $(DEPDIR)/bus_test-test.Tpo -c -o bus_test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test.Tpo $(DEPDIR)/bus_test-test.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='bus_test-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+
+bus_test-utils.o: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-utils.o -MD -MP -MF $(DEPDIR)/bus_test-utils.Tpo -c -o bus_test-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-utils.Tpo $(DEPDIR)/bus_test-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
+bus_test-utils.obj: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-utils.obj -MD -MP -MF $(DEPDIR)/bus_test-utils.Tpo -c -o bus_test-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-utils.Tpo $(DEPDIR)/bus_test-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+
+bus_test-config-loader-expat.o: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-expat.o -MD -MP -MF $(DEPDIR)/bus_test-config-loader-expat.Tpo -c -o bus_test-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-expat.Tpo $(DEPDIR)/bus_test-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+
+bus_test-config-loader-expat.obj: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/bus_test-config-loader-expat.Tpo -c -o bus_test-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-expat.Tpo $(DEPDIR)/bus_test-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+
+bus_test-config-loader-libxml.o: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/bus_test-config-loader-libxml.Tpo -c -o bus_test-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-libxml.Tpo $(DEPDIR)/bus_test-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+
+bus_test-config-loader-libxml.obj: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/bus_test-config-loader-libxml.Tpo -c -o bus_test-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-config-loader-libxml.Tpo $(DEPDIR)/bus_test-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+
+bus_test-test-main.o: test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test-main.o -MD -MP -MF $(DEPDIR)/bus_test-test-main.Tpo -c -o bus_test-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test-main.Tpo $(DEPDIR)/bus_test-test-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-main.c' object='bus_test-test-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test-main.o `test -f 'test-main.c' || echo '$(srcdir)/'`test-main.c
+
+bus_test-test-main.obj: test-main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test-test-main.obj -MD -MP -MF $(DEPDIR)/bus_test-test-main.Tpo -c -o bus_test-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test-test-main.Tpo $(DEPDIR)/bus_test-test-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-main.c' object='bus_test-test-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test-test-main.obj `if test -f 'test-main.c'; then $(CYGPATH_W) 'test-main.c'; else $(CYGPATH_W) '$(srcdir)/test-main.c'; fi`
+
bus_test_launch_helper-test-launch-helper.o: test-launch-helper.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_launch_helper-test-launch-helper.o -MD -MP -MF $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Tpo -c -o bus_test_launch_helper-test-launch-helper.o `test -f 'test-launch-helper.c' || echo '$(srcdir)/'`test-launch-helper.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Tpo $(DEPDIR)/bus_test_launch_helper-test-launch-helper.Po
@@ -917,6 +1451,582 @@ bus_test_launch_helper-activation-helper.obj: activation-helper.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi`
+bus_test_system-config-loader-expat.o: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-expat.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-expat.Tpo -c -o bus_test_system-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-expat.Tpo $(DEPDIR)/bus_test_system-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test_system-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+
+bus_test_system-config-loader-expat.obj: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-expat.Tpo -c -o bus_test_system-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-expat.Tpo $(DEPDIR)/bus_test_system-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='bus_test_system-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+
+bus_test_system-config-loader-libxml.o: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo -c -o bus_test_system-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo $(DEPDIR)/bus_test_system-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test_system-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+
+bus_test_system-config-loader-libxml.obj: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo -c -o bus_test_system-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-loader-libxml.Tpo $(DEPDIR)/bus_test_system-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='bus_test_system-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+
+bus_test_system-config-parser-common.o: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-common.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-common.Tpo -c -o bus_test_system-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-common.Tpo $(DEPDIR)/bus_test_system-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test_system-config-parser-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+
+bus_test_system-config-parser-common.obj: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-common.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-common.Tpo -c -o bus_test_system-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-common.Tpo $(DEPDIR)/bus_test_system-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='bus_test_system-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+
+bus_test_system-config-parser-trivial.o: config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-trivial.o -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo -c -o bus_test_system-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo $(DEPDIR)/bus_test_system-config-parser-trivial.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='bus_test_system-config-parser-trivial.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c
+
+bus_test_system-config-parser-trivial.obj: config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-config-parser-trivial.obj -MD -MP -MF $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo -c -o bus_test_system-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-config-parser-trivial.Tpo $(DEPDIR)/bus_test_system-config-parser-trivial.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='bus_test_system-config-parser-trivial.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi`
+
+bus_test_system-utils.o: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-utils.o -MD -MP -MF $(DEPDIR)/bus_test_system-utils.Tpo -c -o bus_test_system-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-utils.Tpo $(DEPDIR)/bus_test_system-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test_system-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
+bus_test_system-utils.obj: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-utils.obj -MD -MP -MF $(DEPDIR)/bus_test_system-utils.Tpo -c -o bus_test_system-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-utils.Tpo $(DEPDIR)/bus_test_system-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='bus_test_system-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+
+bus_test_system-test-system.o: test-system.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-test-system.o -MD -MP -MF $(DEPDIR)/bus_test_system-test-system.Tpo -c -o bus_test_system-test-system.o `test -f 'test-system.c' || echo '$(srcdir)/'`test-system.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-test-system.Tpo $(DEPDIR)/bus_test_system-test-system.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-system.c' object='bus_test_system-test-system.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-test-system.o `test -f 'test-system.c' || echo '$(srcdir)/'`test-system.c
+
+bus_test_system-test-system.obj: test-system.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT bus_test_system-test-system.obj -MD -MP -MF $(DEPDIR)/bus_test_system-test-system.Tpo -c -o bus_test_system-test-system.obj `if test -f 'test-system.c'; then $(CYGPATH_W) 'test-system.c'; else $(CYGPATH_W) '$(srcdir)/test-system.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/bus_test_system-test-system.Tpo $(DEPDIR)/bus_test_system-test-system.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-system.c' object='bus_test_system-test-system.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(bus_test_system_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o bus_test_system-test-system.obj `if test -f 'test-system.c'; then $(CYGPATH_W) 'test-system.c'; else $(CYGPATH_W) '$(srcdir)/test-system.c'; fi`
+
+dbus_daemon-activation.o: activation.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-activation.o -MD -MP -MF $(DEPDIR)/dbus_daemon-activation.Tpo -c -o dbus_daemon-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-activation.Tpo $(DEPDIR)/dbus_daemon-activation.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='dbus_daemon-activation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-activation.o `test -f 'activation.c' || echo '$(srcdir)/'`activation.c
+
+dbus_daemon-activation.obj: activation.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-activation.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-activation.Tpo -c -o dbus_daemon-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-activation.Tpo $(DEPDIR)/dbus_daemon-activation.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation.c' object='dbus_daemon-activation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-activation.obj `if test -f 'activation.c'; then $(CYGPATH_W) 'activation.c'; else $(CYGPATH_W) '$(srcdir)/activation.c'; fi`
+
+dbus_daemon-bus.o: bus.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-bus.o -MD -MP -MF $(DEPDIR)/dbus_daemon-bus.Tpo -c -o dbus_daemon-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-bus.Tpo $(DEPDIR)/dbus_daemon-bus.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='dbus_daemon-bus.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-bus.o `test -f 'bus.c' || echo '$(srcdir)/'`bus.c
+
+dbus_daemon-bus.obj: bus.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-bus.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-bus.Tpo -c -o dbus_daemon-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-bus.Tpo $(DEPDIR)/dbus_daemon-bus.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='bus.c' object='dbus_daemon-bus.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-bus.obj `if test -f 'bus.c'; then $(CYGPATH_W) 'bus.c'; else $(CYGPATH_W) '$(srcdir)/bus.c'; fi`
+
+dbus_daemon-config-parser.o: config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser.Tpo -c -o dbus_daemon-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser.Tpo $(DEPDIR)/dbus_daemon-config-parser.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='dbus_daemon-config-parser.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser.o `test -f 'config-parser.c' || echo '$(srcdir)/'`config-parser.c
+
+dbus_daemon-config-parser.obj: config-parser.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser.Tpo -c -o dbus_daemon-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser.Tpo $(DEPDIR)/dbus_daemon-config-parser.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser.c' object='dbus_daemon-config-parser.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser.obj `if test -f 'config-parser.c'; then $(CYGPATH_W) 'config-parser.c'; else $(CYGPATH_W) '$(srcdir)/config-parser.c'; fi`
+
+dbus_daemon-config-parser-common.o: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser-common.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser-common.Tpo -c -o dbus_daemon-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser-common.Tpo $(DEPDIR)/dbus_daemon-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon-config-parser-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+
+dbus_daemon-config-parser-common.obj: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-parser-common.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-parser-common.Tpo -c -o dbus_daemon-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-parser-common.Tpo $(DEPDIR)/dbus_daemon-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+
+dbus_daemon-connection.o: connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-connection.o -MD -MP -MF $(DEPDIR)/dbus_daemon-connection.Tpo -c -o dbus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-connection.Tpo $(DEPDIR)/dbus_daemon-connection.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='dbus_daemon-connection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-connection.o `test -f 'connection.c' || echo '$(srcdir)/'`connection.c
+
+dbus_daemon-connection.obj: connection.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-connection.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-connection.Tpo -c -o dbus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-connection.Tpo $(DEPDIR)/dbus_daemon-connection.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='connection.c' object='dbus_daemon-connection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-connection.obj `if test -f 'connection.c'; then $(CYGPATH_W) 'connection.c'; else $(CYGPATH_W) '$(srcdir)/connection.c'; fi`
+
+dbus_daemon-desktop-file.o: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-desktop-file.o -MD -MP -MF $(DEPDIR)/dbus_daemon-desktop-file.Tpo -c -o dbus_daemon-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-desktop-file.Tpo $(DEPDIR)/dbus_daemon-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon-desktop-file.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+
+dbus_daemon-desktop-file.obj: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-desktop-file.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-desktop-file.Tpo -c -o dbus_daemon-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-desktop-file.Tpo $(DEPDIR)/dbus_daemon-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon-desktop-file.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+
+dbus_daemon-dir-watch-default.o: dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-default.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo -c -o dbus_daemon-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo $(DEPDIR)/dbus_daemon-dir-watch-default.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='dbus_daemon-dir-watch-default.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-default.o `test -f 'dir-watch-default.c' || echo '$(srcdir)/'`dir-watch-default.c
+
+dbus_daemon-dir-watch-default.obj: dir-watch-default.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-default.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo -c -o dbus_daemon-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-default.Tpo $(DEPDIR)/dbus_daemon-dir-watch-default.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-default.c' object='dbus_daemon-dir-watch-default.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-default.obj `if test -f 'dir-watch-default.c'; then $(CYGPATH_W) 'dir-watch-default.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-default.c'; fi`
+
+dbus_daemon-dir-watch-dnotify.o: dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-dnotify.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo -c -o dbus_daemon-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='dbus_daemon-dir-watch-dnotify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-dnotify.o `test -f 'dir-watch-dnotify.c' || echo '$(srcdir)/'`dir-watch-dnotify.c
+
+dbus_daemon-dir-watch-dnotify.obj: dir-watch-dnotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-dnotify.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo -c -o dbus_daemon-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-dnotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-dnotify.c' object='dbus_daemon-dir-watch-dnotify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-dnotify.obj `if test -f 'dir-watch-dnotify.c'; then $(CYGPATH_W) 'dir-watch-dnotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-dnotify.c'; fi`
+
+dbus_daemon-dir-watch-inotify.o: dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-inotify.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo -c -o dbus_daemon-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-inotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='dbus_daemon-dir-watch-inotify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-inotify.o `test -f 'dir-watch-inotify.c' || echo '$(srcdir)/'`dir-watch-inotify.c
+
+dbus_daemon-dir-watch-inotify.obj: dir-watch-inotify.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-inotify.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo -c -o dbus_daemon-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-inotify.Tpo $(DEPDIR)/dbus_daemon-dir-watch-inotify.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-inotify.c' object='dbus_daemon-dir-watch-inotify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-inotify.obj `if test -f 'dir-watch-inotify.c'; then $(CYGPATH_W) 'dir-watch-inotify.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-inotify.c'; fi`
+
+dbus_daemon-dir-watch-kqueue.o: dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-kqueue.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo -c -o dbus_daemon-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='dbus_daemon-dir-watch-kqueue.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-kqueue.o `test -f 'dir-watch-kqueue.c' || echo '$(srcdir)/'`dir-watch-kqueue.c
+
+dbus_daemon-dir-watch-kqueue.obj: dir-watch-kqueue.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dir-watch-kqueue.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo -c -o dbus_daemon-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Tpo $(DEPDIR)/dbus_daemon-dir-watch-kqueue.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dir-watch-kqueue.c' object='dbus_daemon-dir-watch-kqueue.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dir-watch-kqueue.obj `if test -f 'dir-watch-kqueue.c'; then $(CYGPATH_W) 'dir-watch-kqueue.c'; else $(CYGPATH_W) '$(srcdir)/dir-watch-kqueue.c'; fi`
+
+dbus_daemon-dispatch.o: dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dispatch.o -MD -MP -MF $(DEPDIR)/dbus_daemon-dispatch.Tpo -c -o dbus_daemon-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dispatch.Tpo $(DEPDIR)/dbus_daemon-dispatch.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='dbus_daemon-dispatch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dispatch.o `test -f 'dispatch.c' || echo '$(srcdir)/'`dispatch.c
+
+dbus_daemon-dispatch.obj: dispatch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-dispatch.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-dispatch.Tpo -c -o dbus_daemon-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-dispatch.Tpo $(DEPDIR)/dbus_daemon-dispatch.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dispatch.c' object='dbus_daemon-dispatch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-dispatch.obj `if test -f 'dispatch.c'; then $(CYGPATH_W) 'dispatch.c'; else $(CYGPATH_W) '$(srcdir)/dispatch.c'; fi`
+
+dbus_daemon-driver.o: driver.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-driver.o -MD -MP -MF $(DEPDIR)/dbus_daemon-driver.Tpo -c -o dbus_daemon-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-driver.Tpo $(DEPDIR)/dbus_daemon-driver.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='dbus_daemon-driver.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-driver.o `test -f 'driver.c' || echo '$(srcdir)/'`driver.c
+
+dbus_daemon-driver.obj: driver.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-driver.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-driver.Tpo -c -o dbus_daemon-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-driver.Tpo $(DEPDIR)/dbus_daemon-driver.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='driver.c' object='dbus_daemon-driver.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-driver.obj `if test -f 'driver.c'; then $(CYGPATH_W) 'driver.c'; else $(CYGPATH_W) '$(srcdir)/driver.c'; fi`
+
+dbus_daemon-expirelist.o: expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-expirelist.o -MD -MP -MF $(DEPDIR)/dbus_daemon-expirelist.Tpo -c -o dbus_daemon-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-expirelist.Tpo $(DEPDIR)/dbus_daemon-expirelist.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='dbus_daemon-expirelist.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-expirelist.o `test -f 'expirelist.c' || echo '$(srcdir)/'`expirelist.c
+
+dbus_daemon-expirelist.obj: expirelist.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-expirelist.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-expirelist.Tpo -c -o dbus_daemon-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-expirelist.Tpo $(DEPDIR)/dbus_daemon-expirelist.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='expirelist.c' object='dbus_daemon-expirelist.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-expirelist.obj `if test -f 'expirelist.c'; then $(CYGPATH_W) 'expirelist.c'; else $(CYGPATH_W) '$(srcdir)/expirelist.c'; fi`
+
+dbus_daemon-policy.o: policy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-policy.o -MD -MP -MF $(DEPDIR)/dbus_daemon-policy.Tpo -c -o dbus_daemon-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-policy.Tpo $(DEPDIR)/dbus_daemon-policy.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='dbus_daemon-policy.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-policy.o `test -f 'policy.c' || echo '$(srcdir)/'`policy.c
+
+dbus_daemon-policy.obj: policy.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-policy.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-policy.Tpo -c -o dbus_daemon-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-policy.Tpo $(DEPDIR)/dbus_daemon-policy.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='policy.c' object='dbus_daemon-policy.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-policy.obj `if test -f 'policy.c'; then $(CYGPATH_W) 'policy.c'; else $(CYGPATH_W) '$(srcdir)/policy.c'; fi`
+
+dbus_daemon-selinux.o: selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-selinux.o -MD -MP -MF $(DEPDIR)/dbus_daemon-selinux.Tpo -c -o dbus_daemon-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-selinux.Tpo $(DEPDIR)/dbus_daemon-selinux.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='dbus_daemon-selinux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-selinux.o `test -f 'selinux.c' || echo '$(srcdir)/'`selinux.c
+
+dbus_daemon-selinux.obj: selinux.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-selinux.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-selinux.Tpo -c -o dbus_daemon-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-selinux.Tpo $(DEPDIR)/dbus_daemon-selinux.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='selinux.c' object='dbus_daemon-selinux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-selinux.obj `if test -f 'selinux.c'; then $(CYGPATH_W) 'selinux.c'; else $(CYGPATH_W) '$(srcdir)/selinux.c'; fi`
+
+dbus_daemon-services.o: services.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-services.o -MD -MP -MF $(DEPDIR)/dbus_daemon-services.Tpo -c -o dbus_daemon-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-services.Tpo $(DEPDIR)/dbus_daemon-services.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='dbus_daemon-services.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-services.o `test -f 'services.c' || echo '$(srcdir)/'`services.c
+
+dbus_daemon-services.obj: services.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-services.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-services.Tpo -c -o dbus_daemon-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-services.Tpo $(DEPDIR)/dbus_daemon-services.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='services.c' object='dbus_daemon-services.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-services.obj `if test -f 'services.c'; then $(CYGPATH_W) 'services.c'; else $(CYGPATH_W) '$(srcdir)/services.c'; fi`
+
+dbus_daemon-signals.o: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-signals.o -MD -MP -MF $(DEPDIR)/dbus_daemon-signals.Tpo -c -o dbus_daemon-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-signals.Tpo $(DEPDIR)/dbus_daemon-signals.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='dbus_daemon-signals.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-signals.o `test -f 'signals.c' || echo '$(srcdir)/'`signals.c
+
+dbus_daemon-signals.obj: signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-signals.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-signals.Tpo -c -o dbus_daemon-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-signals.Tpo $(DEPDIR)/dbus_daemon-signals.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='signals.c' object='dbus_daemon-signals.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-signals.obj `if test -f 'signals.c'; then $(CYGPATH_W) 'signals.c'; else $(CYGPATH_W) '$(srcdir)/signals.c'; fi`
+
+dbus_daemon-test.o: test.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-test.o -MD -MP -MF $(DEPDIR)/dbus_daemon-test.Tpo -c -o dbus_daemon-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-test.Tpo $(DEPDIR)/dbus_daemon-test.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='dbus_daemon-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+
+dbus_daemon-test.obj: test.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-test.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-test.Tpo -c -o dbus_daemon-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-test.Tpo $(DEPDIR)/dbus_daemon-test.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='dbus_daemon-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+
+dbus_daemon-utils.o: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-utils.o -MD -MP -MF $(DEPDIR)/dbus_daemon-utils.Tpo -c -o dbus_daemon-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-utils.Tpo $(DEPDIR)/dbus_daemon-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
+dbus_daemon-utils.obj: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-utils.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-utils.Tpo -c -o dbus_daemon-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-utils.Tpo $(DEPDIR)/dbus_daemon-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+
+dbus_daemon-config-loader-expat.o: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-expat.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo -c -o dbus_daemon-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+
+dbus_daemon-config-loader-expat.obj: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo -c -o dbus_daemon-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+
+dbus_daemon-config-loader-libxml.o: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo -c -o dbus_daemon-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+
+dbus_daemon-config-loader-libxml.obj: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo -c -o dbus_daemon-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+
+dbus_daemon-main.o: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-main.o -MD -MP -MF $(DEPDIR)/dbus_daemon-main.Tpo -c -o dbus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-main.Tpo $(DEPDIR)/dbus_daemon-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='dbus_daemon-main.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+
+dbus_daemon-main.obj: main.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon-main.obj -MD -MP -MF $(DEPDIR)/dbus_daemon-main.Tpo -c -o dbus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon-main.Tpo $(DEPDIR)/dbus_daemon-main.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='main.c' object='dbus_daemon-main.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+
+dbus_daemon_launch_helper-activation-helper-bin.o: activation-helper-bin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper-bin.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper-bin.c' object='dbus_daemon_launch_helper-activation-helper-bin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c
+
+dbus_daemon_launch_helper-activation-helper-bin.obj: activation-helper-bin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper-bin.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper-activation-helper-bin.obj `if test -f 'activation-helper-bin.c'; then $(CYGPATH_W) 'activation-helper-bin.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper-bin.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper-bin.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper-bin.c' object='dbus_daemon_launch_helper-activation-helper-bin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper-bin.obj `if test -f 'activation-helper-bin.c'; then $(CYGPATH_W) 'activation-helper-bin.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper-bin.c'; fi`
+
+dbus_daemon_launch_helper-config-loader-expat.o: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-expat.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo -c -o dbus_daemon_launch_helper-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon_launch_helper-config-loader-expat.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-expat.o `test -f 'config-loader-expat.c' || echo '$(srcdir)/'`config-loader-expat.c
+
+dbus_daemon_launch_helper-config-loader-expat.obj: config-loader-expat.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-expat.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo -c -o dbus_daemon_launch_helper-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-expat.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-expat.c' object='dbus_daemon_launch_helper-config-loader-expat.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-expat.obj `if test -f 'config-loader-expat.c'; then $(CYGPATH_W) 'config-loader-expat.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-expat.c'; fi`
+
+dbus_daemon_launch_helper-config-loader-libxml.o: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-libxml.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo -c -o dbus_daemon_launch_helper-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon_launch_helper-config-loader-libxml.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-libxml.o `test -f 'config-loader-libxml.c' || echo '$(srcdir)/'`config-loader-libxml.c
+
+dbus_daemon_launch_helper-config-loader-libxml.obj: config-loader-libxml.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-loader-libxml.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo -c -o dbus_daemon_launch_helper-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-loader-libxml.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-loader-libxml.c' object='dbus_daemon_launch_helper-config-loader-libxml.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-loader-libxml.obj `if test -f 'config-loader-libxml.c'; then $(CYGPATH_W) 'config-loader-libxml.c'; else $(CYGPATH_W) '$(srcdir)/config-loader-libxml.c'; fi`
+
+dbus_daemon_launch_helper-config-parser-common.o: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-common.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo -c -o dbus_daemon_launch_helper-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon_launch_helper-config-parser-common.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-common.o `test -f 'config-parser-common.c' || echo '$(srcdir)/'`config-parser-common.c
+
+dbus_daemon_launch_helper-config-parser-common.obj: config-parser-common.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-common.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo -c -o dbus_daemon_launch_helper-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-common.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-common.c' object='dbus_daemon_launch_helper-config-parser-common.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-common.obj `if test -f 'config-parser-common.c'; then $(CYGPATH_W) 'config-parser-common.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-common.c'; fi`
+
+dbus_daemon_launch_helper-config-parser-trivial.o: config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-trivial.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo -c -o dbus_daemon_launch_helper-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='dbus_daemon_launch_helper-config-parser-trivial.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-trivial.o `test -f 'config-parser-trivial.c' || echo '$(srcdir)/'`config-parser-trivial.c
+
+dbus_daemon_launch_helper-config-parser-trivial.obj: config-parser-trivial.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-config-parser-trivial.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo -c -o dbus_daemon_launch_helper-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Tpo $(DEPDIR)/dbus_daemon_launch_helper-config-parser-trivial.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='config-parser-trivial.c' object='dbus_daemon_launch_helper-config-parser-trivial.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-config-parser-trivial.obj `if test -f 'config-parser-trivial.c'; then $(CYGPATH_W) 'config-parser-trivial.c'; else $(CYGPATH_W) '$(srcdir)/config-parser-trivial.c'; fi`
+
+dbus_daemon_launch_helper-desktop-file.o: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-desktop-file.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo -c -o dbus_daemon_launch_helper-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon_launch_helper-desktop-file.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-desktop-file.o `test -f 'desktop-file.c' || echo '$(srcdir)/'`desktop-file.c
+
+dbus_daemon_launch_helper-desktop-file.obj: desktop-file.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-desktop-file.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo -c -o dbus_daemon_launch_helper-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Tpo $(DEPDIR)/dbus_daemon_launch_helper-desktop-file.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='desktop-file.c' object='dbus_daemon_launch_helper-desktop-file.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-desktop-file.obj `if test -f 'desktop-file.c'; then $(CYGPATH_W) 'desktop-file.c'; else $(CYGPATH_W) '$(srcdir)/desktop-file.c'; fi`
+
+dbus_daemon_launch_helper-utils.o: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-utils.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo -c -o dbus_daemon_launch_helper-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo $(DEPDIR)/dbus_daemon_launch_helper-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon_launch_helper-utils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-utils.o `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+
+dbus_daemon_launch_helper-utils.obj: utils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-utils.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo -c -o dbus_daemon_launch_helper-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-utils.Tpo $(DEPDIR)/dbus_daemon_launch_helper-utils.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='dbus_daemon_launch_helper-utils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-utils.obj `if test -f 'utils.c'; then $(CYGPATH_W) 'utils.c'; else $(CYGPATH_W) '$(srcdir)/utils.c'; fi`
+
+dbus_daemon_launch_helper-activation-helper.o: activation-helper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo -c -o dbus_daemon_launch_helper-activation-helper.o `test -f 'activation-helper.c' || echo '$(srcdir)/'`activation-helper.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper.c' object='dbus_daemon_launch_helper-activation-helper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper.o `test -f 'activation-helper.c' || echo '$(srcdir)/'`activation-helper.c
+
+dbus_daemon_launch_helper-activation-helper.obj: activation-helper.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper-activation-helper.obj -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo -c -o dbus_daemon_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Tpo $(DEPDIR)/dbus_daemon_launch_helper-activation-helper.Po
+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='activation-helper.c' object='dbus_daemon_launch_helper-activation-helper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o dbus_daemon_launch_helper-activation-helper.obj `if test -f 'activation-helper.c'; then $(CYGPATH_W) 'activation-helper.c'; else $(CYGPATH_W) '$(srcdir)/activation-helper.c'; fi`
+
dbus_daemon_launch_helper_test-activation-helper-bin.o: activation-helper-bin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(dbus_daemon_launch_helper_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT dbus_daemon_launch_helper_test-activation-helper-bin.o -MD -MP -MF $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Tpo -c -o dbus_daemon_launch_helper_test-activation-helper-bin.o `test -f 'activation-helper-bin.c' || echo '$(srcdir)/'`activation-helper-bin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Tpo $(DEPDIR)/dbus_daemon_launch_helper_test-activation-helper-bin.Po
@@ -1050,44 +2160,26 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-install-man1: $(man_MANS)
+install-agentDATA: $(agent_DATA)
@$(NORMAL_INSTALL)
- test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
- @list=''; test -n "$(man1dir)" || exit 0; \
- { for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | while read p; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; echo "$$p"; \
- done | \
- sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
- sed 'N;N;s,\n, ,g' | { \
- list=; while read file base inst; do \
- if test "$$base" = "$$inst"; then list="$$list $$file"; else \
- echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
- $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
- fi; \
- done; \
- for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ test -z "$(agentdir)" || $(MKDIR_P) "$(DESTDIR)$(agentdir)"
+ @list='$(agent_DATA)'; test -n "$(agentdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
while read files; do \
- test -z "$$files" || { \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
- done; }
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(agentdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(agentdir)" || exit $$?; \
+ done
-uninstall-man1:
+uninstall-agentDATA:
@$(NORMAL_UNINSTALL)
- @list=''; test -n "$(man1dir)" || exit 0; \
- files=`{ for i in $$list; do echo "$$i"; done; \
- l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
- sed -n '/\.1[a-z]*$$/p'; \
- } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
- -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- test -z "$$files" || { \
- echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+ @list='$(agent_DATA)'; test -n "$(agentdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(agentdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(agentdir)" && rm -f $$files
install-configDATA: $(config_DATA)
@$(NORMAL_INSTALL)
test -z "$(configdir)" || $(MKDIR_P) "$(DESTDIR)$(configdir)"
@@ -1108,6 +2200,26 @@ uninstall-configDATA:
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(configdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(configdir)" && rm -f $$files
+install-systemdsystemunitDATA: $(systemdsystemunit_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(systemdsystemunitdir)" || $(MKDIR_P) "$(DESTDIR)$(systemdsystemunitdir)"
+ @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(systemdsystemunitdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(systemdsystemunitdir)" || exit $$?; \
+ done
+
+uninstall-systemdsystemunitDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(systemdsystemunit_DATA)'; test -n "$(systemdsystemunitdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ test -n "$$files" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(systemdsystemunitdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(systemdsystemunitdir)" && rm -f $$files
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -1254,19 +2366,6 @@ check-TESTS: $(TESTS)
else :; fi
distdir: $(DISTFILES)
- @list='$(MANS)'; if test -n "$$list"; then \
- list=`for p in $$list; do \
- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
- if test -n "$$list" && \
- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
- echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
- echo " typically \`make maintainer-clean' will remove them" >&2; \
- exit 1; \
- else :; fi; \
- else :; fi
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
@@ -1299,9 +2398,9 @@ distdir: $(DISTFILES)
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: check-am
-all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA)
+all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA)
installdirs:
- for dir in "$(DESTDIR)$(initddir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(configdir)"; do \
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(initddir)" "$(DESTDIR)$(agentdir)" "$(DESTDIR)$(configdir)" "$(DESTDIR)$(systemdsystemunitdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
@@ -1331,8 +2430,8 @@ maintainer-clean-generic:
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
-clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
- mostlyclean-am
+clean-am: clean-binPROGRAMS clean-generic clean-libtool clean-local \
+ clean-noinstPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
@@ -1352,14 +2451,15 @@ info: info-am
info-am:
-install-data-am: install-configDATA install-initdSCRIPTS install-man
+install-data-am: install-agentDATA install-configDATA \
+ install-initdSCRIPTS install-systemdsystemunitDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
install-dvi: install-dvi-am
install-dvi-am:
-install-exec-am:
+install-exec-am: install-binPROGRAMS install-binSCRIPTS
install-html: install-html-am
@@ -1369,7 +2469,7 @@ install-info: install-info-am
install-info-am:
-install-man: install-man1
+install-man:
install-pdf: install-pdf-am
@@ -1399,59 +2499,70 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-configDATA uninstall-initdSCRIPTS \
- uninstall-man
+uninstall-am: uninstall-agentDATA uninstall-binPROGRAMS \
+ uninstall-binSCRIPTS uninstall-configDATA \
+ uninstall-initdSCRIPTS uninstall-systemdsystemunitDATA
@$(NORMAL_INSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
-uninstall-man: uninstall-man1
-
.MAKE: check-am install-am install-data-am install-strip uninstall-am
.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-generic clean-libtool clean-local clean-noinstPROGRAMS \
- ctags distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-configDATA \
- install-data install-data-am install-data-hook install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am \
- install-initdSCRIPTS install-man install-man1 install-pdf \
+ clean-binPROGRAMS clean-generic clean-libtool clean-local \
+ clean-noinstPROGRAMS ctags distclean distclean-compile \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-agentDATA \
+ install-am install-binPROGRAMS install-binSCRIPTS \
+ install-configDATA install-data install-data-am \
+ install-data-hook install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-initdSCRIPTS install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- tags uninstall uninstall-am uninstall-configDATA \
- uninstall-hook uninstall-initdSCRIPTS uninstall-man \
- uninstall-man1
+ install-systemdsystemunitDATA installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+ uninstall-agentDATA uninstall-am uninstall-binPROGRAMS \
+ uninstall-binSCRIPTS uninstall-configDATA uninstall-hook \
+ uninstall-initdSCRIPTS uninstall-systemdsystemunitDATA
clean-local:
/bin/rm *.bb *.bbg *.da *.gcov || true
uninstall-hook:
- rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon
- rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper
+ rm -f $(DESTDIR)$(DBUS_DAEMONDIR)/dbus-daemon$(EXEEXT)
+ rm -f $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT)
install-data-hook:
- if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
- $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
- chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
- fi
- $(INSTALL_PROGRAM) dbus-daemon $(DESTDIR)$(DBUS_DAEMONDIR)
$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
$(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
$(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
$(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services
- $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1
- $(INSTALL_PROGRAM) dbus-daemon-launch-helper $(DESTDIR)$(libexecdir)
- if test `id -u` -eq 0; then \
- chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
- chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper; \
- else \
- echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \
- echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \
- fi
+@DBUS_UNIX_TRUE@ if test '!' -d $(DESTDIR)$(DBUS_DAEMONDIR); then \
+@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(DBUS_DAEMONDIR); \
+@DBUS_UNIX_TRUE@ chmod 755 $(DESTDIR)$(DBUS_DAEMONDIR); \
+@DBUS_UNIX_TRUE@ fi
+@DBUS_UNIX_TRUE@ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon$(EXEEXT) $(DESTDIR)$(DBUS_DAEMONDIR)
+@DBUS_UNIX_TRUE@ $(mkinstalldirs) $(DESTDIR)$(libexecdir)/dbus-1
+@DBUS_UNIX_TRUE@ if test -f dbus-daemon-launch-helper$(EXEEXT) ; then \
+@DBUS_UNIX_TRUE@ $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) dbus-daemon-launch-helper$(EXEEXT) $(DESTDIR)$(libexecdir); \
+@DBUS_UNIX_TRUE@ if test `id -u` -eq 0; then \
+@DBUS_UNIX_TRUE@ chown root:$(DBUS_USER) $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
+@DBUS_UNIX_TRUE@ chmod 4750 $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper$(EXEEXT); \
+@DBUS_UNIX_TRUE@ else \
+@DBUS_UNIX_TRUE@ echo "Not installing $(DESTDIR)$(libexecdir)/dbus-daemon-launch-helper binary setuid!"; \
+@DBUS_UNIX_TRUE@ echo "You'll need to manually set permissions to root:$(DBUS_USER) and permissions 4750"; \
+@DBUS_UNIX_TRUE@ fi \
+@DBUS_UNIX_TRUE@ fi
+# Install dbus.socket as default implementation of a D-Bus stack
+@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants
+@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/dbus.target.wants/dbus.socket
+# Unconditionally enable D-Bus on systemd installations
+@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants
+@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.socket $(DESTDIR)$(systemdsystemunitdir)/sockets.target.wants/dbus.socket
+@HAVE_SYSTEMD_TRUE@ $(mkinstalldirs) $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants
+@HAVE_SYSTEMD_TRUE@ $(LN_S) ../dbus.service $(DESTDIR)$(systemdsystemunitdir)/multi-user.target.wants/dbus.service
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/bus/activation.c b/bus/activation.c
index 2fcd85d2..ee5efa8e 100644
--- a/bus/activation.c
+++ b/bus/activation.c
@@ -6,7 +6,7 @@
* Copyright (C) 2004 Imendio HB
*
* 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
@@ -16,12 +16,14 @@
* 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 <config.h>
#include "activation.h"
#include "activation-exit-codes.h"
#include "desktop-file.h"
@@ -68,6 +70,7 @@ typedef struct
char *name;
char *exec;
char *user;
+ char *systemd_service;
unsigned long mtime;
BusServiceDirectory *s_dir;
char *filename;
@@ -89,6 +92,7 @@ typedef struct
BusActivation *activation;
char *service_name;
char *exec;
+ char *systemd_service;
DBusList *entries;
int n_entries;
DBusBabysitter *babysitter;
@@ -101,7 +105,7 @@ static BusServiceDirectory *
bus_service_directory_ref (BusServiceDirectory *dir)
{
_dbus_assert (dir->refcount);
-
+
dir->refcount++;
return dir;
@@ -111,8 +115,8 @@ bus_service_directory_ref (BusServiceDirectory *dir)
static void
bus_service_directory_unref (BusServiceDirectory *dir)
{
- if (dir == NULL)
- return;
+ if (dir == NULL)
+ return;
_dbus_assert (dir->refcount > 0);
dir->refcount--;
@@ -132,10 +136,10 @@ bus_pending_activation_entry_free (BusPendingActivationEntry *entry)
{
if (entry->activation_message)
dbus_message_unref (entry->activation_message);
-
+
if (entry->connection)
dbus_connection_unref (entry->connection);
-
+
dbus_free (entry);
}
@@ -149,7 +153,7 @@ handle_timeout_callback (DBusTimeout *timeout,
_dbus_wait_for_memory ();
}
-static BusPendingActivation *
+static BusPendingActivation *
bus_pending_activation_ref (BusPendingActivation *pending_activation)
{
_dbus_assert (pending_activation->refcount > 0);
@@ -162,7 +166,7 @@ static void
bus_pending_activation_unref (BusPendingActivation *pending_activation)
{
DBusList *link;
-
+
if (pending_activation == NULL) /* hash table requires this */
return;
@@ -171,7 +175,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation)
if (pending_activation->refcount > 0)
return;
-
+
if (pending_activation->timeout_added)
{
_dbus_loop_remove_timeout (bus_context_get_loop (pending_activation->activation->context),
@@ -182,7 +186,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation)
if (pending_activation->timeout)
_dbus_timeout_unref (pending_activation->timeout);
-
+
if (pending_activation->babysitter)
{
if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter,
@@ -190,12 +194,13 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation)
pending_activation->babysitter,
NULL))
_dbus_assert_not_reached ("setting watch functions to NULL failed");
-
+
_dbus_babysitter_unref (pending_activation->babysitter);
}
-
+
dbus_free (pending_activation->service_name);
dbus_free (pending_activation->exec);
+ dbus_free (pending_activation->systemd_service);
link = _dbus_list_get_first_link (&pending_activation->entries);
@@ -213,7 +218,7 @@ bus_pending_activation_unref (BusPendingActivation *pending_activation)
pending_activation->n_entries;
_dbus_assert (pending_activation->activation->n_pending_activations >= 0);
-
+
dbus_free (pending_activation);
}
@@ -231,17 +236,18 @@ bus_activation_entry_unref (BusActivationEntry *entry)
{
if (entry == NULL) /* hash table requires this */
return;
-
+
_dbus_assert (entry->refcount > 0);
entry->refcount--;
-
- if (entry->refcount > 0)
+
+ if (entry->refcount > 0)
return;
-
+
dbus_free (entry->name);
dbus_free (entry->exec);
dbus_free (entry->user);
dbus_free (entry->filename);
+ dbus_free (entry->systemd_service);
dbus_free (entry);
}
@@ -253,19 +259,21 @@ update_desktop_file_entry (BusActivation *activation,
BusDesktopFile *desktop_file,
DBusError *error)
{
- char *name, *exec, *user;
+ char *name, *exec, *user, *exec_tmp, *systemd_service;
BusActivationEntry *entry;
DBusStat stat_buf;
DBusString file_path;
DBusError tmp_error;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
name = NULL;
exec = NULL;
user = NULL;
+ exec_tmp = NULL;
entry = NULL;
-
+ systemd_service = NULL;
+
dbus_error_init (&tmp_error);
if (!_dbus_string_init (&file_path))
@@ -273,21 +281,21 @@ update_desktop_file_entry (BusActivation *activation,
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!_dbus_string_append (&file_path, s_dir->dir_c) ||
!_dbus_concat_dir_and_file (&file_path, filename))
{
BUS_SET_OOM (error);
goto failed;
}
-
- if (!_dbus_stat (&file_path, &stat_buf, NULL))
+
+ if (!_dbus_stat (&file_path, &stat_buf, NULL))
{
dbus_set_error (error, DBUS_ERROR_FAILED,
"Can't stat the service file\n");
goto failed;
}
-
+
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_NAME,
@@ -298,7 +306,7 @@ update_desktop_file_entry (BusActivation *activation,
if (!bus_desktop_file_get_string (desktop_file,
DBUS_SERVICE_SECTION,
DBUS_SERVICE_EXEC,
- &exec,
+ &exec_tmp,
error))
goto failed;
@@ -325,10 +333,37 @@ update_desktop_file_entry (BusActivation *activation,
}
_DBUS_ASSERT_ERROR_IS_CLEAR (&tmp_error);
- entry = _dbus_hash_table_lookup_string (s_dir->entries,
+ /* systemd service is never required */
+ if (!bus_desktop_file_get_string (desktop_file,
+ DBUS_SERVICE_SECTION,
+ DBUS_SERVICE_SYSTEMD_SERVICE,
+ &systemd_service, &tmp_error))
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (&tmp_error);
+ /* if we got OOM, then exit */
+ if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
+ {
+ dbus_move_error (&tmp_error, error);
+ goto failed;
+ }
+ else
+ {
+ /* if we have error because we didn't find anything then continue */
+ dbus_error_free (&tmp_error);
+ dbus_free (systemd_service);
+ systemd_service = NULL;
+ }
+ }
+
+ _DBUS_ASSERT_ERROR_IS_CLEAR (&tmp_error);
+
+ entry = _dbus_hash_table_lookup_string (s_dir->entries,
_dbus_string_get_const_data (filename));
+
+ exec = strdup (_dbus_replace_install_prefix (exec_tmp));
+
if (entry == NULL) /* New file */
- {
+ {
/* FIXME we need a better-defined algorithm for which service file to
* pick than "whichever one is first in the directory listing"
*/
@@ -338,19 +373,20 @@ update_desktop_file_entry (BusActivation *activation,
"Service %s already exists in activation entry list\n", name);
goto failed;
}
-
+
entry = dbus_new0 (BusActivationEntry, 1);
if (entry == NULL)
{
BUS_SET_OOM (error);
goto failed;
}
-
+
entry->name = name;
entry->exec = exec;
entry->user = user;
+ entry->systemd_service = systemd_service;
entry->refcount = 1;
-
+
entry->s_dir = s_dir;
entry->filename = _dbus_strdup (_dbus_string_get_const_data (filename));
if (!entry->filename)
@@ -364,7 +400,7 @@ update_desktop_file_entry (BusActivation *activation,
BUS_SET_OOM (error);
goto failed;
}
-
+
if (!_dbus_hash_table_insert_string (s_dir->entries, entry->filename, bus_activation_entry_ref (entry)))
{
/* Revert the insertion in the entries table */
@@ -386,10 +422,12 @@ update_desktop_file_entry (BusActivation *activation,
name, _dbus_string_get_const_data (&file_path));
goto failed;
}
-
+
dbus_free (entry->name);
dbus_free (entry->exec);
dbus_free (entry->user);
+ dbus_free (entry->systemd_service);
+ entry->systemd_service = systemd_service;
entry->name = name;
entry->exec = exec;
entry->user = user;
@@ -399,15 +437,15 @@ update_desktop_file_entry (BusActivation *activation,
BUS_SET_OOM (error);
/* Also remove path to entries hash since we want this in sync with
* the entries hash table */
- _dbus_hash_table_remove_string (entry->s_dir->entries,
+ _dbus_hash_table_remove_string (entry->s_dir->entries,
entry->filename);
bus_activation_entry_unref (entry);
return FALSE;
}
}
-
+
entry->mtime = stat_buf.mtime;
-
+
_dbus_string_free (&file_path);
bus_activation_entry_unref (entry);
@@ -415,13 +453,14 @@ update_desktop_file_entry (BusActivation *activation,
failed:
dbus_free (name);
- dbus_free (exec);
+ dbus_free (exec_tmp);
dbus_free (user);
+ dbus_free (systemd_service);
_dbus_string_free (&file_path);
if (entry)
bus_activation_entry_unref (entry);
-
+
return FALSE;
}
@@ -439,15 +478,15 @@ check_service_file (BusActivation *activation,
retval = TRUE;
tmp_entry = entry;
-
+
_dbus_string_init_const (&filename, entry->filename);
-
+
if (!_dbus_string_init (&file_path))
{
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!_dbus_string_append (&file_path, entry->s_dir->dir_c) ||
!_dbus_concat_dir_and_file (&file_path, &filename))
{
@@ -455,7 +494,7 @@ check_service_file (BusActivation *activation,
retval = FALSE;
goto out;
}
-
+
if (!_dbus_stat (&file_path, &stat_buf, NULL))
{
_dbus_verbose ("****** Can't stat file \"%s\", removing from cache\n",
@@ -468,20 +507,20 @@ check_service_file (BusActivation *activation,
retval = TRUE;
goto out;
}
- else
+ else
{
- if (stat_buf.mtime > entry->mtime)
+ if (stat_buf.mtime > entry->mtime)
{
BusDesktopFile *desktop_file;
DBusError tmp_error;
-
+
dbus_error_init (&tmp_error);
-
+
desktop_file = bus_desktop_file_load (&file_path, &tmp_error);
if (desktop_file == NULL)
{
_dbus_verbose ("Could not load %s: %s\n",
- _dbus_string_get_const_data (&file_path),
+ _dbus_string_get_const_data (&file_path),
tmp_error.message);
if (dbus_error_has_name (&tmp_error, DBUS_ERROR_NO_MEMORY))
{
@@ -493,10 +532,10 @@ check_service_file (BusActivation *activation,
retval = TRUE;
goto out;
}
-
- /* @todo We can return OOM or a DBUS_ERROR_FAILED error
+
+ /* @todo We can return OOM or a DBUS_ERROR_FAILED error
* Handle these both better
- */
+ */
if (!update_desktop_file_entry (activation, entry->s_dir, &filename, desktop_file, &tmp_error))
{
bus_desktop_file_free (desktop_file);
@@ -510,12 +549,12 @@ check_service_file (BusActivation *activation,
retval = TRUE;
goto out;
}
-
+
bus_desktop_file_free (desktop_file);
retval = TRUE;
}
}
-
+
out:
_dbus_string_free (&file_path);
@@ -540,14 +579,14 @@ update_directory (BusActivation *activation,
dbus_bool_t retval;
BusActivationEntry *entry;
DBusString full_path;
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
iter = NULL;
desktop_file = NULL;
-
+
_dbus_string_init_const (&dir, s_dir->dir_c);
-
+
if (!_dbus_string_init (&filename))
{
BUS_SET_OOM (error);
@@ -564,24 +603,24 @@ update_directory (BusActivation *activation,
retval = FALSE;
/* from this point it's safe to "goto out" */
-
+
iter = _dbus_directory_open (&dir, error);
if (iter == NULL)
{
_dbus_verbose ("Failed to open directory %s: %s\n",
- s_dir->dir_c,
+ s_dir->dir_c,
error ? error->message : "unknown");
goto out;
}
-
+
/* Now read the files */
dbus_error_init (&tmp_error);
while (_dbus_directory_get_next_file (iter, &filename, &tmp_error))
{
_dbus_assert (!dbus_error_is_set (&tmp_error));
-
+
_dbus_string_set_length (&full_path, 0);
-
+
if (!_dbus_string_ends_with_c_str (&filename, ".service"))
{
_dbus_verbose ("Skipping non-.service file %s\n",
@@ -590,21 +629,21 @@ update_directory (BusActivation *activation,
}
entry = _dbus_hash_table_lookup_string (s_dir->entries, _dbus_string_get_const_data (&filename));
- if (entry) /* Already has this service file in the cache */
+ if (entry) /* Already has this service file in the cache */
{
if (!check_service_file (activation, entry, NULL, error))
goto out;
continue;
}
-
+
if (!_dbus_string_append (&full_path, s_dir->dir_c) ||
!_dbus_concat_dir_and_file (&full_path, &filename))
{
BUS_SET_OOM (error);
goto out;
}
-
+
/* New file */
desktop_file = bus_desktop_file_load (&full_path, &tmp_error);
if (desktop_file == NULL)
@@ -618,19 +657,19 @@ update_directory (BusActivation *activation,
dbus_move_error (&tmp_error, error);
goto out;
}
-
+
dbus_error_free (&tmp_error);
continue;
}
- /* @todo We can return OOM or a DBUS_ERROR_FAILED error
+ /* @todo We can return OOM or a DBUS_ERROR_FAILED error
* Handle these both better
- */
+ */
if (!update_desktop_file_entry (activation, s_dir, &filename, desktop_file, &tmp_error))
{
bus_desktop_file_free (desktop_file);
desktop_file = NULL;
-
+
_dbus_verbose ("Could not add %s to activation entry list: %s\n",
_dbus_string_get_const_data (&full_path), tmp_error.message);
@@ -656,7 +695,7 @@ update_directory (BusActivation *activation,
dbus_move_error (&tmp_error, error);
goto out;
}
-
+
retval = TRUE;
out:
@@ -664,12 +703,12 @@ update_directory (BusActivation *activation,
_DBUS_ASSERT_ERROR_IS_SET (error);
else
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
if (iter != NULL)
_dbus_directory_close (iter);
_dbus_string_free (&filename);
_dbus_string_free (&full_path);
-
+
return retval;
}
@@ -872,7 +911,7 @@ bus_activation_new (BusContext *context,
(DBusFreeFunction) dbus_free,
(DBusFreeFunction) dbus_free);
- if (activation->environment == NULL)
+ if (activation->environment == NULL)
{
BUS_SET_OOM (error);
goto failed;
@@ -885,9 +924,9 @@ bus_activation_new (BusContext *context,
}
return activation;
-
+
failed:
- bus_activation_unref (activation);
+ bus_activation_unref (activation);
return NULL;
}
@@ -895,7 +934,7 @@ BusActivation *
bus_activation_ref (BusActivation *activation)
{
_dbus_assert (activation->refcount > 0);
-
+
activation->refcount += 1;
return activation;
@@ -910,13 +949,13 @@ bus_activation_unref (BusActivation *activation)
if (activation->refcount > 0)
return;
-
+
dbus_free (activation->server_address);
if (activation->entries)
_dbus_hash_table_unref (activation->entries);
if (activation->pending_activations)
_dbus_hash_table_unref (activation->pending_activations);
- if (activation->directories)
+ if (activation->directories)
_dbus_hash_table_unref (activation->directories);
if (activation->environment)
_dbus_hash_table_unref (activation->environment);
@@ -929,13 +968,13 @@ add_bus_environment (BusActivation *activation,
DBusError *error)
{
const char *type;
-
+
if (!bus_activation_set_environment_variable (activation,
"DBUS_STARTER_ADDRESS",
activation->server_address,
error))
return FALSE;
-
+
type = bus_context_get_type (activation->context);
if (type != NULL)
{
@@ -982,13 +1021,13 @@ restore_pending (void *data)
_dbus_verbose ("Restoring pending activation for service %s, has timeout = %d\n",
d->pending_activation->service_name,
d->pending_activation->timeout_added);
-
+
_dbus_hash_table_insert_string_preallocated (d->pending_activation->activation->pending_activations,
d->hash_entry,
d->pending_activation->service_name, d->pending_activation);
bus_pending_activation_ref (d->pending_activation);
-
+
d->hash_entry = NULL;
}
@@ -1002,7 +1041,7 @@ free_pending_restore_data (void *data)
d->hash_entry);
bus_pending_activation_unref (d->pending_activation);
-
+
dbus_free (d);
}
@@ -1015,12 +1054,12 @@ add_restore_pending_to_transaction (BusTransaction *transaction,
d = dbus_new (RestorePendingData, 1);
if (d == NULL)
return FALSE;
-
+
d->pending_activation = pending_activation;
d->hash_entry = _dbus_hash_table_preallocate_entry (d->pending_activation->activation->pending_activations);
-
+
bus_pending_activation_ref (d->pending_activation);
-
+
if (d->hash_entry == NULL ||
!bus_transaction_add_cancel_hook (transaction, restore_pending, d,
free_pending_restore_data))
@@ -1030,7 +1069,7 @@ add_restore_pending_to_transaction (BusTransaction *transaction,
}
_dbus_verbose ("Saved pending activation to be restored if the transaction fails\n");
-
+
return TRUE;
}
@@ -1045,7 +1084,7 @@ bus_activation_service_created (BusActivation *activation,
DBusList *link;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
/* Check if it's a pending activation */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
@@ -1057,14 +1096,14 @@ bus_activation_service_created (BusActivation *activation,
{
BusPendingActivationEntry *entry = link->data;
DBusList *next = _dbus_list_get_next_link (&pending_activation->entries, link);
-
+
if (dbus_connection_get_is_connected (entry->connection))
{
/* Only send activation replies to regular activation requests. */
if (!entry->auto_activation)
{
dbus_uint32_t result;
-
+
message = dbus_message_new_method_return (entry->activation_message);
if (!message)
{
@@ -1073,7 +1112,7 @@ bus_activation_service_created (BusActivation *activation,
}
result = DBUS_START_REPLY_SUCCESS;
-
+
if (!dbus_message_append_args (message,
DBUS_TYPE_UINT32, &result,
DBUS_TYPE_INVALID))
@@ -1082,18 +1121,18 @@ bus_activation_service_created (BusActivation *activation,
BUS_SET_OOM (error);
goto error;
}
-
+
if (!bus_transaction_send_from_driver (transaction, entry->connection, message))
{
dbus_message_unref (message);
BUS_SET_OOM (error);
goto error;
}
-
+
dbus_message_unref (message);
}
}
-
+
link = next;
}
@@ -1113,7 +1152,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation
DBusList *link;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
/* Check if it's a pending activation */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations,
bus_service_get_name (service));
@@ -1130,7 +1169,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation
if (entry->auto_activation && dbus_connection_get_is_connected (entry->connection))
{
DBusConnection *addressed_recipient;
-
+
addressed_recipient = bus_service_get_primary_owners_connection (service);
/* Resume dispatching where we left off in bus_dispatch() */
@@ -1150,7 +1189,7 @@ bus_activation_send_pending_auto_activation_messages (BusActivation *activation
BUS_SET_OOM (error);
goto error;
}
-
+
_dbus_hash_table_remove_string (activation->pending_activations, bus_service_get_name (service));
return TRUE;
@@ -1172,19 +1211,19 @@ try_send_activation_failure (BusPendingActivation *pending_activation,
BusActivation *activation;
DBusList *link;
BusTransaction *transaction;
-
+
activation = pending_activation->activation;
transaction = bus_transaction_new (activation->context);
if (transaction == NULL)
return FALSE;
-
+
link = _dbus_list_get_first_link (&pending_activation->entries);
while (link != NULL)
{
BusPendingActivationEntry *entry = link->data;
DBusList *next = _dbus_list_get_next_link (&pending_activation->entries, link);
-
+
if (dbus_connection_get_is_connected (entry->connection))
{
if (!bus_transaction_send_error_reply (transaction,
@@ -1193,12 +1232,12 @@ try_send_activation_failure (BusPendingActivation *pending_activation,
entry->activation_message))
goto error;
}
-
+
link = next;
}
bus_transaction_execute_and_free (transaction);
-
+
return TRUE;
error:
@@ -1385,7 +1424,7 @@ remove_babysitter_watch (DBusWatch *watch,
void *data)
{
BusPendingActivation *pending_activation = data;
-
+
_dbus_loop_remove_watch (bus_context_get_loop (pending_activation->activation->context),
watch, babysitter_watch_callback, pending_activation);
}
@@ -1395,12 +1434,12 @@ pending_activation_timed_out (void *data)
{
BusPendingActivation *pending_activation = data;
DBusError error;
-
+
/* Kill the spawned process, since it sucks
* (not sure this is what we want to do, but
* may as well try it for now)
*/
- if (pending_activation->babysitter)
+ if (pending_activation->babysitter)
_dbus_babysitter_kill_child (pending_activation->babysitter);
dbus_error_init (&error);
@@ -1426,7 +1465,7 @@ cancel_pending (void *data)
if (pending_activation->babysitter)
_dbus_babysitter_kill_child (pending_activation->babysitter);
-
+
_dbus_hash_table_remove_string (pending_activation->activation->pending_activations,
pending_activation->service_name);
}
@@ -1435,31 +1474,31 @@ static void
free_pending_cancel_data (void *data)
{
BusPendingActivation *pending_activation = data;
-
+
bus_pending_activation_unref (pending_activation);
}
static dbus_bool_t
add_cancel_pending_to_transaction (BusTransaction *transaction,
BusPendingActivation *pending_activation)
-{
+{
if (!bus_transaction_add_cancel_hook (transaction, cancel_pending,
pending_activation,
free_pending_cancel_data))
return FALSE;
- bus_pending_activation_ref (pending_activation);
-
+ bus_pending_activation_ref (pending_activation);
+
_dbus_verbose ("Saved pending activation to be canceled if the transaction fails\n");
-
+
return TRUE;
}
-static dbus_bool_t
+static dbus_bool_t
update_service_cache (BusActivation *activation, DBusError *error)
{
DBusHashIter iter;
-
+
_dbus_hash_iter_init (activation->directories, &iter);
while (_dbus_hash_iter_next (&iter))
{
@@ -1481,37 +1520,37 @@ update_service_cache (BusActivation *activation, DBusError *error)
continue;
}
}
-
+
return TRUE;
}
static BusActivationEntry *
-activation_find_entry (BusActivation *activation,
+activation_find_entry (BusActivation *activation,
const char *service_name,
DBusError *error)
{
BusActivationEntry *entry;
-
+
entry = _dbus_hash_table_lookup_string (activation->entries, service_name);
if (!entry)
- {
- if (!update_service_cache (activation, error))
+ {
+ if (!update_service_cache (activation, error))
return NULL;
entry = _dbus_hash_table_lookup_string (activation->entries,
service_name);
}
- else
+ else
{
BusActivationEntry *updated_entry;
- if (!check_service_file (activation, entry, &updated_entry, error))
+ if (!check_service_file (activation, entry, &updated_entry, error))
return NULL;
entry = updated_entry;
}
- if (!entry)
+ if (!entry)
{
dbus_set_error (error, DBUS_ERROR_SERVICE_UNKNOWN,
"The name %s was not provided by any .service files",
@@ -1633,7 +1672,7 @@ bus_activation_activate_service (BusActivation *activation,
DBusHashIter iter;
dbus_bool_t activated;
DBusString command;
-
+
activated = TRUE;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -1648,7 +1687,7 @@ bus_activation_activate_service (BusActivation *activation,
}
entry = activation_find_entry (activation, service_name, error);
- if (!entry)
+ if (!entry)
return FALSE;
/* Bypass the registry lookup if we're auto-activating, bus_dispatch would not
@@ -1661,9 +1700,9 @@ bus_activation_activate_service (BusActivation *activation,
if (bus_registry_lookup (bus_context_get_registry (activation->context), &service_str) != NULL)
{
dbus_uint32_t result;
-
+
_dbus_verbose ("Service \"%s\" is already active\n", service_name);
-
+
message = dbus_message_new_method_return (activation_message);
if (!message)
@@ -1674,7 +1713,7 @@ bus_activation_activate_service (BusActivation *activation,
}
result = DBUS_START_REPLY_ALREADY_RUNNING;
-
+
if (!dbus_message_append_args (message,
DBUS_TYPE_UINT32, &result,
DBUS_TYPE_INVALID))
@@ -1696,7 +1735,7 @@ bus_activation_activate_service (BusActivation *activation,
return retval;
}
}
-
+
pending_activation_entry = dbus_new0 (BusPendingActivationEntry, 1);
if (!pending_activation_entry)
{
@@ -1711,7 +1750,7 @@ bus_activation_activate_service (BusActivation *activation,
dbus_message_ref (activation_message);
pending_activation_entry->connection = connection;
dbus_connection_ref (connection);
-
+
/* Check if the service is being activated */
pending_activation = _dbus_hash_table_lookup_string (activation->pending_activations, service_name);
if (pending_activation)
@@ -1719,7 +1758,7 @@ bus_activation_activate_service (BusActivation *activation,
if (!_dbus_list_append (&pending_activation->entries, pending_activation_entry))
{
_dbus_verbose ("Failed to append a new entry to pending activation\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_entry_free (pending_activation_entry);
return FALSE;
@@ -1734,23 +1773,23 @@ bus_activation_activate_service (BusActivation *activation,
if (!pending_activation)
{
_dbus_verbose ("Failed to create pending activation\n");
-
+
BUS_SET_OOM (error);
- bus_pending_activation_entry_free (pending_activation_entry);
+ bus_pending_activation_entry_free (pending_activation_entry);
return FALSE;
}
pending_activation->activation = activation;
pending_activation->refcount = 1;
-
+
pending_activation->service_name = _dbus_strdup (service_name);
if (!pending_activation->service_name)
{
_dbus_verbose ("Failed to copy service name for pending activation\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_unref (pending_activation);
- bus_pending_activation_entry_free (pending_activation_entry);
+ bus_pending_activation_entry_free (pending_activation_entry);
return FALSE;
}
@@ -1764,6 +1803,19 @@ bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
+ if (entry->systemd_service)
+ {
+ pending_activation->systemd_service = _dbus_strdup (entry->systemd_service);
+ if (!pending_activation->systemd_service)
+ {
+ _dbus_verbose ("Failed to copy systemd service for pending activation\n");
+ BUS_SET_OOM (error);
+ bus_pending_activation_unref (pending_activation);
+ bus_pending_activation_entry_free (pending_activation_entry);
+ return FALSE;
+ }
+ }
+
pending_activation->timeout =
_dbus_timeout_new (bus_context_get_activation_timeout (activation->context),
pending_activation_timed_out,
@@ -1772,7 +1824,7 @@ bus_activation_activate_service (BusActivation *activation,
if (!pending_activation->timeout)
{
_dbus_verbose ("Failed to create timeout for pending activation\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_unref (pending_activation);
bus_pending_activation_entry_free (pending_activation_entry);
@@ -1786,53 +1838,53 @@ bus_activation_activate_service (BusActivation *activation,
NULL))
{
_dbus_verbose ("Failed to add timeout for pending activation\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_unref (pending_activation);
- bus_pending_activation_entry_free (pending_activation_entry);
+ bus_pending_activation_entry_free (pending_activation_entry);
return FALSE;
}
pending_activation->timeout_added = TRUE;
-
+
if (!_dbus_list_append (&pending_activation->entries, pending_activation_entry))
{
_dbus_verbose ("Failed to add entry to just-created pending activation\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_unref (pending_activation);
- bus_pending_activation_entry_free (pending_activation_entry);
+ bus_pending_activation_entry_free (pending_activation_entry);
return FALSE;
}
pending_activation->n_entries += 1;
pending_activation->activation->n_pending_activations += 1;
-
+
activated = FALSE;
_dbus_hash_iter_init (activation->pending_activations, &iter);
while (_dbus_hash_iter_next (&iter))
{
BusPendingActivation *p = _dbus_hash_iter_get_value (&iter);
-
- if (strcmp (p->exec, entry->exec) == 0)
+
+ if (strcmp (p->exec, entry->exec) == 0)
{
activated = TRUE;
break;
}
}
-
+
if (!_dbus_hash_table_insert_string (activation->pending_activations,
pending_activation->service_name,
pending_activation))
{
_dbus_verbose ("Failed to put pending activation in hash table\n");
-
+
BUS_SET_OOM (error);
bus_pending_activation_unref (pending_activation);
return FALSE;
}
}
-
+
if (!add_cancel_pending_to_transaction (transaction, pending_activation))
{
_dbus_verbose ("Failed to add pending activation cancel hook to transaction\n");
@@ -1842,10 +1894,99 @@ bus_activation_activate_service (BusActivation *activation,
return FALSE;
}
-
+
if (activated)
return TRUE;
+ if (bus_context_get_systemd_activation (activation->context))
+ {
+ if (strcmp (service_name, "org.freedesktop.systemd1") == 0)
+ /* systemd itself is missing apparently. That can happen
+ only during early startup. Let's just wait until systemd
+ connects to us and do nothing. */
+ return TRUE;
+
+ if (entry->systemd_service)
+ {
+ BusTransaction *activation_transaction;
+ DBusString service_string;
+ BusService *service;
+ BusRegistry *registry;
+
+ /* OK, we have a systemd service configured for this entry,
+ hence let's enqueue an activation request message. This
+ is implemented as a directed signal, not a method call,
+ for three reasons: 1) we don't expect a response on
+ success, where we just expect a name appearing on the
+ bus; 2) at this time the systemd service might not yet
+ have connected, so we wouldn't know the message serial at
+ this point to set up a pending call; 3) it is ugly if the
+ bus suddenly becomes the caller of a remote method. */
+
+ message = dbus_message_new_signal (DBUS_PATH_DBUS,
+ "org.freedesktop.systemd1.Activator",
+ "ActivationRequest");
+ if (!message)
+ {
+ _dbus_verbose ("No memory to create activation message\n");
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
+
+ if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS) ||
+ !dbus_message_set_destination (message, "org.freedesktop.systemd1") ||
+ !dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &entry->systemd_service,
+ DBUS_TYPE_INVALID))
+ {
+ _dbus_verbose ("No memory to set args of activation message\n");
+ dbus_message_unref (message);
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
+
+ /* Create our transaction */
+ activation_transaction = bus_transaction_new (activation->context);
+ if (activation_transaction == NULL)
+ {
+ _dbus_verbose ("No memory to create activation transaction\n");
+ dbus_message_unref (message);
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
+
+ /* Check whether systemd is already connected */
+ registry = bus_connection_get_registry (connection);
+ _dbus_string_init_const (&service_string, "org.freedesktop.systemd1");
+ service = bus_registry_lookup (registry, &service_string);
+
+ if (service != NULL)
+ /* Wonderful, systemd is connected, let's just send the msg */
+ retval = bus_dispatch_matches (activation_transaction, NULL, bus_service_get_primary_owners_connection (service),
+ message, error);
+ else
+ /* systemd is not around, let's "activate" it. */
+ retval = bus_activation_activate_service (activation, connection, activation_transaction, TRUE,
+ message, "org.freedesktop.systemd1", error);
+
+ dbus_message_unref (message);
+
+ if (!retval)
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ _dbus_verbose ("failed to send activation message: %s\n", error->name);
+ bus_transaction_cancel_and_free (activation_transaction);
+ return FALSE;
+ }
+
+ bus_transaction_execute_and_free (activation_transaction);
+ return TRUE;
+ }
+
+ /* OK, we have no configured systemd service, hence let's
+ proceed with traditional activation. */
+ }
+
/* use command as system and session different */
if (!_dbus_string_init (&command))
{
@@ -1901,7 +2042,7 @@ bus_activation_activate_service (BusActivation *activation,
{
_dbus_verbose ("Failed to parse command line: %s\n", entry->exec);
_DBUS_ASSERT_ERROR_IS_SET (error);
-
+
_dbus_hash_table_remove_string (activation->pending_activations,
pending_activation->service_name);
@@ -1929,7 +2070,7 @@ bus_activation_activate_service (BusActivation *activation,
_dbus_verbose ("Spawning %s ...\n", argv[0]);
if (!_dbus_spawn_async_with_babysitter (&pending_activation->babysitter, argv,
envp,
- NULL, activation,
+ NULL, activation,
error))
{
_dbus_verbose ("Failed to spawn child\n");
@@ -1944,7 +2085,7 @@ bus_activation_activate_service (BusActivation *activation,
envp = NULL;
_dbus_assert (pending_activation->babysitter != NULL);
-
+
if (!_dbus_babysitter_set_watch_functions (pending_activation->babysitter,
add_babysitter_watch,
remove_babysitter_watch,
@@ -1956,7 +2097,7 @@ bus_activation_activate_service (BusActivation *activation,
_dbus_verbose ("Failed to set babysitter watch functions\n");
return FALSE;
}
-
+
return TRUE;
}
@@ -2003,7 +2144,47 @@ bus_activation_list_services (BusActivation *activation,
return FALSE;
}
-
+
+dbus_bool_t
+dbus_activation_systemd_failure (BusActivation *activation,
+ DBusMessage *message)
+{
+ DBusError error;
+ const char *code, *str, *unit = NULL;
+
+ dbus_error_init(&error);
+
+ /* This is called whenever the systemd activator sent us a
+ response. We'll invalidate all pending activations that match the
+ unit name. */
+
+ if (dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &unit,
+ DBUS_TYPE_STRING, &code,
+ DBUS_TYPE_STRING, &str,
+ DBUS_TYPE_INVALID))
+ dbus_set_error(&error, code, str);
+
+ if (unit)
+ {
+ DBusHashIter iter;
+
+ _dbus_hash_iter_init (activation->pending_activations,
+ &iter);
+
+ while (_dbus_hash_iter_next (&iter))
+ {
+ BusPendingActivation *p = _dbus_hash_iter_get_value (&iter);
+
+ if (p->systemd_service && strcmp (p->systemd_service, unit) == 0)
+ pending_activation_failed(p, &error);
+ }
+ }
+
+ dbus_error_free(&error);
+
+ return TRUE;
+}
#ifdef DBUS_BUILD_TESTS
@@ -2019,8 +2200,8 @@ bus_activation_list_services (BusActivation *activation,
static dbus_bool_t
test_create_service_file (DBusString *dir,
- const char *filename,
- const char *name,
+ const char *filename,
+ const char *name,
const char *exec)
{
DBusString file_name, full_path;
@@ -2039,7 +2220,7 @@ test_create_service_file (DBusString *dir,
ret_val = FALSE;
goto out;
}
-
+
file = fopen (_dbus_string_get_const_data (&full_path), "w");
if (!file)
{
@@ -2060,9 +2241,9 @@ test_remove_service_file (DBusString *dir, const char *filename)
{
DBusString file_name, full_path;
dbus_bool_t ret_val;
-
+
ret_val = TRUE;
-
+
_dbus_string_init_const (&file_name, filename);
if (!_dbus_string_init (&full_path))
@@ -2092,9 +2273,9 @@ test_remove_directory (DBusString *dir)
DBusDirIter *iter;
DBusString filename, full_path;
dbus_bool_t ret_val;
-
+
ret_val = TRUE;
-
+
if (!_dbus_string_init (&filename))
return FALSE;
@@ -2103,15 +2284,15 @@ test_remove_directory (DBusString *dir)
_dbus_string_free (&filename);
return FALSE;
}
-
+
iter = _dbus_directory_open (dir, NULL);
if (iter == NULL)
{
ret_val = FALSE;
goto out;
}
-
- while (_dbus_directory_get_next_file (iter, &filename, NULL))
+
+ while (_dbus_directory_get_next_file (iter, &filename, NULL))
{
if (!test_remove_service_file (dir, _dbus_string_get_const_data (&filename)))
{
@@ -2138,13 +2319,13 @@ static dbus_bool_t
init_service_reload_test (DBusString *dir)
{
DBusStat stat_buf;
-
+
if (!_dbus_stat (dir, &stat_buf, NULL))
{
if (!_dbus_create_directory (dir, NULL))
return FALSE;
}
- else
+ else
{
if (!test_remove_directory (dir))
return FALSE;
@@ -2169,7 +2350,7 @@ cleanup_service_reload_test (DBusString *dir)
return TRUE;
}
-typedef struct
+typedef struct
{
BusActivation *activation;
const char *service_name;
@@ -2183,16 +2364,16 @@ check_func (void *data)
BusActivationEntry *entry;
DBusError error;
dbus_bool_t ret_val;
-
+
ret_val = TRUE;
d = data;
-
+
dbus_error_init (&error);
-
+
entry = activation_find_entry (d->activation, d->service_name, &error);
if (entry == NULL)
{
- if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY))
+ if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY))
{
ret_val = TRUE;
}
@@ -2201,10 +2382,10 @@ check_func (void *data)
if (d->expecting_find)
ret_val = FALSE;
}
-
+
dbus_error_free (&error);
}
- else
+ else
{
if (!d->expecting_find)
ret_val = FALSE;
@@ -2223,7 +2404,7 @@ do_test (const char *description, dbus_bool_t oom_test, CheckData *data)
else
err = !check_func (data);
- if (err)
+ if (err)
_dbus_assert_not_reached ("Test failed");
return TRUE;
@@ -2236,19 +2417,19 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test)
DBusString address;
DBusList *directories;
CheckData d;
-
+
directories = NULL;
_dbus_string_init_const (&address, "");
-
+
if (!_dbus_list_append (&directories, _dbus_string_get_data (dir)))
- return FALSE;
+ return FALSE;
activation = bus_activation_new (NULL, &address, &directories, NULL);
if (!activation)
return FALSE;
d.activation = activation;
-
+
/* Check for existing service file */
d.expecting_find = TRUE;
d.service_name = SERVICE_NAME_1;
@@ -2269,10 +2450,10 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test)
d.expecting_find = TRUE;
d.service_name = SERVICE_NAME_2;
-
+
if (!do_test ("Added service file", oom_test, &d))
return FALSE;
-
+
/* Check for removed service file */
if (!test_remove_service_file (dir, SERVICE_FILE_2))
return FALSE;
@@ -2282,9 +2463,9 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test)
if (!do_test ("Removed service file", oom_test, &d))
return FALSE;
-
+
/* Check for updated service file */
-
+
_dbus_sleep_milliseconds (1000); /* Sleep a second to make sure the mtime is updated */
if (!test_create_service_file (dir, SERVICE_FILE_1, SERVICE_NAME_3, "exec-3"))
@@ -2300,7 +2481,7 @@ do_service_reload_test (DBusString *dir, dbus_bool_t oom_test)
d.service_name = SERVICE_NAME_1;
if (!do_test ("Updated service file, part 2", oom_test, &d))
- return FALSE;
+ return FALSE;
bus_activation_unref (activation);
_dbus_list_clear (&directories);
@@ -2315,36 +2496,36 @@ bus_activation_service_reload_test (const DBusString *test_data_dir)
if (!_dbus_string_init (&directory))
return FALSE;
-
+
if (!_dbus_string_append (&directory, _dbus_get_tmpdir()))
return FALSE;
-
+
if (!_dbus_string_append (&directory, "/dbus-reload-test-") ||
!_dbus_generate_random_ascii (&directory, 6))
{
return FALSE;
}
-
+
/* Do normal tests */
if (!init_service_reload_test (&directory))
_dbus_assert_not_reached ("could not initiate service reload test");
-
+
if (!do_service_reload_test (&directory, FALSE))
; /* Do nothing? */
-
+
/* Do OOM tests */
if (!init_service_reload_test (&directory))
_dbus_assert_not_reached ("could not initiate service reload test");
-
+
if (!do_service_reload_test (&directory, TRUE))
; /* Do nothing? */
-
+
/* Cleanup test directory */
if (!cleanup_service_reload_test (&directory))
return FALSE;
-
+
_dbus_string_free (&directory);
-
+
return TRUE;
}
diff --git a/bus/activation.h b/bus/activation.h
index 03bfed28..97f25b1f 100644
--- a/bus/activation.h
+++ b/bus/activation.h
@@ -4,7 +4,7 @@
* Copyright (C) 2003 CodeFactory AB
*
* 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
@@ -14,7 +14,7 @@
* 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
@@ -57,6 +57,8 @@ dbus_bool_t bus_activation_service_created (BusActivation *activation,
dbus_bool_t bus_activation_list_services (BusActivation *registry,
char ***listp,
int *array_len);
+dbus_bool_t dbus_activation_systemd_failure (BusActivation *activation,
+ DBusMessage *message);
dbus_bool_t bus_activation_send_pending_auto_activation_messages (BusActivation *activation,
BusService *service,
@@ -64,5 +66,4 @@ dbus_bool_t bus_activation_send_pending_auto_activation_messages (BusActivati
DBusError *error);
-
#endif /* BUS_ACTIVATION_H */
diff --git a/bus/bus.c b/bus/bus.c
index fd8a8724..e8276af4 100644
--- a/bus/bus.c
+++ b/bus/bus.c
@@ -4,7 +4,7 @@
* Copyright (C) 2003, 2004 Red Hat, Inc.
*
* 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
@@ -14,13 +14,14 @@
* 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 <config.h>
#include "bus.h"
#include "activation.h"
#include "connection.h"
@@ -35,6 +36,9 @@
#include <dbus/dbus-hash.h>
#include <dbus/dbus-credentials.h>
#include <dbus/dbus-internals.h>
+#ifdef DBUS_CYGWIN
+#include <signal.h>
+#endif
struct BusContext
{
@@ -58,6 +62,8 @@ struct BusContext
unsigned int fork : 1;
unsigned int syslog : 1;
unsigned int keep_umask : 1;
+ unsigned int allow_anonymous : 1;
+ unsigned int systemd_activation : 1;
};
static dbus_int32_t server_data_slot = -1;
@@ -74,7 +80,7 @@ server_get_context (DBusServer *server)
{
BusContext *context;
BusServerData *bd;
-
+
if (!dbus_server_allocate_data_slot (&server_data_slot))
return NULL;
@@ -101,7 +107,7 @@ server_watch_callback (DBusWatch *watch,
* if the code in activation.c for the babysitter
* watch handler is fixed.
*/
-
+
return dbus_watch_handle (watch, condition);
}
@@ -111,9 +117,9 @@ add_server_watch (DBusWatch *watch,
{
DBusServer *server = data;
BusContext *context;
-
+
context = server_get_context (server);
-
+
return _dbus_loop_add_watch (context->loop,
watch, server_watch_callback, server,
NULL);
@@ -125,9 +131,9 @@ remove_server_watch (DBusWatch *watch,
{
DBusServer *server = data;
BusContext *context;
-
+
context = server_get_context (server);
-
+
_dbus_loop_remove_watch (context->loop,
watch, server_watch_callback, server);
}
@@ -147,7 +153,7 @@ add_server_timeout (DBusTimeout *timeout,
{
DBusServer *server = data;
BusContext *context;
-
+
context = server_get_context (server);
return _dbus_loop_add_timeout (context->loop,
@@ -160,9 +166,9 @@ remove_server_timeout (DBusTimeout *timeout,
{
DBusServer *server = data;
BusContext *context;
-
+
context = server_get_context (server);
-
+
_dbus_loop_remove_timeout (context->loop,
timeout, server_timeout_callback, server);
}
@@ -173,7 +179,7 @@ new_connection_callback (DBusServer *server,
void *data)
{
BusContext *context = data;
-
+
if (!bus_connections_setup_connection (context->connections, new_connection))
{
_dbus_verbose ("No memory to setup new connection\n");
@@ -191,15 +197,24 @@ new_connection_callback (DBusServer *server,
dbus_connection_set_max_message_size (new_connection,
context->limits.max_message_size);
-
+
+ dbus_connection_set_max_received_unix_fds (new_connection,
+ context->limits.max_incoming_unix_fds);
+
+ dbus_connection_set_max_message_unix_fds (new_connection,
+ context->limits.max_message_unix_fds);
+
+ dbus_connection_set_allow_anonymous (new_connection,
+ context->allow_anonymous);
+
/* on OOM, we won't have ref'd the connection so it will die. */
}
static void
free_server_data (void *data)
{
- BusServerData *bd = data;
-
+ BusServerData *bd = data;
+
dbus_free (bd);
}
@@ -222,17 +237,17 @@ setup_server (BusContext *context,
}
bd->context = context;
-
+
if (!dbus_server_set_auth_mechanisms (server, (const char**) auth_mechanisms))
{
BUS_SET_OOM (error);
return FALSE;
}
-
+
dbus_server_set_new_connection_function (server,
new_connection_callback,
context, NULL);
-
+
if (!dbus_server_set_watch_functions (server,
add_server_watch,
remove_server_watch,
@@ -253,7 +268,7 @@ setup_server (BusContext *context,
BUS_SET_OOM (error);
return FALSE;
}
-
+
return TRUE;
}
@@ -262,9 +277,11 @@ setup_server (BusContext *context,
* when config files are reloaded.
*/
static dbus_bool_t
-process_config_first_time_only (BusContext *context,
- BusConfigParser *parser,
- DBusError *error)
+process_config_first_time_only (BusContext *context,
+ BusConfigParser *parser,
+ const DBusString *address,
+ dbus_bool_t systemd_activation,
+ DBusError *error)
{
DBusString log_prefix;
DBusList *link;
@@ -280,6 +297,8 @@ process_config_first_time_only (BusContext *context,
retval = FALSE;
auth_mechanisms = NULL;
+ context->systemd_activation = systemd_activation;
+
/* Check for an existing pid file. Of course this is a race;
* we'd have to use fcntl() locks on the pid file to
* avoid that. But we want to check for the pid file
@@ -290,15 +309,34 @@ process_config_first_time_only (BusContext *context,
{
DBusString u;
DBusStat stbuf;
-
+
_dbus_string_init_const (&u, pidfile);
if (_dbus_stat (&u, &stbuf, NULL))
{
+#ifdef DBUS_CYGWIN
+ DBusString p;
+ long /* int */ pid;
+
+ _dbus_string_init (&p);
+ _dbus_file_get_contents(&p, &u, NULL);
+ _dbus_string_parse_int(&p, 0, &pid, NULL);
+ _dbus_string_free(&p);
+
+ if ((kill((int)pid, 0))) {
+ dbus_set_error(NULL, DBUS_ERROR_FILE_EXISTS,
+ "pid %ld not running, removing stale pid file\n",
+ pid);
+ _dbus_delete_file(&u, NULL);
+ } else {
+#endif
dbus_set_error (error, DBUS_ERROR_FAILED,
"The pid file \"%s\" exists, if the message bus is not running, remove this file",
pidfile);
goto failed;
+#ifdef DBUS_CYGWIN
+ }
+#endif
}
}
@@ -374,35 +412,58 @@ process_config_first_time_only (BusContext *context,
}
/* Listen on our addresses */
-
- addresses = bus_config_parser_get_addresses (parser);
-
- link = _dbus_list_get_first_link (addresses);
- while (link != NULL)
+
+ if (address)
{
DBusServer *server;
-
- server = dbus_server_listen (link->data, error);
+
+ server = dbus_server_listen (_dbus_string_get_const_data(address), error);
if (server == NULL)
- {
- _DBUS_ASSERT_ERROR_IS_SET (error);
- goto failed;
- }
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ goto failed;
+ }
else if (!setup_server (context, server, auth_mechanisms, error))
- {
- _DBUS_ASSERT_ERROR_IS_SET (error);
- goto failed;
- }
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ goto failed;
+ }
if (!_dbus_list_append (&context->servers, server))
goto oom;
+ }
+ else
+ {
+ addresses = bus_config_parser_get_addresses (parser);
- link = _dbus_list_get_next_link (addresses, link);
+ link = _dbus_list_get_first_link (addresses);
+ while (link != NULL)
+ {
+ DBusServer *server;
+
+ server = dbus_server_listen (link->data, error);
+ if (server == NULL)
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ goto failed;
+ }
+ else if (!setup_server (context, server, auth_mechanisms, error))
+ {
+ _DBUS_ASSERT_ERROR_IS_SET (error);
+ goto failed;
+ }
+
+ if (!_dbus_list_append (&context->servers, server))
+ goto oom;
+
+ link = _dbus_list_get_next_link (addresses, link);
+ }
}
context->fork = bus_config_parser_get_fork (parser);
context->syslog = bus_config_parser_get_syslog (parser);
context->keep_umask = bus_config_parser_get_keep_umask (parser);
+ context->allow_anonymous = bus_config_parser_get_allow_anonymous (parser);
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
retval = TRUE;
@@ -436,7 +497,7 @@ process_config_every_time (BusContext *context,
char *addr;
const char *servicehelper;
char *s;
-
+
dbus_bool_t retval;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -541,7 +602,7 @@ process_config_every_time (BusContext *context,
failed:
_dbus_string_free (&full_address);
-
+
if (addr)
dbus_free (addr);
@@ -616,6 +677,8 @@ bus_context_new (const DBusString *config_file,
ForceForkSetting force_fork,
DBusPipe *print_addr_pipe,
DBusPipe *print_pid_pipe,
+ const DBusString *address,
+ dbus_bool_t systemd_activation,
DBusError *error)
{
DBusString log_prefix;
@@ -669,8 +732,8 @@ bus_context_new (const DBusString *config_file,
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
}
-
- if (!process_config_first_time_only (context, parser, error))
+
+ if (!process_config_first_time_only (context, parser, address, systemd_activation, error))
{
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
@@ -680,7 +743,7 @@ bus_context_new (const DBusString *config_file,
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
}
-
+
/* we need another ref of the server data slot for the context
* to own
*/
@@ -697,14 +760,14 @@ bus_context_new (const DBusString *config_file,
DBusString addr;
const char *a = bus_context_get_address (context);
int bytes;
-
+
_dbus_assert (a != NULL);
if (!_dbus_string_init (&addr))
{
BUS_SET_OOM (error);
goto failed;
}
-
+
if (!_dbus_string_append (&addr, a) ||
!_dbus_string_append (&addr, "\n"))
{
@@ -728,10 +791,10 @@ bus_context_new (const DBusString *config_file,
if (!_dbus_pipe_is_stdout_or_stderr (print_addr_pipe))
_dbus_pipe_close (print_addr_pipe, NULL);
-
+
_dbus_string_free (&addr);
}
-
+
context->connections = bus_connections_new (context);
if (context->connections == NULL)
{
@@ -768,8 +831,8 @@ bus_context_new (const DBusString *config_file,
if ((force_fork != FORK_NEVER && context->fork) || force_fork == FORK_ALWAYS)
{
_dbus_verbose ("Forking and becoming daemon\n");
-
- if (!_dbus_become_daemon (context->pidfile ? &u : NULL,
+
+ if (!_dbus_become_daemon (context->pidfile ? &u : NULL,
print_pid_pipe,
error,
context->keep_umask))
@@ -781,7 +844,7 @@ bus_context_new (const DBusString *config_file,
else
{
_dbus_verbose ("Fork not requested\n");
-
+
/* Need to write PID file and to PID pipe for ourselves,
* not for the child process. This is a no-op if the pidfile
* is NULL and print_pid_pipe is NULL.
@@ -817,7 +880,7 @@ bus_context_new (const DBusString *config_file,
bus_config_parser_unref (parser);
parser = NULL;
}
-
+
/* Here we change our credentials if required,
* as soon as we've set up our sockets and pidfile
*/
@@ -836,10 +899,10 @@ bus_context_new (const DBusString *config_file,
}
dbus_server_free_data_slot (&server_data_slot);
-
+
return context;
-
- failed:
+
+ failed:
if (parser != NULL)
bus_config_parser_unref (parser);
if (context != NULL)
@@ -847,7 +910,7 @@ bus_context_new (const DBusString *config_file,
if (server_data_slot >= 0)
dbus_server_free_data_slot (&server_data_slot);
-
+
return NULL;
}
@@ -877,7 +940,7 @@ bus_context_reload_config (BusContext *context,
_DBUS_ASSERT_ERROR_IS_SET (error);
goto failed;
}
-
+
if (!process_config_every_time (context, parser, TRUE, error))
{
_DBUS_ASSERT_ERROR_IS_SET (error);
@@ -906,19 +969,19 @@ shutdown_server (BusContext *context,
if (server == NULL ||
!dbus_server_get_is_connected (server))
return;
-
+
if (!dbus_server_set_watch_functions (server,
NULL, NULL, NULL,
context,
NULL))
_dbus_assert_not_reached ("setting watch functions to NULL failed");
-
+
if (!dbus_server_set_timeout_functions (server,
NULL, NULL, NULL,
context,
NULL))
_dbus_assert_not_reached ("setting timeout functions to NULL failed");
-
+
dbus_server_disconnect (server);
}
@@ -954,9 +1017,9 @@ bus_context_unref (BusContext *context)
if (context->refcount == 0)
{
DBusList *link;
-
+
_dbus_verbose ("Finalizing bus context %p\n", context);
-
+
bus_context_shutdown (context);
if (context->connections)
@@ -964,13 +1027,13 @@ bus_context_unref (BusContext *context)
bus_connections_unref (context->connections);
context->connections = NULL;
}
-
+
if (context->registry)
{
bus_registry_unref (context->registry);
context->registry = NULL;
}
-
+
if (context->activation)
{
bus_activation_unref (context->activation);
@@ -981,7 +1044,7 @@ bus_context_unref (BusContext *context)
while (link != NULL)
{
dbus_server_unref (link->data);
-
+
link = _dbus_list_get_next_link (&context->servers, link);
}
_dbus_list_clear (&context->servers);
@@ -991,7 +1054,7 @@ bus_context_unref (BusContext *context)
bus_policy_unref (context->policy);
context->policy = NULL;
}
-
+
if (context->loop)
{
_dbus_loop_unref (context->loop);
@@ -1021,7 +1084,7 @@ bus_context_unref (BusContext *context)
*/
_dbus_delete_file (&u, NULL);
- dbus_free (context->pidfile);
+ dbus_free (context->pidfile);
}
dbus_free (context);
@@ -1048,6 +1111,12 @@ bus_context_get_servicehelper (BusContext *context)
return context->servicehelper;
}
+dbus_bool_t
+bus_context_get_systemd_activation (BusContext *context)
+{
+ return context->systemd_activation;
+}
+
BusRegistry*
bus_context_get_registry (BusContext *context)
{
@@ -1117,7 +1186,7 @@ bus_context_create_client_policy (BusContext *context,
int
bus_context_get_activation_timeout (BusContext *context)
{
-
+
return context->limits.activation_timeout;
}
@@ -1242,10 +1311,10 @@ bus_context_check_security_policy (BusContext *context,
const char *sender_name;
const char *sender_loginfo;
const char *proposed_recipient_loginfo;
-
+
type = dbus_message_get_type (message);
dest = dbus_message_get_destination (message);
-
+
/* dispatch.c was supposed to ensure these invariants */
_dbus_assert (dest != NULL ||
type == DBUS_MESSAGE_TYPE_SIGNAL ||
@@ -1265,12 +1334,12 @@ bus_context_check_security_policy (BusContext *context,
sender_name = NULL;
sender_loginfo = "(bus)";
}
-
+
if (proposed_recipient != NULL)
proposed_recipient_loginfo = bus_connection_get_loginfo (proposed_recipient);
else
proposed_recipient_loginfo = "bus";
-
+
switch (type)
{
case DBUS_MESSAGE_TYPE_METHOD_CALL:
@@ -1278,19 +1347,19 @@ bus_context_check_security_policy (BusContext *context,
case DBUS_MESSAGE_TYPE_METHOD_RETURN:
case DBUS_MESSAGE_TYPE_ERROR:
break;
-
+
default:
_dbus_verbose ("security check disallowing message of unknown type %d\n",
type);
dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
"Message bus will not accept messages of unknown type\n");
-
+
return FALSE;
}
requested_reply = FALSE;
-
+
if (sender != NULL)
{
/* First verify the SELinux access controls. If allowed then
@@ -1323,12 +1392,12 @@ bus_context_check_security_policy (BusContext *context,
return FALSE;
}
-
+
if (bus_connection_is_active (sender))
{
sender_policy = bus_connection_get_policy (sender);
_dbus_assert (sender_policy != NULL);
-
+
/* Fill in requested_reply variable with TRUE if this is a
* reply and the reply was pending.
*/
@@ -1337,8 +1406,8 @@ bus_context_check_security_policy (BusContext *context,
if (proposed_recipient != NULL /* not to the bus driver */ &&
addressed_recipient == proposed_recipient /* not eavesdropping */)
{
- DBusError error2;
-
+ DBusError error2;
+
dbus_error_init (&error2);
requested_reply = bus_connections_check_reply (bus_connection_get_connections (sender),
transaction,
@@ -1374,7 +1443,7 @@ bus_context_check_security_policy (BusContext *context,
dbus_set_error (error, DBUS_ERROR_ACCESS_DENIED,
"Client tried to send a message other than %s without being registered",
"Hello");
-
+
return FALSE;
}
}
@@ -1393,7 +1462,7 @@ bus_context_check_security_policy (BusContext *context,
_dbus_assert ((sender != NULL && sender_policy != NULL) ||
(sender == NULL && sender_policy == NULL));
-
+
if (proposed_recipient != NULL)
{
/* only the bus driver can send to an inactive recipient (as it
@@ -1418,11 +1487,11 @@ bus_context_check_security_policy (BusContext *context,
}
else
recipient_policy = NULL;
-
+
_dbus_assert ((proposed_recipient != NULL && recipient_policy != NULL) ||
(proposed_recipient != NULL && sender == NULL && recipient_policy == NULL) ||
(proposed_recipient == NULL && recipient_policy == NULL));
-
+
log = FALSE;
if (sender_policy &&
!bus_client_policy_check_can_send (sender_policy,
@@ -1482,7 +1551,7 @@ bus_context_check_security_policy (BusContext *context,
dbus_message_get_member (message) : "(unset)",
dbus_message_get_error_name (message) ?
dbus_message_get_error_name (message) : "(unset)",
- requested_reply,
+ requested_reply,
dest ? dest : DBUS_SERVICE_DBUS,
proposed_recipient_loginfo);
@@ -1535,13 +1604,13 @@ bus_context_check_security_policy (BusContext *context,
/* See if limits on size have been exceeded */
if (proposed_recipient &&
- dbus_connection_get_outgoing_size (proposed_recipient) >
- context->limits.max_outgoing_bytes)
+ ((dbus_connection_get_outgoing_size (proposed_recipient) > context->limits.max_outgoing_bytes) ||
+ (dbus_connection_get_outgoing_unix_fds (proposed_recipient) > context->limits.max_outgoing_unix_fds)))
{
dbus_set_error (error, DBUS_ERROR_LIMITS_EXCEEDED,
"The destination service \"%s\" has a full message queue",
dest ? dest : (proposed_recipient ?
- bus_connection_get_name (proposed_recipient) :
+ bus_connection_get_name (proposed_recipient) :
DBUS_SERVICE_DBUS));
_dbus_verbose ("security policy disallowing message due to full message queue\n");
return FALSE;
@@ -1552,7 +1621,7 @@ bus_context_check_security_policy (BusContext *context,
* connection). Only the addressed recipient may reply.
*/
if (type == DBUS_MESSAGE_TYPE_METHOD_CALL &&
- sender &&
+ sender &&
addressed_recipient &&
addressed_recipient == proposed_recipient && /* not eavesdropping */
!bus_connections_expect_reply (bus_connection_get_connections (sender),
@@ -1563,7 +1632,7 @@ bus_context_check_security_policy (BusContext *context,
_dbus_verbose ("Failed to record reply expectation or problem with the message expecting a reply\n");
return FALSE;
}
-
+
_dbus_verbose ("security policy allowing message\n");
return TRUE;
}
diff --git a/bus/bus.h b/bus/bus.h
index 8a04daa1..ebef17c7 100644
--- a/bus/bus.h
+++ b/bus/bus.h
@@ -4,7 +4,7 @@
* Copyright (C) 2003 Red Hat, Inc.
*
* 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
@@ -14,7 +14,7 @@
* 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
@@ -24,11 +24,11 @@
#ifndef BUS_BUS_H
#define BUS_BUS_H
-#include <config.h>
-
#include <dbus/dbus.h>
#include <dbus/dbus-string.h>
#include <dbus/dbus-mainloop.h>
+#include <dbus/dbus-pipe.h>
+#include <dbus/dbus-sysdeps.h>
typedef struct BusActivation BusActivation;
typedef struct BusConnections BusConnections;
@@ -47,8 +47,11 @@ typedef struct BusMatchRule BusMatchRule;
typedef struct
{
long max_incoming_bytes; /**< How many incoming message bytes for a single connection */
+ long max_incoming_unix_fds; /**< How many incoming message unix fds for a single connection */
long max_outgoing_bytes; /**< How many outgoing bytes can be queued for a single connection */
+ long max_outgoing_unix_fds; /**< How many outgoing unix fds can be queued for a single connection */
long max_message_size; /**< Max size of a single message in bytes */
+ long max_message_unix_fds; /**< Max number of unix fds of a single message*/
int activation_timeout; /**< How long to wait for an activation to time out */
int auth_timeout; /**< How long to wait for an authentication to time out */
int max_completed_connections; /**< Max number of authorized connections */
@@ -72,6 +75,8 @@ BusContext* bus_context_new (const DBusStri
ForceForkSetting force_fork,
DBusPipe *print_addr_pipe,
DBusPipe *print_pid_pipe,
+ const DBusString *address,
+ dbus_bool_t systemd_activation,
DBusError *error);
dbus_bool_t bus_context_reload_config (BusContext *context,
DBusError *error);
@@ -83,6 +88,7 @@ dbus_bool_t bus_context_get_id (BusContext
const char* bus_context_get_type (BusContext *context);
const char* bus_context_get_address (BusContext *context);
const char* bus_context_get_servicehelper (BusContext *context);
+dbus_bool_t bus_context_get_systemd_activation (BusContext *context);
BusRegistry* bus_context_get_registry (BusContext *context);
BusConnections* bus_context_get_connections (BusContext *context);
BusActivation* bus_context_get_activation (BusContext *context);
diff --git a/bus/config-loader-expat.c b/bus/config-loader-expat.c
index c0620aed..b571fda3 100644
--- a/bus/config-loader-expat.c
+++ b/bus/config-loader-expat.c
@@ -21,16 +21,12 @@
*
*/
+#include <config.h>
#include "config-parser.h"
#include <dbus/dbus-internals.h>
#include <expat.h>
-static XML_Memory_Handling_Suite memsuite =
-{
- dbus_malloc,
- dbus_realloc,
- dbus_free
-};
+static XML_Memory_Handling_Suite memsuite;
typedef struct
{
@@ -195,7 +191,11 @@ bus_config_load (const DBusString *file,
_dbus_string_free (&context.content);
return NULL;
}
-
+
+ memsuite.malloc_fcn = dbus_malloc;
+ memsuite.realloc_fcn = dbus_realloc;
+ memsuite.free_fcn = dbus_free;
+
expat = XML_ParserCreate_MM ("UTF-8", &memsuite, NULL);
if (expat == NULL)
{
diff --git a/bus/config-loader-libxml.c b/bus/config-loader-libxml.c
index 3d82a633..c73a1815 100644
--- a/bus/config-loader-libxml.c
+++ b/bus/config-loader-libxml.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "config-parser.h"
#include <dbus/dbus-internals.h>
#include <libxml/xmlreader.h>
diff --git a/bus/config-parser-common.c b/bus/config-parser-common.c
index 54a67468..f8d75be7 100644
--- a/bus/config-parser-common.c
+++ b/bus/config-parser-common.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include <dbus/dbus-internals.h>
#include <string.h>
@@ -122,6 +123,10 @@ bus_config_parser_element_name_to_type (const char *name)
{
return ELEMENT_KEEP_UMASK;
}
+ else if (strcmp (name, "allow_anonymous") == 0)
+ {
+ return ELEMENT_ALLOW_ANONYMOUS;
+ }
return ELEMENT_NONE;
}
@@ -174,6 +179,8 @@ bus_config_parser_element_type_to_name (ElementType type)
return "syslog";
case ELEMENT_KEEP_UMASK:
return "keep_umask";
+ case ELEMENT_ALLOW_ANONYMOUS:
+ return "allow_anonymous";
}
_dbus_assert_not_reached ("bad element type");
diff --git a/bus/config-parser-common.h b/bus/config-parser-common.h
index 8451ce08..da745606 100644
--- a/bus/config-parser-common.h
+++ b/bus/config-parser-common.h
@@ -24,8 +24,6 @@
#ifndef BUS_CONFIG_PARSER_COMMON_H
#define BUS_CONFIG_PARSER_COMMON_H
-#include <config.h>
-
typedef enum
{
ELEMENT_NONE,
@@ -48,8 +46,9 @@ typedef enum
ELEMENT_ASSOCIATE,
ELEMENT_STANDARD_SESSION_SERVICEDIRS,
ELEMENT_STANDARD_SYSTEM_SERVICEDIRS,
+ ELEMENT_KEEP_UMASK,
ELEMENT_SYSLOG,
- ELEMENT_KEEP_UMASK
+ ELEMENT_ALLOW_ANONYMOUS
} ElementType;
ElementType bus_config_parser_element_name_to_type (const char *element_name);
diff --git a/bus/config-parser-trivial.c b/bus/config-parser-trivial.c
index fd016a84..59ec2ba2 100644
--- a/bus/config-parser-trivial.c
+++ b/bus/config-parser-trivial.c
@@ -22,6 +22,7 @@
*
*/
+#include <config.h>
#include "config-parser-common.h"
#include "config-parser-trivial.h"
#include "utils.h"
@@ -131,6 +132,25 @@ bus_config_parser_unref (BusConfigParser *parser)
}
dbus_bool_t
+bus_config_parser_check_doctype (BusConfigParser *parser,
+ const char *doctype,
+ DBusError *error)
+{
+ _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+ if (strcmp (doctype, "busconfig") != 0)
+ {
+ dbus_set_error (error,
+ DBUS_ERROR_FAILED,
+ "Configuration file has the wrong document type %s",
+ doctype);
+ return FALSE;
+ }
+ else
+ return TRUE;
+}
+
+dbus_bool_t
bus_config_parser_start_element (BusConfigParser *parser,
const char *element_name,
const char **attribute_names,
diff --git a/bus/config-parser-trivial.h b/bus/config-parser-trivial.h
index ce542bfb..31ddef6b 100644
--- a/bus/config-parser-trivial.h
+++ b/bus/config-parser-trivial.h
@@ -24,8 +24,6 @@
#ifndef BUS_CONFIG_PARSER_TRIVIAL_H
#define BUS_CONFIG_PARSER_TRIVIAL_H
-#include <config.h>
-
#include <dbus/dbus.h>
#include <dbus/dbus-string.h>
#include <dbus/dbus-list.h>
@@ -41,6 +39,9 @@ BusConfigParser* bus_config_parser_new (const DBusString *basedir,
BusConfigParser* bus_config_parser_ref (BusConfigParser *parser);
void bus_config_parser_unref (BusConfigParser *parser);
+dbus_bool_t bus_config_parser_check_doctype (BusConfigParser *parser,
+ const char *doctype,
+ DBusError *error);
dbus_bool_t bus_config_parser_start_element (BusConfigParser *parser,
const char *element_name,
const char **attribute_names,
diff --git a/bus/config-parser.c b/bus/config-parser.c
index 5218910b..2d19f2b9 100644
--- a/bus/config-parser.c
+++ b/bus/config-parser.c
@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include "config-parser-common.h"
#include "config-parser.h"
#include "test.h"
@@ -115,6 +117,8 @@ struct BusConfigParser
unsigned int keep_umask : 1; /**< TRUE to keep original umask when forking */
unsigned int is_toplevel : 1; /**< FALSE if we are a sub-config-file inside another one */
+
+ unsigned int allow_anonymous : 1; /**< TRUE to allow anonymous connections */
};
static Element*
@@ -402,6 +406,15 @@ bus_config_parser_new (const DBusString *basedir,
parser->limits.max_incoming_bytes = _DBUS_ONE_MEGABYTE * 127;
parser->limits.max_outgoing_bytes = _DBUS_ONE_MEGABYTE * 127;
parser->limits.max_message_size = _DBUS_ONE_MEGABYTE * 32;
+
+ /* We set relatively conservative values here since due to the
+ way SCM_RIGHTS works we need to preallocate an array for the
+ maximum number of file descriptors we can receive. Picking a
+ high value here thus translates directly to more memory
+ allocation. */
+ parser->limits.max_incoming_unix_fds = 1024*4;
+ parser->limits.max_outgoing_unix_fds = 1024*4;
+ parser->limits.max_message_unix_fds = 1024;
/* Making this long means the user has to wait longer for an error
* message if something screws up, but making it too short means
@@ -851,6 +864,20 @@ start_busconfig_child (BusConfigParser *parser,
return TRUE;
}
+ else if (element_type == ELEMENT_ALLOW_ANONYMOUS)
+ {
+ if (!check_no_attributes (parser, "allow_anonymous", attribute_names, attribute_values, error))
+ return FALSE;
+
+ if (push_element (parser, ELEMENT_ALLOW_ANONYMOUS) == NULL)
+ {
+ BUS_SET_OOM (error);
+ return FALSE;
+ }
+
+ parser->allow_anonymous = TRUE;
+ return TRUE;
+ }
else if (element_type == ELEMENT_SERVICEDIR)
{
if (!check_no_attributes (parser, "servicedir", attribute_names, attribute_values, error))
@@ -1812,16 +1839,31 @@ set_limit (BusConfigParser *parser,
must_be_positive = TRUE;
parser->limits.max_incoming_bytes = value;
}
+ else if (strcmp (name, "max_incoming_unix_fds") == 0)
+ {
+ must_be_positive = TRUE;
+ parser->limits.max_incoming_unix_fds = value;
+ }
else if (strcmp (name, "max_outgoing_bytes") == 0)
{
must_be_positive = TRUE;
parser->limits.max_outgoing_bytes = value;
}
+ else if (strcmp (name, "max_outgoing_unix_fds") == 0)
+ {
+ must_be_positive = TRUE;
+ parser->limits.max_outgoing_unix_fds = value;
+ }
else if (strcmp (name, "max_message_size") == 0)
{
must_be_positive = TRUE;
parser->limits.max_message_size = value;
}
+ else if (strcmp (name, "max_message_unix_fds") == 0)
+ {
+ must_be_positive = TRUE;
+ parser->limits.max_message_unix_fds = value;
+ }
else if (strcmp (name, "service_start_timeout") == 0)
{
must_be_positive = TRUE;
@@ -1994,6 +2036,7 @@ bus_config_parser_end_element (BusConfigParser *parser,
case ELEMENT_ASSOCIATE:
case ELEMENT_STANDARD_SESSION_SERVICEDIRS:
case ELEMENT_STANDARD_SYSTEM_SERVICEDIRS:
+ case ELEMENT_ALLOW_ANONYMOUS:
break;
}
@@ -2279,6 +2322,7 @@ bus_config_parser_content (BusConfigParser *parser,
case ELEMENT_KEEP_UMASK:
case ELEMENT_STANDARD_SESSION_SERVICEDIRS:
case ELEMENT_STANDARD_SYSTEM_SERVICEDIRS:
+ case ELEMENT_ALLOW_ANONYMOUS:
case ELEMENT_SELINUX:
case ELEMENT_ASSOCIATE:
if (all_whitespace (content))
@@ -2611,6 +2655,12 @@ bus_config_parser_get_keep_umask (BusConfigParser *parser)
return parser->keep_umask;
}
+dbus_bool_t
+bus_config_parser_get_allow_anonymous (BusConfigParser *parser)
+{
+ return parser->allow_anonymous;
+}
+
const char *
bus_config_parser_get_pidfile (BusConfigParser *parser)
{
@@ -2955,8 +3005,11 @@ limits_equal (const BusLimits *a,
{
return
(a->max_incoming_bytes == b->max_incoming_bytes
+ || a->max_incoming_unix_fds == b->max_incoming_unix_fds
|| a->max_outgoing_bytes == b->max_outgoing_bytes
+ || a->max_outgoing_unix_fds == b->max_outgoing_unix_fds
|| a->max_message_size == b->max_message_size
+ || a->max_message_unix_fds == b->max_message_unix_fds
|| a->activation_timeout == b->activation_timeout
|| a->auth_timeout == b->auth_timeout
|| a->max_completed_connections == b->max_completed_connections
@@ -3195,6 +3248,9 @@ static const char *test_session_service_dir_matches[] =
#ifdef DBUS_UNIX
"/testhome/foo/.testlocal/testshare/dbus-1/services",
#endif
+#ifdef DBUS_WIN
+ NULL,
+#endif
NULL
};
@@ -3318,6 +3374,9 @@ static const char *test_system_service_dir_matches[] =
"/testusr/testshare/dbus-1/system-services",
#endif
DBUS_DATADIR"/dbus-1/system-services",
+#ifdef DBUS_WIN
+ NULL,
+#endif
NULL
};
@@ -3447,8 +3506,12 @@ bus_config_parser_test (const DBusString *test_data_dir)
if (!test_default_session_servicedirs())
return FALSE;
+#ifdef DBUS_WIN
+ printf("default system service dir skipped\n");
+#else
if (!test_default_system_servicedirs())
return FALSE;
+#endif
if (!process_test_valid_subdir (test_data_dir, "valid-config-files", VALID))
return FALSE;
diff --git a/bus/config-parser.h b/bus/config-parser.h
index 3aac1ed3..ba5bf749 100644
--- a/bus/config-parser.h
+++ b/bus/config-parser.h
@@ -24,8 +24,6 @@
#ifndef BUS_CONFIG_PARSER_H
#define BUS_CONFIG_PARSER_H
-#include <config.h>
-
#include <dbus/dbus.h>
#include <dbus/dbus-string.h>
#include <dbus/dbus-list.h>
diff --git a/bus/connection.c b/bus/connection.c
index 50807f1a..8e7d222a 100644
--- a/bus/connection.c
+++ b/bus/connection.c
@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include "connection.h"
#include "dispatch.h"
#include "policy.h"
@@ -118,7 +120,7 @@ get_connections_for_uid (BusConnections *connections,
/* val is NULL is 0 when it isn't in the hash yet */
- val = _dbus_hash_table_lookup_ulong (connections->completed_by_user,
+ val = _dbus_hash_table_lookup_uintptr (connections->completed_by_user,
uid);
current_count = _DBUS_POINTER_TO_INT (val);
@@ -147,14 +149,14 @@ adjust_connections_for_uid (BusConnections *connections,
if (current_count == 0)
{
- _dbus_hash_table_remove_ulong (connections->completed_by_user, uid);
+ _dbus_hash_table_remove_uintptr (connections->completed_by_user, uid);
return TRUE;
}
else
{
dbus_bool_t retval;
- retval = _dbus_hash_table_insert_ulong (connections->completed_by_user,
+ retval = _dbus_hash_table_insert_uintptr (connections->completed_by_user,
uid, _DBUS_INT_TO_POINTER (current_count));
/* only positive adjustment can fail as otherwise
@@ -437,7 +439,7 @@ bus_connections_new (BusContext *context)
if (connections == NULL)
goto failed_1;
- connections->completed_by_user = _dbus_hash_table_new (DBUS_HASH_ULONG,
+ connections->completed_by_user = _dbus_hash_table_new (DBUS_HASH_UINTPTR,
NULL, NULL);
if (connections->completed_by_user == NULL)
goto failed_2;
@@ -584,9 +586,12 @@ cache_peer_loginfo_string (BusConnectionData *d,
if (dbus_connection_get_windows_user (connection, &windows_sid))
{
- if (!_dbus_string_append_printf (&loginfo_buf, "sid=\"%s\" ", windows_sid))
- goto oom;
+ dbus_bool_t did_append;
+ did_append = _dbus_string_append_printf (&loginfo_buf,
+ "sid=\"%s\" ", windows_sid);
dbus_free (windows_sid);
+ if (!did_append)
+ goto oom;
}
if (!_dbus_string_steal_data (&loginfo_buf, &(d->cached_loginfo_string)))
@@ -837,7 +842,7 @@ expire_incomplete_timeout (void *data)
{
BusConnections *connections = data;
- _dbus_verbose ("Running %s\n", _DBUS_FUNCTION_NAME);
+ _dbus_verbose ("Running\n");
/* note that this may remove the timeout */
bus_connections_expire_incomplete (connections);
@@ -1630,7 +1635,7 @@ cancel_pending_reply (void *data)
{
CancelPendingReplyData *d = data;
- _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d);
+ _dbus_verbose ("d = %p\n", d);
if (!bus_expire_list_remove (d->connections->pending_replies,
&d->pending->expire_item))
@@ -1644,7 +1649,7 @@ cancel_pending_reply_data_free (void *data)
{
CancelPendingReplyData *d = data;
- _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d);
+ _dbus_verbose ("d = %p\n", d);
/* d->pending should be either freed or still
* in the list of pending replies (owned by someone
@@ -1781,7 +1786,7 @@ cancel_check_pending_reply (void *data)
{
CheckPendingReplyData *d = data;
- _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d);
+ _dbus_verbose ("d = %p\n",d);
bus_expire_list_add_link (d->connections->pending_replies,
d->link);
@@ -1793,7 +1798,7 @@ check_pending_reply_data_free (void *data)
{
CheckPendingReplyData *d = data;
- _dbus_verbose ("%s: d = %p\n", _DBUS_FUNCTION_NAME, d);
+ _dbus_verbose ("d = %p\n",d);
if (d->link != NULL)
{
diff --git a/bus/dbus-daemon.1 b/bus/dbus-daemon.1
deleted file mode 100644
index 6bfca148..00000000
--- a/bus/dbus-daemon.1
+++ /dev/null
@@ -1,760 +0,0 @@
-.\"
-.\" dbus-daemon manual page.
-.\" Copyright (C) 2003,2008 Red Hat, Inc.
-.\"
-.TH dbus-daemon 1
-.SH NAME
-dbus-daemon \- Message bus daemon
-.SH SYNOPSIS
-.PP
-.B dbus-daemon
-dbus-daemon [\-\-version] [\-\-session] [\-\-system] [\-\-config-file=FILE]
-[\-\-print-address[=DESCRIPTOR]] [\-\-print-pid[=DESCRIPTOR]] [\-\-fork]
-
-.SH DESCRIPTION
-
-\fIdbus-daemon\fP is the D-Bus message bus daemon. See
-http://www.freedesktop.org/software/dbus/ for more information about
-the big picture. D-Bus is first a library that provides one-to-one
-communication between any two applications; \fIdbus-daemon\fP is an
-application that uses this library to implement a message bus
-daemon. Multiple programs connect to the message bus daemon and can
-exchange messages with one another.
-
-.PP
-There are two standard message bus instances: the systemwide message bus
-(installed on many systems as the "messagebus" init service) and the
-per-user-login-session message bus (started each time a user logs in).
-\fIdbus-daemon\fP is used for both of these instances, but with
-a different configuration file.
-
-.PP
-The \-\-session option is equivalent to
-"\-\-config-file=/src/build/dbus/etc/dbus-1/session.conf" and the \-\-system
-option is equivalent to
-"\-\-config-file=/src/build/dbus/etc/dbus-1/system.conf". By creating
-additional configuration files and using the \-\-config-file option,
-additional special-purpose message bus daemons could be created.
-
-.PP
-The systemwide daemon is normally launched by an init script,
-standardly called simply "messagebus".
-
-.PP
-The systemwide daemon is largely used for broadcasting system events,
-such as changes to the printer queue, or adding/removing devices.
-
-.PP
-The per-session daemon is used for various interprocess communication
-among desktop applications (however, it is not tied to X or the GUI
-in any way).
-
-.PP
-SIGHUP will cause the D-Bus daemon to PARTIALLY reload its
-configuration file and to flush its user/group information caches. Some
-configuration changes would require kicking all apps off the bus; so they will
-only take effect if you restart the daemon. Policy changes should take effect
-with SIGHUP.
-
-.SH OPTIONS
-The following options are supported:
-.TP
-.I "--config-file=FILE"
-Use the given configuration file.
-.TP
-.I "--fork"
-Force the message bus to fork and become a daemon, even if
-the configuration file does not specify that it should.
-In most contexts the configuration file already gets this
-right, though.
-.TP
-.I "--print-address[=DESCRIPTOR]"
-Print the address of the message bus to standard output, or
-to the given file descriptor. This is used by programs that
-launch the message bus.
-.TP
-.I "--print-pid[=DESCRIPTOR]"
-Print the process ID of the message bus to standard output, or
-to the given file descriptor. This is used by programs that
-launch the message bus.
-.TP
-.I "--session"
-Use the standard configuration file for the per-login-session message
-bus.
-.TP
-.I "--system"
-Use the standard configuration file for the systemwide message bus.
-.TP
-.I "--version"
-Print the version of the daemon.
-
-.SH CONFIGURATION FILE
-
-A message bus daemon has a configuration file that specializes it
-for a particular application. For example, one configuration
-file might set up the message bus to be a systemwide message bus,
-while another might set it up to be a per-user-login-session bus.
-
-.PP
-The configuration file also establishes resource limits, security
-parameters, and so forth.
-
-.PP
-The configuration file is not part of any interoperability
-specification and its backward compatibility is not guaranteed; this
-document is documentation, not specification.
-
-.PP
-The standard systemwide and per-session message bus setups are
-configured in the files "/src/build/dbus/etc/dbus-1/system.conf" and
-"/src/build/dbus/etc/dbus-1/session.conf". These files normally
-<include> a system-local.conf or session-local.conf; you can put local
-overrides in those files to avoid modifying the primary configuration
-files.
-
-.PP
-The configuration file is an XML document. It must have the following
-doctype declaration:
-.nf
-
- <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-
-.fi
-
-.PP
-The following elements may be present in the configuration file.
-
-.TP
-.I "<busconfig>"
-
-.PP
-Root element.
-
-.TP
-.I "<type>"
-
-.PP
-The well-known type of the message bus. Currently known values are
-"system" and "session"; if other values are set, they should be
-either added to the D-Bus specification, or namespaced. The last
-<type> element "wins" (previous values are ignored). This element
-only controls which message bus specific environment variables are
-set in activated clients. Most of the policy that distinguishes a
-session bus from the system bus is controlled from the other elements
-in the configuration file.
-
-.PP
-If the well-known type of the message bus is "session", then the
-DBUS_STARTER_BUS_TYPE environment variable will be set to "session"
-and the DBUS_SESSION_BUS_ADDRESS environment variable will be set
-to the address of the session bus. Likewise, if the type of the
-message bus is "system", then the DBUS_STARTER_BUS_TYPE environment
-variable will be set to "system" and the DBUS_SESSION_BUS_ADDRESS
-environment variable will be set to the address of the system bus
-(which is normally well known anyway).
-
-.PP
-Example: <type>session</type>
-
-.TP
-.I "<include>"
-
-.PP
-Include a file <include>filename.conf</include> at this point. If the
-filename is relative, it is located relative to the configuration file
-doing the including.
-
-.PP
-<include> has an optional attribute "ignore_missing=(yes|no)"
-which defaults to "no" if not provided. This attribute
-controls whether it's a fatal error for the included file
-to be absent.
-
-.TP
-.I "<includedir>"
-
-.PP
-Include all files in <includedir>foo.d</includedir> at this
-point. Files in the directory are included in undefined order.
-Only files ending in ".conf" are included.
-
-.PP
-This is intended to allow extension of the system bus by particular
-packages. For example, if CUPS wants to be able to send out
-notification of printer queue changes, it could install a file to
-/src/build/dbus/etc/dbus-1/system.d that allowed all apps to receive
-this message and allowed the printer daemon user to send it.
-
-.TP
-.I "<user>"
-
-.PP
-The user account the daemon should run as, as either a username or a
-UID. If the daemon cannot change to this UID on startup, it will exit.
-If this element is not present, the daemon will not change or care
-about its UID.
-
-.PP
-The last <user> entry in the file "wins", the others are ignored.
-
-.PP
-The user is changed after the bus has completed initialization. So
-sockets etc. will be created before changing user, but no data will be
-read from clients before changing user. This means that sockets
-and PID files can be created in a location that requires root
-privileges for writing.
-
-.TP
-.I "<fork>"
-
-.PP
-If present, the bus daemon becomes a real daemon (forks
-into the background, etc.). This is generally used
-rather than the \-\-fork command line option.
-
-.TP
-.I "<keep_umask>"
-
-.PP
-If present, the bus daemon keeps its original umask when forking.
-This may be useful to avoid affecting the behavior of child processes.
-
-.TP
-.I "<listen>"
-
-.PP
-Add an address that the bus should listen on. The
-address is in the standard D-Bus format that contains
-a transport name plus possible parameters/options.
-
-.PP
-Example: <listen>unix:path=/tmp/foo</listen>
-
-.PP
-Example: <listen>tcp:host=localhost,port=1234</listen>
-
-.PP
-If there are multiple <listen> elements, then the bus listens
-on multiple addresses. The bus will pass its address to
-started services or other interested parties with
-the last address given in <listen> first. That is,
-apps will try to connect to the last <listen> address first.
-
-.PP
-tcp sockets can accept IPv4 addresses, IPv6 addresses or hostnames.
-If a hostname resolves to multiple addresses, the server will bind
-to all of them. The family=ipv4 or family=ipv6 options can be used
-to force it to bind to a subset of addresses
-
-.PP
-Example: <listen>tcp:host=localhost,port=0,family=ipv4</listen>
-
-.PP
-A special case is using a port number of zero (or omitting the port),
-which means to choose an available port selected by the operating
-system. The port number chosen can be obtained with the
---print-address command line parameter and will be present in other
-cases where the server reports its own address, such as when
-DBUS_SESSION_BUS_ADDRESS is set.
-
-.PP
-Example: <listen>tcp:host=localhost,port=0</listen>
-
-.PP
-tcp addresses also allow a bind=hostname option, which will override
-the host option specifying what address to bind to, without changing
-the address reported by the bus. The bind option can also take a
-special name '*' to cause the bus to listen on all local address
-(INADDR_ANY). The specified host should be a valid name of the local
-machine or weird stuff will happen.
-
-.PP
-Example: <listen>tcp:host=localhost,bind=*,port=0</listen>
-
-.TP
-.I "<auth>"
-
-.PP
-Lists permitted authorization mechanisms. If this element doesn't
-exist, then all known mechanisms are allowed. If there are multiple
-<auth> elements, all the listed mechanisms are allowed. The order in
-which mechanisms are listed is not meaningful.
-
-.PP
-Example: <auth>EXTERNAL</auth>
-
-.PP
-Example: <auth>DBUS_COOKIE_SHA1</auth>
-
-.TP
-.I "<servicedir>"
-
-.PP
-Adds a directory to scan for .service files. Directories are
-scanned starting with the last to appear in the config file
-(the first .service file found that provides a particular
-service will be used).
-
-.PP
-Service files tell the bus how to automatically start a program.
-They are primarily used with the per-user-session bus,
-not the systemwide bus.
-
-.TP
-.I "<standard_session_servicedirs/>"
-
-.PP
-<standard_session_servicedirs/> is equivalent to specifying a series
-of <servicedir/> elements for each of the data directories in the "XDG
-Base Directory Specification" with the subdirectory "dbus-1/services",
-so for example "/usr/share/dbus-1/services" would be among the
-directories searched.
-
-.PP
-The "XDG Base Directory Specification" can be found at
-http://freedesktop.org/wiki/Standards/basedir-spec if it hasn't moved,
-otherwise try your favorite search engine.
-
-.PP
-The <standard_session_servicedirs/> option is only relevant to the
-per-user-session bus daemon defined in
-/src/build/dbus/etc/dbus-1/session.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<standard_system_servicedirs/>"
-
-.PP
-<standard_system_servicedirs/> specifies the standard system-wide
-activation directories that should be searched for service files.
-This option defaults to /src/build/dbus/share/dbus-1/system-services.
-
-.PP
-The <standard_system_servicedirs/> option is only relevant to the
-per-system bus daemon defined in
-/src/build/dbus/etc/dbus-1/system.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<servicehelper/>"
-
-.PP
-<servicehelper/> specifies the setuid helper that is used to launch
-system daemons with an alternate user. Typically this should be
-the dbus-daemon-launch-helper executable in located in libexec.
-
-.PP
-The <servicehelper/> option is only relevant to the per-system bus daemon
-defined in /src/build/dbus/etc/dbus-1/system.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<limit>"
-
-.PP
-<limit> establishes a resource limit. For example:
-.nf
- <limit name="max_message_size">64</limit>
- <limit name="max_completed_connections">512</limit>
-.fi
-
-.PP
-The name attribute is mandatory.
-Available limit names are:
-.nf
- "max_incoming_bytes" : total size in bytes of messages
- incoming from a single connection
- "max_outgoing_bytes" : total size in bytes of messages
- queued up for a single connection
- "max_message_size" : max size of a single message in
- bytes
- "service_start_timeout" : milliseconds (thousandths) until
- a started service has to connect
- "auth_timeout" : milliseconds (thousandths) a
- connection is given to
- authenticate
- "max_completed_connections" : max number of authenticated connections
- "max_incomplete_connections" : max number of unauthenticated
- connections
- "max_connections_per_user" : max number of completed connections from
- the same user
- "max_pending_service_starts" : max number of service launches in
- progress at the same time
- "max_names_per_connection" : max number of names a single
- connection can own
- "max_match_rules_per_connection": max number of match rules for a single
- connection
- "max_replies_per_connection" : max number of pending method
- replies per connection
- (number of calls-in-progress)
- "reply_timeout" : milliseconds (thousandths)
- until a method call times out
-.fi
-
-.PP
-The max incoming/outgoing queue sizes allow a new message to be queued
-if one byte remains below the max. So you can in fact exceed the max
-by max_message_size.
-
-.PP
-max_completed_connections divided by max_connections_per_user is the
-number of users that can work together to denial-of-service all other users by using
-up all connections on the systemwide bus.
-
-.PP
-Limits are normally only of interest on the systemwide bus, not the user session
-buses.
-
-.TP
-.I "<policy>"
-
-.PP
-The <policy> element defines a security policy to be applied to a particular
-set of connections to the bus. A policy is made up of
-<allow> and <deny> elements. Policies are normally used with the systemwide bus;
-they are analogous to a firewall in that they allow expected traffic
-and prevent unexpected traffic.
-
-.PP
-Currently, the system bus has a default-deny policy for sending method calls
-and owning bus names. Everything else, in particular reply messages, receive
-checks, and signals has a default allow policy.
-
-.PP
-In general, it is best to keep system services as small, targeted programs which
-run in their own process and provide a single bus name. Then, all that is needed
-is an <allow> rule for the "own" permission to let the process claim the bus
-name, and a "send_destination" rule to allow traffic from some or all uids to
-your service.
-
-.PP
-The <policy> element has one of four attributes:
-daemon.1.in
-.nf
- context="(default|mandatory)"
- at_console="(true|false)"
- user="username or userid"
- group="group name or gid"
-.fi
-
-.PP
-Policies are applied to a connection as follows:
-.nf
- - all context="default" policies are applied
- - all group="connection's user's group" policies are applied
- in undefined order
- - all user="connection's auth user" policies are applied
- in undefined order
- - all at_console="true" policies are applied
- - all at_console="false" policies are applied
- - all context="mandatory" policies are applied
-.fi
-
-.PP
-Policies applied later will override those applied earlier,
-when the policies overlap. Multiple policies with the same
-user/group/context are applied in the order they appear
-in the config file.
-
-.TP
-.I "<deny>"
-.I "<allow>"
-
-.PP
-A <deny> element appears below a <policy> element and prohibits some
-action. The <allow> element makes an exception to previous <deny>
-statements, and works just like <deny> but with the inverse meaning.
-
-.PP
-The possible attributes of these elements are:
-.nf
- send_interface="interface_name"
- send_member="method_or_signal_name"
- send_error="error_name"
- send_destination="name"
- send_type="method_call" | "method_return" | "signal" | "error"
- send_path="/path/name"
-
- receive_interface="interface_name"
- receive_member="method_or_signal_name"
- receive_error="error_name"
- receive_sender="name"
- receive_type="method_call" | "method_return" | "signal" | "error"
- receive_path="/path/name"
-
- send_requested_reply="true" | "false"
- receive_requested_reply="true" | "false"
-
- eavesdrop="true" | "false"
-
- own="name"
- user="username"
- group="groupname"
-.fi
-
-.PP
-Examples:
-.nf
- <deny send_interface="org.freedesktop.System" send_member="Reboot"/>
- <deny receive_interface="org.freedesktop.System" receive_member="Reboot"/>
- <deny own="org.freedesktop.System"/>
- <deny send_destination="org.freedesktop.System"/>
- <deny receive_sender="org.freedesktop.System"/>
- <deny user="john"/>
- <deny group="enemies"/>
-.fi
-
-.PP
-The <deny> element's attributes determine whether the deny "matches" a
-particular action. If it matches, the action is denied (unless later
-rules in the config file allow it).
-
-.PP
-send_destination and receive_sender rules mean that messages may not be
-sent to or received from the *owner* of the given name, not that
-they may not be sent *to that name*. That is, if a connection
-owns services A, B, C, and sending to A is denied, sending to B or C
-will not work either.
-
-.PP
-The other send_* and receive_* attributes are purely textual/by-value
-matches against the given field in the message header.
-
-.PP
-"Eavesdropping" occurs when an application receives a message that
-was explicitly addressed to a name the application does not own, or
-is a reply to such a message. Eavesdropping thus only applies to
-messages that are addressed to services and replies to such messages
-(i.e. it does not apply to signals).
-
-.PP
-For <allow>, eavesdrop="true" indicates that the rule matches even
-when eavesdropping. eavesdrop="false" is the default and means that
-the rule only allows messages to go to their specified recipient.
-For <deny>, eavesdrop="true" indicates that the rule matches
-only when eavesdropping. eavesdrop="false" is the default for <deny>
-also, but here it means that the rule applies always, even when
-not eavesdropping. The eavesdrop attribute can only be combined with
-send and receive rules (with send_* and receive_* attributes).
-
-
-.PP
-The [send|receive]_requested_reply attribute works similarly to the eavesdrop
-attribute. It controls whether the <deny> or <allow> matches a reply
-that is expected (corresponds to a previous method call message).
-This attribute only makes sense for reply messages (errors and method
-returns), and is ignored for other message types.
-
-.PP
-For <allow>, [send|receive]_requested_reply="true" is the default and indicates that
-only requested replies are allowed by the
-rule. [send|receive]_requested_reply="false" means that the rule allows any reply
-even if unexpected.
-
-.PP
-For <deny>, [send|receive]_requested_reply="false" is the default but indicates that
-the rule matches only when the reply was not
-requested. [send|receive]_requested_reply="true" indicates that the rule applies
-always, regardless of pending reply state.
-
-.PP
-user and group denials mean that the given user or group may
-not connect to the message bus.
-
-.PP
-For "name", "username", "groupname", etc.
-the character "*" can be substituted, meaning "any." Complex globs
-like "foo.bar.*" aren't allowed for now because they'd be work to
-implement and maybe encourage sloppy security anyway.
-
-.PP
-It does not make sense to deny a user or group inside a <policy>
-for a user or group; user/group denials can only be inside
-context="default" or context="mandatory" policies.
-
-.PP
-A single <deny> rule may specify combinations of attributes such as
-send_destination and send_interface and send_type. In this case, the
-denial applies only if both attributes match the message being denied.
-e.g. <deny send_interface="foo.bar" send_destination="foo.blah"/> would
-deny messages with the given interface AND the given bus name.
-To get an OR effect you specify multiple <deny> rules.
-
-.PP
-You can't include both send_ and receive_ attributes on the same
-rule, since "whether the message can be sent" and "whether it can be
-received" are evaluated separately.
-
-.PP
-Be careful with send_interface/receive_interface, because the
-interface field in messages is optional. In particular, do NOT
-specify <deny send_interface="org.foo.Bar"/>! This will cause
-no-interface messages to be blocked for all services, which is
-almost certainly not what you intended. Always use rules of
-the form: <deny send_interface="org.foo.Bar" send_destination="org.foo.Service"/>
-
-.TP
-.I "<selinux>"
-
-.PP
-The <selinux> element contains settings related to Security Enhanced Linux.
-More details below.
-
-.TP
-.I "<associate>"
-
-.PP
-An <associate> element appears below an <selinux> element and
-creates a mapping. Right now only one kind of association is possible:
-.nf
- <associate own="org.freedesktop.Foobar" context="foo_t"/>
-.fi
-
-.PP
-This means that if a connection asks to own the name
-"org.freedesktop.Foobar" then the source context will be the context
-of the connection and the target context will be "foo_t" - see the
-short discussion of SELinux below.
-
-.PP
-Note, the context here is the target context when requesting a name,
-NOT the context of the connection owning the name.
-
-.PP
-There's currently no way to set a default for owning any name, if
-we add this syntax it will look like:
-.nf
- <associate own="*" context="foo_t"/>
-.fi
-If you find a reason this is useful, let the developers know.
-Right now the default will be the security context of the bus itself.
-
-.PP
-If two <associate> elements specify the same name, the element
-appearing later in the configuration file will be used.
-
-.SH SELinux
-
-.PP
-See http://www.nsa.gov/selinux/ for full details on SELinux. Some useful excerpts:
-
-.IP "" 8
-Every subject (process) and object (e.g. file, socket, IPC object,
-etc) in the system is assigned a collection of security attributes,
-known as a security context. A security context contains all of the
-security attributes associated with a particular subject or object
-that are relevant to the security policy.
-
-.IP "" 8
-In order to better encapsulate security contexts and to provide
-greater efficiency, the policy enforcement code of SELinux typically
-handles security identifiers (SIDs) rather than security contexts. A
-SID is an integer that is mapped by the security server to a security
-context at runtime.
-
-.IP "" 8
-When a security decision is required, the policy enforcement code
-passes a pair of SIDs (typically the SID of a subject and the SID of
-an object, but sometimes a pair of subject SIDs or a pair of object
-SIDs), and an object security class to the security server. The object
-security class indicates the kind of object, e.g. a process, a regular
-file, a directory, a TCP socket, etc.
-
-.IP "" 8
-Access decisions specify whether or not a permission is granted for a
-given pair of SIDs and class. Each object class has a set of
-associated permissions defined to control operations on objects with
-that class.
-
-.PP
-D-Bus performs SELinux security checks in two places.
-
-.PP
-First, any time a message is routed from one connection to another
-connection, the bus daemon will check permissions with the security context of
-the first connection as source, security context of the second connection
-as target, object class "dbus" and requested permission "send_msg".
-
-.PP
-If a security context is not available for a connection
-(impossible when using UNIX domain sockets), then the target
-context used is the context of the bus daemon itself.
-There is currently no way to change this default, because we're
-assuming that only UNIX domain sockets will be used to
-connect to the systemwide bus. If this changes, we'll
-probably add a way to set the default connection context.
-
-.PP
-Second, any time a connection asks to own a name,
-the bus daemon will check permissions with the security
-context of the connection as source, the security context specified
-for the name in the config file as target, object
-class "dbus" and requested permission "acquire_svc".
-
-.PP
-The security context for a bus name is specified with the
-<associate> element described earlier in this document.
-If a name has no security context associated in the
-configuration file, the security context of the bus daemon
-itself will be used.
-
-.SH DEBUGGING
-
-.PP
-If you're trying to figure out where your messages are going or why
-you aren't getting messages, there are several things you can try.
-
-.PP
-Remember that the system bus is heavily locked down and if you
-haven't installed a security policy file to allow your message
-through, it won't work. For the session bus, this is not a concern.
-
-.PP
-The simplest way to figure out what's happening on the bus is to run
-the \fIdbus-monitor\fP program, which comes with the D-Bus
-package. You can also send test messages with \fIdbus-send\fP. These
-programs have their own man pages.
-
-.PP
-If you want to know what the daemon itself is doing, you might consider
-running a separate copy of the daemon to test against. This will allow you
-to put the daemon under a debugger, or run it with verbose output, without
-messing up your real session and system daemons.
-
-.PP
-To run a separate test copy of the daemon, for example you might open a terminal
-and type:
-.nf
- DBUS_VERBOSE=1 dbus-daemon --session --print-address
-.fi
-
-.PP
-The test daemon address will be printed when the daemon starts. You will need
-to copy-and-paste this address and use it as the value of the
-DBUS_SESSION_BUS_ADDRESS environment variable when you launch the applications
-you want to test. This will cause those applications to connect to your
-test bus instead of the DBUS_SESSION_BUS_ADDRESS of your real session bus.
-
-.PP
-DBUS_VERBOSE=1 will have NO EFFECT unless your copy of D-Bus
-was compiled with verbose mode enabled. This is not recommended in
-production builds due to performance impact. You may need to rebuild
-D-Bus if your copy was not built with debugging in mind. (DBUS_VERBOSE
-also affects the D-Bus library and thus applications using D-Bus; it may
-be useful to see verbose output on both the client side and from the daemon.)
-
-.PP
-If you want to get fancy, you can create a custom bus
-configuration for your test bus (see the session.conf and system.conf
-files that define the two default configurations for example). This
-would allow you to specify a different directory for .service files,
-for example.
-
-
-.SH AUTHOR
-See http://www.freedesktop.org/software/dbus/doc/AUTHORS
-
-.SH BUGS
-Please send bug reports to the D-Bus mailing list or bug tracker,
-see http://www.freedesktop.org/software/dbus/
diff --git a/bus/dbus-daemon.1.in b/bus/dbus-daemon.1.in
deleted file mode 100644
index 8342600e..00000000
--- a/bus/dbus-daemon.1.in
+++ /dev/null
@@ -1,760 +0,0 @@
-.\"
-.\" dbus-daemon manual page.
-.\" Copyright (C) 2003,2008 Red Hat, Inc.
-.\"
-.TH dbus-daemon 1
-.SH NAME
-dbus-daemon \- Message bus daemon
-.SH SYNOPSIS
-.PP
-.B dbus-daemon
-dbus-daemon [\-\-version] [\-\-session] [\-\-system] [\-\-config-file=FILE]
-[\-\-print-address[=DESCRIPTOR]] [\-\-print-pid[=DESCRIPTOR]] [\-\-fork]
-
-.SH DESCRIPTION
-
-\fIdbus-daemon\fP is the D-Bus message bus daemon. See
-http://www.freedesktop.org/software/dbus/ for more information about
-the big picture. D-Bus is first a library that provides one-to-one
-communication between any two applications; \fIdbus-daemon\fP is an
-application that uses this library to implement a message bus
-daemon. Multiple programs connect to the message bus daemon and can
-exchange messages with one another.
-
-.PP
-There are two standard message bus instances: the systemwide message bus
-(installed on many systems as the "messagebus" init service) and the
-per-user-login-session message bus (started each time a user logs in).
-\fIdbus-daemon\fP is used for both of these instances, but with
-a different configuration file.
-
-.PP
-The \-\-session option is equivalent to
-"\-\-config-file=@EXPANDED_SYSCONFDIR@/dbus-1/session.conf" and the \-\-system
-option is equivalent to
-"\-\-config-file=@EXPANDED_SYSCONFDIR@/dbus-1/system.conf". By creating
-additional configuration files and using the \-\-config-file option,
-additional special-purpose message bus daemons could be created.
-
-.PP
-The systemwide daemon is normally launched by an init script,
-standardly called simply "messagebus".
-
-.PP
-The systemwide daemon is largely used for broadcasting system events,
-such as changes to the printer queue, or adding/removing devices.
-
-.PP
-The per-session daemon is used for various interprocess communication
-among desktop applications (however, it is not tied to X or the GUI
-in any way).
-
-.PP
-SIGHUP will cause the D-Bus daemon to PARTIALLY reload its
-configuration file and to flush its user/group information caches. Some
-configuration changes would require kicking all apps off the bus; so they will
-only take effect if you restart the daemon. Policy changes should take effect
-with SIGHUP.
-
-.SH OPTIONS
-The following options are supported:
-.TP
-.I "--config-file=FILE"
-Use the given configuration file.
-.TP
-.I "--fork"
-Force the message bus to fork and become a daemon, even if
-the configuration file does not specify that it should.
-In most contexts the configuration file already gets this
-right, though.
-.TP
-.I "--print-address[=DESCRIPTOR]"
-Print the address of the message bus to standard output, or
-to the given file descriptor. This is used by programs that
-launch the message bus.
-.TP
-.I "--print-pid[=DESCRIPTOR]"
-Print the process ID of the message bus to standard output, or
-to the given file descriptor. This is used by programs that
-launch the message bus.
-.TP
-.I "--session"
-Use the standard configuration file for the per-login-session message
-bus.
-.TP
-.I "--system"
-Use the standard configuration file for the systemwide message bus.
-.TP
-.I "--version"
-Print the version of the daemon.
-
-.SH CONFIGURATION FILE
-
-A message bus daemon has a configuration file that specializes it
-for a particular application. For example, one configuration
-file might set up the message bus to be a systemwide message bus,
-while another might set it up to be a per-user-login-session bus.
-
-.PP
-The configuration file also establishes resource limits, security
-parameters, and so forth.
-
-.PP
-The configuration file is not part of any interoperability
-specification and its backward compatibility is not guaranteed; this
-document is documentation, not specification.
-
-.PP
-The standard systemwide and per-session message bus setups are
-configured in the files "@EXPANDED_SYSCONFDIR@/dbus-1/system.conf" and
-"@EXPANDED_SYSCONFDIR@/dbus-1/session.conf". These files normally
-<include> a system-local.conf or session-local.conf; you can put local
-overrides in those files to avoid modifying the primary configuration
-files.
-
-.PP
-The configuration file is an XML document. It must have the following
-doctype declaration:
-.nf
-
- <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
-
-.fi
-
-.PP
-The following elements may be present in the configuration file.
-
-.TP
-.I "<busconfig>"
-
-.PP
-Root element.
-
-.TP
-.I "<type>"
-
-.PP
-The well-known type of the message bus. Currently known values are
-"system" and "session"; if other values are set, they should be
-either added to the D-Bus specification, or namespaced. The last
-<type> element "wins" (previous values are ignored). This element
-only controls which message bus specific environment variables are
-set in activated clients. Most of the policy that distinguishes a
-session bus from the system bus is controlled from the other elements
-in the configuration file.
-
-.PP
-If the well-known type of the message bus is "session", then the
-DBUS_STARTER_BUS_TYPE environment variable will be set to "session"
-and the DBUS_SESSION_BUS_ADDRESS environment variable will be set
-to the address of the session bus. Likewise, if the type of the
-message bus is "system", then the DBUS_STARTER_BUS_TYPE environment
-variable will be set to "system" and the DBUS_SESSION_BUS_ADDRESS
-environment variable will be set to the address of the system bus
-(which is normally well known anyway).
-
-.PP
-Example: <type>session</type>
-
-.TP
-.I "<include>"
-
-.PP
-Include a file <include>filename.conf</include> at this point. If the
-filename is relative, it is located relative to the configuration file
-doing the including.
-
-.PP
-<include> has an optional attribute "ignore_missing=(yes|no)"
-which defaults to "no" if not provided. This attribute
-controls whether it's a fatal error for the included file
-to be absent.
-
-.TP
-.I "<includedir>"
-
-.PP
-Include all files in <includedir>foo.d</includedir> at this
-point. Files in the directory are included in undefined order.
-Only files ending in ".conf" are included.
-
-.PP
-This is intended to allow extension of the system bus by particular
-packages. For example, if CUPS wants to be able to send out
-notification of printer queue changes, it could install a file to
-@EXPANDED_SYSCONFDIR@/dbus-1/system.d that allowed all apps to receive
-this message and allowed the printer daemon user to send it.
-
-.TP
-.I "<user>"
-
-.PP
-The user account the daemon should run as, as either a username or a
-UID. If the daemon cannot change to this UID on startup, it will exit.
-If this element is not present, the daemon will not change or care
-about its UID.
-
-.PP
-The last <user> entry in the file "wins", the others are ignored.
-
-.PP
-The user is changed after the bus has completed initialization. So
-sockets etc. will be created before changing user, but no data will be
-read from clients before changing user. This means that sockets
-and PID files can be created in a location that requires root
-privileges for writing.
-
-.TP
-.I "<fork>"
-
-.PP
-If present, the bus daemon becomes a real daemon (forks
-into the background, etc.). This is generally used
-rather than the \-\-fork command line option.
-
-.TP
-.I "<keep_umask>"
-
-.PP
-If present, the bus daemon keeps its original umask when forking.
-This may be useful to avoid affecting the behavior of child processes.
-
-.TP
-.I "<listen>"
-
-.PP
-Add an address that the bus should listen on. The
-address is in the standard D-Bus format that contains
-a transport name plus possible parameters/options.
-
-.PP
-Example: <listen>unix:path=/tmp/foo</listen>
-
-.PP
-Example: <listen>tcp:host=localhost,port=1234</listen>
-
-.PP
-If there are multiple <listen> elements, then the bus listens
-on multiple addresses. The bus will pass its address to
-started services or other interested parties with
-the last address given in <listen> first. That is,
-apps will try to connect to the last <listen> address first.
-
-.PP
-tcp sockets can accept IPv4 addresses, IPv6 addresses or hostnames.
-If a hostname resolves to multiple addresses, the server will bind
-to all of them. The family=ipv4 or family=ipv6 options can be used
-to force it to bind to a subset of addresses
-
-.PP
-Example: <listen>tcp:host=localhost,port=0,family=ipv4</listen>
-
-.PP
-A special case is using a port number of zero (or omitting the port),
-which means to choose an available port selected by the operating
-system. The port number chosen can be obtained with the
---print-address command line parameter and will be present in other
-cases where the server reports its own address, such as when
-DBUS_SESSION_BUS_ADDRESS is set.
-
-.PP
-Example: <listen>tcp:host=localhost,port=0</listen>
-
-.PP
-tcp addresses also allow a bind=hostname option, which will override
-the host option specifying what address to bind to, without changing
-the address reported by the bus. The bind option can also take a
-special name '*' to cause the bus to listen on all local address
-(INADDR_ANY). The specified host should be a valid name of the local
-machine or weird stuff will happen.
-
-.PP
-Example: <listen>tcp:host=localhost,bind=*,port=0</listen>
-
-.TP
-.I "<auth>"
-
-.PP
-Lists permitted authorization mechanisms. If this element doesn't
-exist, then all known mechanisms are allowed. If there are multiple
-<auth> elements, all the listed mechanisms are allowed. The order in
-which mechanisms are listed is not meaningful.
-
-.PP
-Example: <auth>EXTERNAL</auth>
-
-.PP
-Example: <auth>DBUS_COOKIE_SHA1</auth>
-
-.TP
-.I "<servicedir>"
-
-.PP
-Adds a directory to scan for .service files. Directories are
-scanned starting with the last to appear in the config file
-(the first .service file found that provides a particular
-service will be used).
-
-.PP
-Service files tell the bus how to automatically start a program.
-They are primarily used with the per-user-session bus,
-not the systemwide bus.
-
-.TP
-.I "<standard_session_servicedirs/>"
-
-.PP
-<standard_session_servicedirs/> is equivalent to specifying a series
-of <servicedir/> elements for each of the data directories in the "XDG
-Base Directory Specification" with the subdirectory "dbus-1/services",
-so for example "/usr/share/dbus-1/services" would be among the
-directories searched.
-
-.PP
-The "XDG Base Directory Specification" can be found at
-http://freedesktop.org/wiki/Standards/basedir-spec if it hasn't moved,
-otherwise try your favorite search engine.
-
-.PP
-The <standard_session_servicedirs/> option is only relevant to the
-per-user-session bus daemon defined in
-@EXPANDED_SYSCONFDIR@/dbus-1/session.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<standard_system_servicedirs/>"
-
-.PP
-<standard_system_servicedirs/> specifies the standard system-wide
-activation directories that should be searched for service files.
-This option defaults to @EXPANDED_DATADIR@/dbus-1/system-services.
-
-.PP
-The <standard_system_servicedirs/> option is only relevant to the
-per-system bus daemon defined in
-@EXPANDED_SYSCONFDIR@/dbus-1/system.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<servicehelper/>"
-
-.PP
-<servicehelper/> specifies the setuid helper that is used to launch
-system daemons with an alternate user. Typically this should be
-the dbus-daemon-launch-helper executable in located in libexec.
-
-.PP
-The <servicehelper/> option is only relevant to the per-system bus daemon
-defined in @EXPANDED_SYSCONFDIR@/dbus-1/system.conf. Putting it in any other
-configuration file would probably be nonsense.
-
-.TP
-.I "<limit>"
-
-.PP
-<limit> establishes a resource limit. For example:
-.nf
- <limit name="max_message_size">64</limit>
- <limit name="max_completed_connections">512</limit>
-.fi
-
-.PP
-The name attribute is mandatory.
-Available limit names are:
-.nf
- "max_incoming_bytes" : total size in bytes of messages
- incoming from a single connection
- "max_outgoing_bytes" : total size in bytes of messages
- queued up for a single connection
- "max_message_size" : max size of a single message in
- bytes
- "service_start_timeout" : milliseconds (thousandths) until
- a started service has to connect
- "auth_timeout" : milliseconds (thousandths) a
- connection is given to
- authenticate
- "max_completed_connections" : max number of authenticated connections
- "max_incomplete_connections" : max number of unauthenticated
- connections
- "max_connections_per_user" : max number of completed connections from
- the same user
- "max_pending_service_starts" : max number of service launches in
- progress at the same time
- "max_names_per_connection" : max number of names a single
- connection can own
- "max_match_rules_per_connection": max number of match rules for a single
- connection
- "max_replies_per_connection" : max number of pending method
- replies per connection
- (number of calls-in-progress)
- "reply_timeout" : milliseconds (thousandths)
- until a method call times out
-.fi
-
-.PP
-The max incoming/outgoing queue sizes allow a new message to be queued
-if one byte remains below the max. So you can in fact exceed the max
-by max_message_size.
-
-.PP
-max_completed_connections divided by max_connections_per_user is the
-number of users that can work together to denial-of-service all other users by using
-up all connections on the systemwide bus.
-
-.PP
-Limits are normally only of interest on the systemwide bus, not the user session
-buses.
-
-.TP
-.I "<policy>"
-
-.PP
-The <policy> element defines a security policy to be applied to a particular
-set of connections to the bus. A policy is made up of
-<allow> and <deny> elements. Policies are normally used with the systemwide bus;
-they are analogous to a firewall in that they allow expected traffic
-and prevent unexpected traffic.
-
-.PP
-Currently, the system bus has a default-deny policy for sending method calls
-and owning bus names. Everything else, in particular reply messages, receive
-checks, and signals has a default allow policy.
-
-.PP
-In general, it is best to keep system services as small, targeted programs which
-run in their own process and provide a single bus name. Then, all that is needed
-is an <allow> rule for the "own" permission to let the process claim the bus
-name, and a "send_destination" rule to allow traffic from some or all uids to
-your service.
-
-.PP
-The <policy> element has one of four attributes:
-daemon.1.in
-.nf
- context="(default|mandatory)"
- at_console="(true|false)"
- user="username or userid"
- group="group name or gid"
-.fi
-
-.PP
-Policies are applied to a connection as follows:
-.nf
- - all context="default" policies are applied
- - all group="connection's user's group" policies are applied
- in undefined order
- - all user="connection's auth user" policies are applied
- in undefined order
- - all at_console="true" policies are applied
- - all at_console="false" policies are applied
- - all context="mandatory" policies are applied
-.fi
-
-.PP
-Policies applied later will override those applied earlier,
-when the policies overlap. Multiple policies with the same
-user/group/context are applied in the order they appear
-in the config file.
-
-.TP
-.I "<deny>"
-.I "<allow>"
-
-.PP
-A <deny> element appears below a <policy> element and prohibits some
-action. The <allow> element makes an exception to previous <deny>
-statements, and works just like <deny> but with the inverse meaning.
-
-.PP
-The possible attributes of these elements are:
-.nf
- send_interface="interface_name"
- send_member="method_or_signal_name"
- send_error="error_name"
- send_destination="name"
- send_type="method_call" | "method_return" | "signal" | "error"
- send_path="/path/name"
-
- receive_interface="interface_name"
- receive_member="method_or_signal_name"
- receive_error="error_name"
- receive_sender="name"
- receive_type="method_call" | "method_return" | "signal" | "error"
- receive_path="/path/name"
-
- send_requested_reply="true" | "false"
- receive_requested_reply="true" | "false"
-
- eavesdrop="true" | "false"
-
- own="name"
- user="username"
- group="groupname"
-.fi
-
-.PP
-Examples:
-.nf
- <deny send_interface="org.freedesktop.System" send_member="Reboot"/>
- <deny receive_interface="org.freedesktop.System" receive_member="Reboot"/>
- <deny own="org.freedesktop.System"/>
- <deny send_destination="org.freedesktop.System"/>
- <deny receive_sender="org.freedesktop.System"/>
- <deny user="john"/>
- <deny group="enemies"/>
-.fi
-
-.PP
-The <deny> element's attributes determine whether the deny "matches" a
-particular action. If it matches, the action is denied (unless later
-rules in the config file allow it).
-
-.PP
-send_destination and receive_sender rules mean that messages may not be
-sent to or received from the *owner* of the given name, not that
-they may not be sent *to that name*. That is, if a connection
-owns services A, B, C, and sending to A is denied, sending to B or C
-will not work either.
-
-.PP
-The other send_* and receive_* attributes are purely textual/by-value
-matches against the given field in the message header.
-
-.PP
-"Eavesdropping" occurs when an application receives a message that
-was explicitly addressed to a name the application does not own, or
-is a reply to such a message. Eavesdropping thus only applies to
-messages that are addressed to services and replies to such messages
-(i.e. it does not apply to signals).
-
-.PP
-For <allow>, eavesdrop="true" indicates that the rule matches even
-when eavesdropping. eavesdrop="false" is the default and means that
-the rule only allows messages to go to their specified recipient.
-For <deny>, eavesdrop="true" indicates that the rule matches
-only when eavesdropping. eavesdrop="false" is the default for <deny>
-also, but here it means that the rule applies always, even when
-not eavesdropping. The eavesdrop attribute can only be combined with
-send and receive rules (with send_* and receive_* attributes).
-
-
-.PP
-The [send|receive]_requested_reply attribute works similarly to the eavesdrop
-attribute. It controls whether the <deny> or <allow> matches a reply
-that is expected (corresponds to a previous method call message).
-This attribute only makes sense for reply messages (errors and method
-returns), and is ignored for other message types.
-
-.PP
-For <allow>, [send|receive]_requested_reply="true" is the default and indicates that
-only requested replies are allowed by the
-rule. [send|receive]_requested_reply="false" means that the rule allows any reply
-even if unexpected.
-
-.PP
-For <deny>, [send|receive]_requested_reply="false" is the default but indicates that
-the rule matches only when the reply was not
-requested. [send|receive]_requested_reply="true" indicates that the rule applies
-always, regardless of pending reply state.
-
-.PP
-user and group denials mean that the given user or group may
-not connect to the message bus.
-
-.PP
-For "name", "username", "groupname", etc.
-the character "*" can be substituted, meaning "any." Complex globs
-like "foo.bar.*" aren't allowed for now because they'd be work to
-implement and maybe encourage sloppy security anyway.
-
-.PP
-It does not make sense to deny a user or group inside a <policy>
-for a user or group; user/group denials can only be inside
-context="default" or context="mandatory" policies.
-
-.PP
-A single <deny> rule may specify combinations of attributes such as
-send_destination and send_interface and send_type. In this case, the
-denial applies only if both attributes match the message being denied.
-e.g. <deny send_interface="foo.bar" send_destination="foo.blah"/> would
-deny messages with the given interface AND the given bus name.
-To get an OR effect you specify multiple <deny> rules.
-
-.PP
-You can't include both send_ and receive_ attributes on the same
-rule, since "whether the message can be sent" and "whether it can be
-received" are evaluated separately.
-
-.PP
-Be careful with send_interface/receive_interface, because the
-interface field in messages is optional. In particular, do NOT
-specify <deny send_interface="org.foo.Bar"/>! This will cause
-no-interface messages to be blocked for all services, which is
-almost certainly not what you intended. Always use rules of
-the form: <deny send_interface="org.foo.Bar" send_destination="org.foo.Service"/>
-
-.TP
-.I "<selinux>"
-
-.PP
-The <selinux> element contains settings related to Security Enhanced Linux.
-More details below.
-
-.TP
-.I "<associate>"
-
-.PP
-An <associate> element appears below an <selinux> element and
-creates a mapping. Right now only one kind of association is possible:
-.nf
- <associate own="org.freedesktop.Foobar" context="foo_t"/>
-.fi
-
-.PP
-This means that if a connection asks to own the name
-"org.freedesktop.Foobar" then the source context will be the context
-of the connection and the target context will be "foo_t" - see the
-short discussion of SELinux below.
-
-.PP
-Note, the context here is the target context when requesting a name,
-NOT the context of the connection owning the name.
-
-.PP
-There's currently no way to set a default for owning any name, if
-we add this syntax it will look like:
-.nf
- <associate own="*" context="foo_t"/>
-.fi
-If you find a reason this is useful, let the developers know.
-Right now the default will be the security context of the bus itself.
-
-.PP
-If two <associate> elements specify the same name, the element
-appearing later in the configuration file will be used.
-
-.SH SELinux
-
-.PP
-See http://www.nsa.gov/selinux/ for full details on SELinux. Some useful excerpts:
-
-.IP "" 8
-Every subject (process) and object (e.g. file, socket, IPC object,
-etc) in the system is assigned a collection of security attributes,
-known as a security context. A security context contains all of the
-security attributes associated with a particular subject or object
-that are relevant to the security policy.
-
-.IP "" 8
-In order to better encapsulate security contexts and to provide
-greater efficiency, the policy enforcement code of SELinux typically
-handles security identifiers (SIDs) rather than security contexts. A
-SID is an integer that is mapped by the security server to a security
-context at runtime.
-
-.IP "" 8
-When a security decision is required, the policy enforcement code
-passes a pair of SIDs (typically the SID of a subject and the SID of
-an object, but sometimes a pair of subject SIDs or a pair of object
-SIDs), and an object security class to the security server. The object
-security class indicates the kind of object, e.g. a process, a regular
-file, a directory, a TCP socket, etc.
-
-.IP "" 8
-Access decisions specify whether or not a permission is granted for a
-given pair of SIDs and class. Each object class has a set of
-associated permissions defined to control operations on objects with
-that class.
-
-.PP
-D-Bus performs SELinux security checks in two places.
-
-.PP
-First, any time a message is routed from one connection to another
-connection, the bus daemon will check permissions with the security context of
-the first connection as source, security context of the second connection
-as target, object class "dbus" and requested permission "send_msg".
-
-.PP
-If a security context is not available for a connection
-(impossible when using UNIX domain sockets), then the target
-context used is the context of the bus daemon itself.
-There is currently no way to change this default, because we're
-assuming that only UNIX domain sockets will be used to
-connect to the systemwide bus. If this changes, we'll
-probably add a way to set the default connection context.
-
-.PP
-Second, any time a connection asks to own a name,
-the bus daemon will check permissions with the security
-context of the connection as source, the security context specified
-for the name in the config file as target, object
-class "dbus" and requested permission "acquire_svc".
-
-.PP
-The security context for a bus name is specified with the
-<associate> element described earlier in this document.
-If a name has no security context associated in the
-configuration file, the security context of the bus daemon
-itself will be used.
-
-.SH DEBUGGING
-
-.PP
-If you're trying to figure out where your messages are going or why
-you aren't getting messages, there are several things you can try.
-
-.PP
-Remember that the system bus is heavily locked down and if you
-haven't installed a security policy file to allow your message
-through, it won't work. For the session bus, this is not a concern.
-
-.PP
-The simplest way to figure out what's happening on the bus is to run
-the \fIdbus-monitor\fP program, which comes with the D-Bus
-package. You can also send test messages with \fIdbus-send\fP. These
-programs have their own man pages.
-
-.PP
-If you want to know what the daemon itself is doing, you might consider
-running a separate copy of the daemon to test against. This will allow you
-to put the daemon under a debugger, or run it with verbose output, without
-messing up your real session and system daemons.
-
-.PP
-To run a separate test copy of the daemon, for example you might open a terminal
-and type:
-.nf
- DBUS_VERBOSE=1 dbus-daemon --session --print-address
-.fi
-
-.PP
-The test daemon address will be printed when the daemon starts. You will need
-to copy-and-paste this address and use it as the value of the
-DBUS_SESSION_BUS_ADDRESS environment variable when you launch the applications
-you want to test. This will cause those applications to connect to your
-test bus instead of the DBUS_SESSION_BUS_ADDRESS of your real session bus.
-
-.PP
-DBUS_VERBOSE=1 will have NO EFFECT unless your copy of D-Bus
-was compiled with verbose mode enabled. This is not recommended in
-production builds due to performance impact. You may need to rebuild
-D-Bus if your copy was not built with debugging in mind. (DBUS_VERBOSE
-also affects the D-Bus library and thus applications using D-Bus; it may
-be useful to see verbose output on both the client side and from the daemon.)
-
-.PP
-If you want to get fancy, you can create a custom bus
-configuration for your test bus (see the session.conf and system.conf
-files that define the two default configurations for example). This
-would allow you to specify a different directory for .service files,
-for example.
-
-
-.SH AUTHOR
-See http://www.freedesktop.org/software/dbus/doc/AUTHORS
-
-.SH BUGS
-Please send bug reports to the D-Bus mailing list or bug tracker,
-see http://www.freedesktop.org/software/dbus/
diff --git a/bus/dbus.service.in b/bus/dbus.service.in
new file mode 100644
index 00000000..399306f6
--- /dev/null
+++ b/bus/dbus.service.in
@@ -0,0 +1,10 @@
+[Unit]
+Description=D-Bus System Message Bus
+Requires=dbus.socket
+After=syslog.target
+
+[Service]
+ExecStartPre=@EXPANDED_BINDIR@/dbus-uuidgen --ensure
+ExecStartPre=-/bin/rm -f @DBUS_SYSTEM_PID_FILE@
+ExecStart=@EXPANDED_BINDIR@/dbus-daemon --system --address=systemd: --nofork --systemd-activation
+ExecReload=@EXPANDED_BINDIR@/dbus-send --print-reply --system --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
diff --git a/bus/dbus.socket.in b/bus/dbus.socket.in
new file mode 100644
index 00000000..74cbe582
--- /dev/null
+++ b/bus/dbus.socket.in
@@ -0,0 +1,5 @@
+[Unit]
+Description=D-Bus System Message Bus Socket
+
+[Socket]
+ListenStream=@DBUS_SYSTEM_SOCKET@
diff --git a/bus/desktop-file.c b/bus/desktop-file.c
index 754a83c3..ae441c5e 100644
--- a/bus/desktop-file.c
+++ b/bus/desktop-file.c
@@ -21,6 +21,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include <dbus/dbus-sysdeps.h>
#include <dbus/dbus-internals.h>
#include "desktop-file.h"
@@ -330,7 +332,7 @@ new_line (BusDesktopFileParser *parser)
line = &section->lines[section->n_lines++];
- memset (line, 0, sizeof (BusDesktopFileLine));
+ _DBUS_ZERO(*line);
return line;
}
diff --git a/bus/desktop-file.h b/bus/desktop-file.h
index 7f43458a..58e78e8f 100644
--- a/bus/desktop-file.h
+++ b/bus/desktop-file.h
@@ -4,7 +4,7 @@
* Copyright (C) 2003 CodeFactory AB
*
* 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
@@ -14,7 +14,7 @@
* 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
@@ -35,6 +35,7 @@
#define DBUS_SERVICE_EXEC "Exec"
#define DBUS_SERVICE_USER "User"
#define DBUS_SERVICE_GROUP "Group"
+#define DBUS_SERVICE_SYSTEMD_SERVICE "SystemdService"
typedef struct BusDesktopFile BusDesktopFile;
diff --git a/bus/dir-watch-default.c b/bus/dir-watch-default.c
index 8e457eb6..69361b1f 100644
--- a/bus/dir-watch-default.c
+++ b/bus/dir-watch-default.c
@@ -30,11 +30,6 @@
/* NoOp */
void
-bus_watch_directory (const char *dir, BusContext *context)
-{
-}
-
-void
bus_set_watched_dirs (BusContext *context, DBusList **directories)
{
}
diff --git a/bus/dir-watch-inotify.c b/bus/dir-watch-inotify.c
index 094993bb..39eff974 100644
--- a/bus/dir-watch-inotify.c
+++ b/bus/dir-watch-inotify.c
@@ -24,7 +24,6 @@
#include <config.h>
-#define _GNU_SOURCE
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
diff --git a/bus/dir-watch-kqueue.c b/bus/dir-watch-kqueue.c
index 4a01b748..4e436eb1 100644
--- a/bus/dir-watch-kqueue.c
+++ b/bus/dir-watch-kqueue.c
@@ -169,7 +169,7 @@ bus_set_watched_dirs (BusContext *context, DBusList **directories)
*/
for (i = 0; new_dirs[i]; i++)
{
- for (j = 0; i < num_fds; j++)
+ for (j = 0; j < num_fds; j++)
{
if (dirs[j] && strcmp (new_dirs[i], dirs[j]) == 0)
{
diff --git a/bus/dispatch.c b/bus/dispatch.c
index ca55177b..a80476cd 100644
--- a/bus/dispatch.c
+++ b/bus/dispatch.c
@@ -6,7 +6,7 @@
* Copyright (C) 2004 Imendio HB
*
* 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
@@ -16,13 +16,14 @@
* 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 <config.h>
#include "dispatch.h"
#include "connection.h"
#include "driver.h"
@@ -35,6 +36,23 @@
#include <dbus/dbus-internals.h>
#include <string.h>
+#ifdef HAVE_UNIX_FD_PASSING
+#include <dbus/dbus-sysdeps-unix.h>
+#include <unistd.h>
+#endif
+
+#ifndef TEST_CONNECTION
+/*
+ TODO autotools:
+ move to build system as already done for cmake
+*/
+#ifdef DBUS_UNIX
+#define TEST_CONNECTION "debug-pipe:name=test-server"
+#else
+#define TEST_CONNECTION "tcp:host=localhost,port=1234"
+#endif
+#endif
+
static dbus_bool_t
send_one_message (DBusConnection *connection,
BusContext *context,
@@ -51,7 +69,11 @@ send_one_message (DBusConnection *connection,
message,
NULL))
return TRUE; /* silently don't send it */
-
+
+ if (dbus_message_contains_unix_fds(message) &&
+ !dbus_connection_can_send_type(connection, DBUS_TYPE_UNIX_FD))
+ return TRUE; /* silently don't send it */
+
if (!bus_transaction_send (transaction,
connection,
message))
@@ -97,6 +119,17 @@ bus_dispatch_matches (BusTransaction *transaction,
message, error))
return FALSE;
+ if (dbus_message_contains_unix_fds (message) &&
+ !dbus_connection_can_send_type (addressed_recipient,
+ DBUS_TYPE_UNIX_FD))
+ {
+ dbus_set_error (error,
+ DBUS_ERROR_NOT_SUPPORTED,
+ "Tried to send message with Unix file descriptors"
+ "to a client that doesn't support that.");
+ return FALSE;
+ }
+
/* Dispatch the message */
if (!bus_transaction_send (transaction, addressed_recipient, message))
{
@@ -134,7 +167,7 @@ bus_dispatch_matches (BusTransaction *transaction,
}
_dbus_list_clear (&recipients);
-
+
if (dbus_error_is_set (&tmp_error))
{
dbus_move_error (&tmp_error, error);
@@ -154,25 +187,25 @@ bus_dispatch (DBusConnection *connection,
BusContext *context;
DBusHandlerResult result;
DBusConnection *addressed_recipient;
-
+
result = DBUS_HANDLER_RESULT_HANDLED;
-
+
transaction = NULL;
addressed_recipient = NULL;
dbus_error_init (&error);
-
+
context = bus_connection_get_context (connection);
_dbus_assert (context != NULL);
-
+
/* If we can't even allocate an OOM error, we just go to sleep
* until we can.
*/
while (!bus_connection_preallocate_oom_error (connection))
_dbus_wait_for_memory ();
-
+
/* Ref connection in case we disconnect it at some point in here */
dbus_connection_ref (connection);
-
+
service_name = dbus_message_get_destination (message);
#ifdef DBUS_ENABLE_VERBOSE_MODE
@@ -182,7 +215,7 @@ bus_dispatch (DBusConnection *connection,
interface_name = dbus_message_get_interface (message);
member_name = dbus_message_get_member (message);
error_name = dbus_message_get_error_name (message);
-
+
_dbus_verbose ("DISPATCH: %s %s %s to %s\n",
interface_name ? interface_name : "(no interface)",
member_name ? member_name : "(no member)",
@@ -190,7 +223,7 @@ bus_dispatch (DBusConnection *connection,
service_name ? service_name : "peer");
}
#endif /* DBUS_ENABLE_VERBOSE_MODE */
-
+
/* If service_name is NULL, if it's a signal we send it to all
* connections with a match rule. If it's not a signal, there
* are some special cases here but mostly we just bail out.
@@ -214,7 +247,7 @@ bus_dispatch (DBusConnection *connection,
goto out;
}
}
-
+
/* Create our transaction */
transaction = bus_transaction_new (context);
if (transaction == NULL)
@@ -222,7 +255,7 @@ bus_dispatch (DBusConnection *connection,
BUS_SET_OOM (&error);
goto out;
}
-
+
/* Assign a sender to the message */
if (bus_connection_is_active (connection))
{
@@ -242,7 +275,7 @@ bus_dispatch (DBusConnection *connection,
*/
service_name = dbus_message_get_destination (message);
}
-
+
if (service_name &&
strcmp (service_name, DBUS_SERVICE_DBUS) == 0) /* to bus driver */
{
@@ -270,9 +303,9 @@ bus_dispatch (DBusConnection *connection,
BusRegistry *registry;
_dbus_assert (service_name != NULL);
-
+
registry = bus_connection_get_registry (connection);
-
+
_dbus_string_init_const (&service_string, service_name);
service = bus_registry_lookup (registry, &service_string);
@@ -292,7 +325,7 @@ bus_dispatch (DBusConnection *connection,
_dbus_verbose ("bus_activation_activate_service() failed: %s\n", error.name);
goto out;
}
-
+
goto out;
}
else if (service == NULL)
@@ -316,7 +349,7 @@ bus_dispatch (DBusConnection *connection,
*/
if (!bus_dispatch_matches (transaction, connection, addressed_recipient, message, &error))
goto out;
-
+
out:
if (dbus_error_is_set (&error))
{
@@ -348,7 +381,7 @@ bus_dispatch (DBusConnection *connection,
&error, message))
{
bus_connection_send_oom_error (connection, message);
-
+
/* cancel transaction due to OOM */
if (transaction != NULL)
{
@@ -357,8 +390,8 @@ bus_dispatch (DBusConnection *connection,
}
}
}
-
-
+
+
dbus_error_free (&error);
}
@@ -382,12 +415,12 @@ bus_dispatch_message_filter (DBusConnection *connection,
dbus_bool_t
bus_dispatch_add_connection (DBusConnection *connection)
-{
+{
if (!dbus_connection_add_filter (connection,
bus_dispatch_message_filter,
NULL, NULL))
return FALSE;
-
+
return TRUE;
}
@@ -424,7 +457,7 @@ block_connection_until_message_from_bus (BusContext *context,
const char *what_is_expected)
{
_dbus_verbose ("expecting: %s\n", what_is_expected);
-
+
while (dbus_connection_get_dispatch_status (connection) ==
DBUS_DISPATCH_COMPLETE &&
dbus_connection_get_is_connected (connection))
@@ -533,13 +566,13 @@ check_service_owner_changed_foreach (DBusConnection *connection,
DBusError error;
const char *service_name, *old_owner, *new_owner;
- if (d->expected_kind == SERVICE_CREATED
+ if (d->expected_kind == SERVICE_CREATED
&& connection == d->skip_connection)
return TRUE;
dbus_error_init (&error);
d->failed = TRUE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -573,7 +606,7 @@ check_service_owner_changed_foreach (DBusConnection *connection,
if (dbus_error_has_name (&error, DBUS_ERROR_NO_MEMORY))
{
dbus_error_free (&error);
- _dbus_wait_for_memory ();
+ _dbus_wait_for_memory ();
goto reget_service_info_data;
}
else
@@ -599,7 +632,7 @@ check_service_owner_changed_foreach (DBusConnection *connection,
goto out;
}
- if (*service_name == ':' && new_owner[0]
+ if (*service_name == ':' && new_owner[0]
&& strcmp (service_name, new_owner) != 0)
{
_dbus_warn ("inconsistent ServiceOwnedChanged message (\"%s\" [ %s -> %s ])\n",
@@ -609,10 +642,10 @@ check_service_owner_changed_foreach (DBusConnection *connection,
}
d->failed = FALSE;
-
+
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
@@ -629,7 +662,7 @@ kill_client_connection (BusContext *context,
CheckServiceOwnerChangedData socd;
_dbus_verbose ("killing connection %p\n", connection);
-
+
s = dbus_bus_get_unique_name (connection);
_dbus_assert (s != NULL);
@@ -637,36 +670,36 @@ kill_client_connection (BusContext *context,
_dbus_wait_for_memory ();
dbus_connection_ref (connection);
-
+
/* kick in the disconnect handler that unrefs the connection */
dbus_connection_close (connection);
bus_test_run_everything (context);
-
+
_dbus_assert (bus_test_client_listed (connection));
-
+
/* Run disconnect handler in test.c */
if (bus_connection_dispatch_one_message (connection))
_dbus_assert_not_reached ("something received on connection being killed other than the disconnect");
-
+
_dbus_assert (!dbus_connection_get_is_connected (connection));
dbus_connection_unref (connection);
connection = NULL;
_dbus_assert (!bus_test_client_listed (connection));
-
+
socd.expected_kind = SERVICE_DELETED;
socd.expected_service_name = base_service;
socd.failed = FALSE;
socd.skip_connection = NULL;
-
+
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
dbus_free (base_service);
-
+
if (socd.failed)
_dbus_assert_not_reached ("didn't get the expected NameOwnerChanged (deletion) messages");
-
+
if (!check_no_leftovers (context))
_dbus_assert_not_reached ("stuff left in message queues after disconnecting a client");
}
@@ -676,7 +709,7 @@ kill_client_connection_unchecked (DBusConnection *connection)
{
/* This kills the connection without expecting it to affect
* the rest of the bus.
- */
+ */
_dbus_verbose ("Unchecked kill of connection %p\n", connection);
dbus_connection_ref (connection);
@@ -722,11 +755,10 @@ check_no_leftovers (BusContext *context)
nmd.failed = FALSE;
bus_test_clients_foreach (check_no_messages_foreach,
&nmd);
-
+
if (nmd.failed)
{
- _dbus_verbose ("%s: leftover message found\n",
- _DBUS_FUNCTION_NAME);
+ _dbus_verbose ("leftover message found\n");
return FALSE;
}
else
@@ -756,7 +788,7 @@ check_hello_message (BusContext *context,
name_message = NULL;
_dbus_verbose ("check_hello_message for %p\n", connection);
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -766,7 +798,7 @@ check_hello_message (BusContext *context,
return TRUE;
dbus_connection_ref (connection); /* because we may get disconnected */
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -775,44 +807,44 @@ check_hello_message (BusContext *context,
}
_dbus_assert (dbus_message_has_signature (message, ""));
-
+
dbus_message_unref (message);
message = NULL;
if (!dbus_connection_get_is_connected (connection))
{
_dbus_verbose ("connection was disconnected (presumably auth failed)\n");
-
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
-
+
/* send our message */
bus_test_run_clients_loop (SEND_PENDING (connection));
if (!dbus_connection_get_is_connected (connection))
{
_dbus_verbose ("connection was disconnected (presumably auth failed)\n");
-
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
-
+
block_connection_until_message_from_bus (context, connection, "reply to Hello");
if (!dbus_connection_get_is_connected (connection))
{
_dbus_verbose ("connection was disconnected (presumably auth failed)\n");
-
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
dbus_connection_unref (connection);
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -830,7 +862,7 @@ check_hello_message (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR)
{
if (dbus_message_is_error (message,
@@ -848,7 +880,7 @@ check_hello_message (BusContext *context,
else
{
CheckServiceOwnerChangedData socd;
-
+
if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN)
{
; /* good, expected */
@@ -884,14 +916,14 @@ check_hello_message (BusContext *context,
while (!dbus_bus_set_unique_name (connection, name))
_dbus_wait_for_memory ();
-
+
socd.expected_kind = SERVICE_CREATED;
socd.expected_service_name = name;
socd.failed = FALSE;
socd.skip_connection = connection; /* we haven't done AddMatch so won't get it ourselves */
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
-
+
if (socd.failed)
goto out;
@@ -912,7 +944,7 @@ check_hello_message (BusContext *context,
"NameAcquired");
goto out;
}
-
+
retry_get_acquired_name:
if (!dbus_message_get_args (message, &error,
DBUS_TYPE_STRING, &acquired,
@@ -946,20 +978,20 @@ check_hello_message (BusContext *context,
if (!check_no_leftovers (context))
goto out;
-
+
retval = TRUE;
-
+
out:
- _dbus_verbose ("ending %s retval = %d\n", _DBUS_FUNCTION_NAME, retval);
-
+ _dbus_verbose ("ending - retval = %d\n", retval);
+
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
if (name_message)
dbus_message_unref (name_message);
-
+
return retval;
}
@@ -980,7 +1012,7 @@ check_double_hello_message (BusContext *context,
message = NULL;
_dbus_verbose ("check_double_hello_message for %p\n", connection);
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -988,7 +1020,7 @@ check_double_hello_message (BusContext *context,
if (message == NULL)
return TRUE;
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -1006,15 +1038,15 @@ check_double_hello_message (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
-
+ _dbus_verbose ("connection was disconnected\n");
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
dbus_connection_unref (connection);
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -1032,7 +1064,7 @@ check_double_hello_message (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_ERROR)
{
warn_unexpected (connection, message, "method return for Hello");
@@ -1041,15 +1073,15 @@ check_double_hello_message (BusContext *context,
if (!check_no_leftovers (context))
goto out;
-
+
retval = TRUE;
-
+
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1072,7 +1104,7 @@ check_get_connection_unix_user (BusContext *context,
message = NULL;
_dbus_verbose ("check_get_connection_unix_user for %p\n", connection);
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -1083,7 +1115,7 @@ check_get_connection_unix_user (BusContext *context,
base_service_name = dbus_bus_get_unique_name (connection);
- if (!dbus_message_append_args (message,
+ if (!dbus_message_append_args (message,
DBUS_TYPE_STRING, &base_service_name,
DBUS_TYPE_INVALID))
{
@@ -1108,10 +1140,10 @@ check_get_connection_unix_user (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
-
+ _dbus_verbose ("connection was disconnected\n");
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
@@ -1183,10 +1215,10 @@ check_get_connection_unix_user (BusContext *context,
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1209,7 +1241,7 @@ check_get_connection_unix_process_id (BusContext *context,
message = NULL;
_dbus_verbose ("check_get_connection_unix_process_id for %p\n", connection);
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -1220,7 +1252,7 @@ check_get_connection_unix_process_id (BusContext *context,
base_service_name = dbus_bus_get_unique_name (connection);
- if (!dbus_message_append_args (message,
+ if (!dbus_message_append_args (message,
DBUS_TYPE_STRING, &base_service_name,
DBUS_TYPE_INVALID))
{
@@ -1245,10 +1277,10 @@ check_get_connection_unix_process_id (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
-
+ _dbus_verbose ("connection was disconnected\n");
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
@@ -1278,11 +1310,11 @@ check_get_connection_unix_process_id (BusContext *context,
*/
_dbus_verbose ("Windows correctly does not support GetConnectionUnixProcessID\n");
}
-#endif
+#endif
else
{
warn_unexpected (connection, message, "not this error");
-
+
goto out;
}
}
@@ -1291,7 +1323,7 @@ check_get_connection_unix_process_id (BusContext *context,
#ifdef DBUS_WIN
warn_unexpected (connection, message, "GetConnectionUnixProcessID to fail on Windows");
goto out;
-#else
+#else
if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_METHOD_RETURN)
{
; /* good, expected */
@@ -1350,10 +1382,10 @@ check_get_connection_unix_process_id (BusContext *context,
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1375,7 +1407,7 @@ check_add_match_all (BusContext *context,
message = NULL;
_dbus_verbose ("check_add_match_all for %p\n", connection);
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -1391,7 +1423,7 @@ check_add_match_all (BusContext *context,
dbus_message_unref (message);
return TRUE;
}
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -1402,32 +1434,32 @@ check_add_match_all (BusContext *context,
message = NULL;
dbus_connection_ref (connection); /* because we may get disconnected */
-
+
/* send our message */
bus_test_run_clients_loop (SEND_PENDING (connection));
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
-
+ _dbus_verbose ("connection was disconnected\n");
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
-
+
block_connection_until_message_from_bus (context, connection, "reply to AddMatch");
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
-
+ _dbus_verbose ("connection was disconnected\n");
+
dbus_connection_unref (connection);
-
+
return TRUE;
}
dbus_connection_unref (connection);
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -1445,7 +1477,7 @@ check_add_match_all (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_get_type (message) == DBUS_MESSAGE_TYPE_ERROR)
{
if (dbus_message_is_error (message,
@@ -1477,15 +1509,15 @@ check_add_match_all (BusContext *context,
if (!check_no_leftovers (context))
goto out;
-
+
retval = TRUE;
-
+
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1500,7 +1532,7 @@ check_hello_connection (BusContext *context)
dbus_error_init (&error);
- connection = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+ connection = dbus_connection_open_private (TEST_CONNECTION, &error);
if (connection == NULL)
{
_DBUS_ASSERT_ERROR_IS_SET (&error);
@@ -1516,10 +1548,10 @@ check_hello_connection (BusContext *context)
}
spin_connection_until_authenticated (context, connection);
-
+
if (!check_hello_message (context, connection))
return FALSE;
-
+
if (dbus_bus_get_unique_name (connection) == NULL)
{
/* We didn't successfully register, so we can't
@@ -1531,7 +1563,7 @@ check_hello_connection (BusContext *context)
{
if (!check_add_match_all (context, connection))
return FALSE;
-
+
kill_client_connection (context, connection);
}
@@ -1552,17 +1584,17 @@ check_nonexistent_service_no_auto_start (BusContext *context,
dbus_bool_t retval;
const char *nonexistent = NONEXISTENT_SERVICE_NAME;
dbus_uint32_t flags;
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
"StartServiceByName");
-
+
if (message == NULL)
return TRUE;
dbus_message_set_auto_start (message, FALSE);
-
+
flags = 0;
if (!dbus_message_append_args (message,
DBUS_TYPE_STRING, &nonexistent,
@@ -1572,7 +1604,7 @@ check_nonexistent_service_no_auto_start (BusContext *context,
dbus_message_unref (message);
return TRUE;
}
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -1588,12 +1620,12 @@ check_nonexistent_service_no_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -1613,7 +1645,7 @@ check_nonexistent_service_no_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -1638,11 +1670,11 @@ check_nonexistent_service_no_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1656,15 +1688,15 @@ check_nonexistent_service_auto_start (BusContext *context,
DBusMessage *message;
dbus_uint32_t serial;
dbus_bool_t retval;
-
+
message = dbus_message_new_method_call (NONEXISTENT_SERVICE_NAME,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -1680,12 +1712,12 @@ check_nonexistent_service_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
@@ -1706,7 +1738,7 @@ check_nonexistent_service_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -1731,11 +1763,11 @@ check_nonexistent_service_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -1749,16 +1781,16 @@ check_base_service_activated (BusContext *context,
dbus_bool_t retval;
DBusError error;
const char *base_service, *base_service_from_bus, *old_owner;
-
+
retval = FALSE;
-
+
dbus_error_init (&error);
base_service = NULL;
old_owner = NULL;
base_service_from_bus = NULL;
message = initial_message;
- dbus_message_ref (message);
+ dbus_message_ref (message);
if (dbus_message_is_signal (message,
DBUS_INTERFACE_DBUS,
@@ -1798,7 +1830,7 @@ check_base_service_activated (BusContext *context,
base_service);
goto out;
}
-
+
if (strcmp (base_service, base_service_from_bus) != 0)
{
_dbus_warn ("Expected base service activation, got \"%s\" instead with owner \"%s\"\n",
@@ -1812,14 +1844,14 @@ check_base_service_activated (BusContext *context,
old_owner);
goto out;
}
-
+
socd.expected_kind = SERVICE_CREATED;
socd.expected_service_name = base_service;
socd.failed = FALSE;
socd.skip_connection = connection;
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
-
+
if (socd.failed)
goto out;
}
@@ -1834,7 +1866,7 @@ check_base_service_activated (BusContext *context,
*base_service_p = base_service;
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
@@ -1854,9 +1886,9 @@ check_service_activated (BusContext *context,
dbus_bool_t retval;
DBusError error;
dbus_uint32_t activation_result;
-
+
retval = FALSE;
-
+
dbus_error_init (&error);
message = initial_message;
@@ -1923,15 +1955,15 @@ check_service_activated (BusContext *context,
socd.expected_service_name = service_name;
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
-
+
if (socd.failed)
goto out;
-
+
dbus_message_unref (message);
service_name = NULL;
old_owner = NULL;
base_service_from_bus = NULL;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -1943,10 +1975,10 @@ check_service_activated (BusContext *context,
else
{
warn_unexpected (connection, message, "NameOwnerChanged for the activated name");
-
+
goto out;
}
-
+
if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_RETURN)
{
warn_unexpected (connection, message, "reply to StartServiceByName");
@@ -1984,7 +2016,7 @@ check_service_activated (BusContext *context,
dbus_message_unref (message);
message = NULL;
-
+
if (!check_no_leftovers (context))
{
_dbus_warn ("Messages were left over after verifying existent activation results\n");
@@ -1992,12 +2024,12 @@ check_service_activated (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
dbus_error_free (&error);
-
+
return retval;
}
@@ -2011,9 +2043,9 @@ check_service_auto_activated (BusContext *context,
DBusMessage *message;
dbus_bool_t retval;
DBusError error;
-
+
retval = FALSE;
-
+
dbus_error_init (&error);
message = initial_message;
@@ -2025,7 +2057,7 @@ check_service_auto_activated (BusContext *context,
{
const char *service_name;
CheckServiceOwnerChangedData socd;
-
+
reget_service_name_arg:
if (!dbus_message_get_args (message, &error,
DBUS_TYPE_STRING, &service_name,
@@ -2046,28 +2078,28 @@ check_service_auto_activated (BusContext *context,
goto out;
}
}
-
+
if (strcmp (service_name, activated_name) != 0)
{
_dbus_warn ("Expected to see service %s created, saw %s instead\n",
activated_name, service_name);
goto out;
}
-
+
socd.expected_kind = SERVICE_CREATED;
socd.expected_service_name = service_name;
socd.failed = FALSE;
- socd.skip_connection = connection;
+ socd.skip_connection = connection;
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
-
+
if (socd.failed)
goto out;
-
+
/* Note that this differs from regular activation in that we don't get a
* reply to ActivateService here.
*/
-
+
dbus_message_unref (message);
message = NULL;
service_name = NULL;
@@ -2075,16 +2107,16 @@ check_service_auto_activated (BusContext *context,
else
{
warn_unexpected (connection, message, "NameOwnerChanged for the activated name");
-
+
goto out;
}
-
+
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -2098,7 +2130,7 @@ check_service_deactivated (BusContext *context,
CheckServiceOwnerChangedData socd;
retval = FALSE;
-
+
/* Now we are expecting ServiceOwnerChanged (deletion) messages for the base
* service and the activated_name. The base service
* notification is required to come last.
@@ -2108,11 +2140,11 @@ check_service_deactivated (BusContext *context,
socd.failed = FALSE;
socd.skip_connection = NULL;
bus_test_clients_foreach (check_service_owner_changed_foreach,
- &socd);
+ &socd);
if (socd.failed)
goto out;
-
+
socd.expected_kind = SERVICE_DELETED;
socd.expected_service_name = base_service;
socd.failed = FALSE;
@@ -2124,7 +2156,7 @@ check_service_deactivated (BusContext *context,
goto out;
retval = TRUE;
-
+
out:
return retval;
}
@@ -2139,27 +2171,27 @@ check_send_exit_to_service (BusContext *context,
DBusMessage *message;
dbus_uint32_t serial;
dbus_bool_t retval;
-
+
_dbus_verbose ("Sending exit message to the test service\n");
retval = FALSE;
-
+
/* Kill off the test service by sending it a quit message */
message = dbus_message_new_method_call (service_name,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Exit");
-
+
if (message == NULL)
{
/* Do this again; we still need the service to exit... */
if (!check_send_exit_to_service (context, connection,
service_name, base_service))
goto out;
-
+
return TRUE;
}
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -2168,7 +2200,7 @@ check_send_exit_to_service (BusContext *context,
if (!check_send_exit_to_service (context, connection,
service_name, base_service))
goto out;
-
+
return TRUE;
}
@@ -2190,12 +2222,12 @@ check_send_exit_to_service (BusContext *context,
dbus_connection_return_message (connection, message);
message = NULL;
}
-
+
if (!got_error)
{
/* If no error, wait for the test service to exit */
block_connection_until_message_from_bus (context, connection, "test service to exit");
-
+
bus_test_run_everything (context);
}
@@ -2210,7 +2242,7 @@ check_send_exit_to_service (BusContext *context,
"error with the correct reply serial");
goto out;
}
-
+
if (!dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -2238,7 +2270,7 @@ check_send_exit_to_service (BusContext *context,
* stuff.
*/
message = pop_message_waiting_for_memory (connection);
-
+
if (message == NULL)
{
warn_unexpected (connection, NULL,
@@ -2259,10 +2291,10 @@ check_send_exit_to_service (BusContext *context,
"error with the correct reply serial");
goto out;
}
-
+
_dbus_verbose ("Got error %s after test service exited\n",
dbus_message_get_error_name (message));
-
+
if (!check_no_leftovers (context))
{
_dbus_warn ("Messages were left over after %s\n",
@@ -2270,13 +2302,13 @@ check_send_exit_to_service (BusContext *context,
goto out;
}
}
-
+
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -2291,9 +2323,9 @@ check_got_error (BusContext *context,
va_list ap;
dbus_bool_t error_found;
const char *error_name;
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2332,20 +2364,20 @@ check_got_error (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
-
+
typedef enum
-{
+{
GOT_SERVICE_CREATED,
GOT_SERVICE_DELETED,
GOT_ERROR,
- GOT_SOMETHING_ELSE
+ GOT_SOMETHING_ELSE
} GotServiceInfo;
static GotServiceInfo
@@ -2419,7 +2451,7 @@ check_existent_service_no_auto_start (BusContext *context,
dbus_uint32_t flags;
base_service_message = NULL;
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -2429,7 +2461,7 @@ check_existent_service_no_auto_start (BusContext *context,
return TRUE;
dbus_message_set_auto_start (message, FALSE);
-
+
flags = 0;
if (!dbus_message_append_args (message,
DBUS_TYPE_STRING, &existent,
@@ -2439,7 +2471,7 @@ check_existent_service_no_auto_start (BusContext *context,
dbus_message_unref (message);
return TRUE;
}
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -2460,12 +2492,12 @@ check_existent_service_no_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2486,7 +2518,7 @@ check_existent_service_no_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -2511,7 +2543,7 @@ check_existent_service_no_auto_start (BusContext *context,
else
{
GotServiceInfo message_kind;
-
+
if (!check_base_service_activated (context, connection,
message, &base_service))
goto out;
@@ -2521,7 +2553,7 @@ check_existent_service_no_auto_start (BusContext *context,
/* We may need to block here for the test service to exit or finish up */
block_connection_until_message_from_bus (context, connection, "test service to exit or finish up");
-
+
message = dbus_connection_borrow_message (connection);
if (message == NULL)
{
@@ -2564,7 +2596,7 @@ check_existent_service_no_auto_start (BusContext *context,
socd.expected_service_name = base_service;
socd.failed = FALSE;
socd.skip_connection = NULL;
-
+
bus_test_clients_foreach (check_service_owner_changed_foreach,
&socd);
@@ -2577,10 +2609,10 @@ check_existent_service_no_auto_start (BusContext *context,
if (message_kind != GOT_ERROR)
{
block_connection_until_message_from_bus (context, connection, "error about service exiting");
-
+
/* and process everything again */
bus_test_run_everything (context);
-
+
if (!check_got_error (context, connection,
DBUS_ERROR_SPAWN_CHILD_EXITED,
DBUS_ERROR_NO_MEMORY,
@@ -2598,11 +2630,11 @@ check_existent_service_no_auto_start (BusContext *context,
"should have been a NameOwnerChanged (creation)\n");
goto out;
}
-
+
if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME,
base_service, message))
goto out;
-
+
dbus_message_unref (message);
message = NULL;
@@ -2621,14 +2653,14 @@ check_existent_service_no_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
if (base_service_message)
dbus_message_unref (base_service_message);
-
+
return retval;
}
@@ -2645,7 +2677,7 @@ check_segfault_service_no_auto_start (BusContext *context,
dbus_bool_t retval;
const char *segv_service;
dbus_uint32_t flags;
-
+
message = dbus_message_new_method_call (DBUS_SERVICE_DBUS,
DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
@@ -2655,7 +2687,7 @@ check_segfault_service_no_auto_start (BusContext *context,
return TRUE;
dbus_message_set_auto_start (message, FALSE);
-
+
segv_service = "org.freedesktop.DBus.TestSuiteSegfaultService";
flags = 0;
if (!dbus_message_append_args (message,
@@ -2666,7 +2698,7 @@ check_segfault_service_no_auto_start (BusContext *context,
dbus_message_unref (message);
return TRUE;
}
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -2682,12 +2714,12 @@ check_segfault_service_no_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2707,7 +2739,7 @@ check_segfault_service_no_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -2740,11 +2772,11 @@ check_segfault_service_no_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -2764,10 +2796,10 @@ check_segfault_service_auto_start (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -2783,12 +2815,12 @@ check_segfault_service_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2808,7 +2840,7 @@ check_segfault_service_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -2833,11 +2865,11 @@ check_segfault_service_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
#endif
@@ -2860,7 +2892,7 @@ check_existent_hello_from_self (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"RunHelloFromSelf");
-
+
if (message == NULL)
return TRUE;
@@ -2888,7 +2920,7 @@ check_existent_hello_from_self (BusContext *context,
* doesn't send a reply due to OOM.
*/
block_connection_until_message_from_bus (context, connection, "reply from running hello from self");
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2905,7 +2937,7 @@ check_existent_hello_from_self (BusContext *context,
dbus_message_unref (message);
message = NULL;
-
+
return TRUE;
}
@@ -2922,7 +2954,7 @@ check_existent_ping (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.DBus.Peer",
"Ping");
-
+
if (message == NULL)
return TRUE;
@@ -2941,7 +2973,7 @@ check_existent_ping (BusContext *context,
* doesn't send a reply due to OOM.
*/
block_connection_until_message_from_bus (context, connection, "reply from running Ping");
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -2965,7 +2997,7 @@ check_existent_ping (BusContext *context,
dbus_message_unref (message);
message = NULL;
-
+
return TRUE;
}
@@ -2979,12 +3011,12 @@ check_existent_get_machine_id (BusContext *context,
DBusMessage *message;
dbus_uint32_t serial;
const char *machine_id;
-
+
message = dbus_message_new_method_call (EXISTENT_SERVICE_NAME,
"/org/freedesktop/TestSuite",
"org.freedesktop.DBus.Peer",
"GetMachineId");
-
+
if (message == NULL)
return TRUE;
@@ -3003,7 +3035,7 @@ check_existent_get_machine_id (BusContext *context,
* doesn't send a reply due to OOM.
*/
block_connection_until_message_from_bus (context, connection, "reply from running GetMachineId");
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3039,14 +3071,14 @@ check_existent_get_machine_id (BusContext *context,
dbus_message_unref (message);
return FALSE;
}
-
+
/* We can't check that the machine id is correct because during make check it is
* just made up for each process separately
*/
-
+
dbus_message_unref (message);
message = NULL;
-
+
return TRUE;
}
@@ -3070,7 +3102,7 @@ check_existent_service_auto_start (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
@@ -3102,12 +3134,12 @@ check_existent_service_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3152,7 +3184,7 @@ check_existent_service_auto_start (BusContext *context,
dbus_connection_return_message (connection, message);
message = NULL;
- switch (message_kind)
+ switch (message_kind)
{
case GOT_SERVICE_CREATED:
message = pop_message_waiting_for_memory (connection);
@@ -3162,12 +3194,12 @@ check_existent_service_auto_start (BusContext *context,
"should have been a NameOwnerChanged (creation)\n");
goto out;
}
-
+
/* Check that ServiceOwnerChanged (creation) was correctly received */
if (!check_service_auto_activated (context, connection, EXISTENT_SERVICE_NAME,
base_service, message))
goto out;
-
+
dbus_message_unref (message);
message = NULL;
@@ -3179,7 +3211,7 @@ check_existent_service_auto_start (BusContext *context,
* failed to register under EXISTENT_SERVICE_NAME
*/
CheckServiceOwnerChangedData socd;
-
+
socd.expected_kind = SERVICE_DELETED;
socd.expected_service_name = base_service;
socd.failed = FALSE;
@@ -3208,7 +3240,7 @@ check_existent_service_auto_start (BusContext *context,
* doesn't send a reply due to OOM.
*/
block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation");
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3230,7 +3262,7 @@ check_existent_service_auto_start (BusContext *context,
if (!check_existent_get_machine_id (context, connection))
goto out;
-
+
if (!check_existent_hello_from_self (context, connection))
goto out;
@@ -3238,7 +3270,7 @@ check_existent_service_auto_start (BusContext *context,
EXISTENT_SERVICE_NAME,
base_service))
goto out;
-
+
retval = TRUE;
out:
@@ -3268,7 +3300,7 @@ check_launch_service_file_missing (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
@@ -3287,12 +3319,12 @@ check_launch_service_file_missing (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3312,7 +3344,7 @@ check_launch_service_file_missing (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -3338,11 +3370,11 @@ check_launch_service_file_missing (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -3383,12 +3415,12 @@ check_launch_service_user_missing (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_warn ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3408,7 +3440,7 @@ check_launch_service_user_missing (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -3434,11 +3466,11 @@ check_launch_service_user_missing (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -3479,12 +3511,12 @@ check_launch_service_exec_missing (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_warn ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3504,7 +3536,7 @@ check_launch_service_exec_missing (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -3538,11 +3570,11 @@ check_launch_service_exec_missing (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -3583,12 +3615,12 @@ check_launch_service_service_missing (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_warn ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_warn ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3608,7 +3640,7 @@ check_launch_service_service_missing (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -3642,11 +3674,11 @@ check_launch_service_service_missing (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -3667,10 +3699,10 @@ check_shell_fail_service_auto_start (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
-
+
if (!dbus_connection_send (connection, message, &serial))
{
dbus_message_unref (message);
@@ -3686,12 +3718,12 @@ check_shell_fail_service_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
-
+
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3711,7 +3743,7 @@ check_shell_fail_service_auto_start (BusContext *context,
dbus_message_get_sender (message) : "(none)");
goto out;
}
-
+
if (dbus_message_is_error (message,
DBUS_ERROR_NO_MEMORY))
{
@@ -3737,11 +3769,11 @@ check_shell_fail_service_auto_start (BusContext *context,
}
retval = TRUE;
-
+
out:
if (message)
dbus_message_unref (message);
-
+
return retval;
}
@@ -3767,7 +3799,7 @@ check_shell_service_success_auto_start (BusContext *context,
"/org/freedesktop/TestSuite",
"org.freedesktop.TestSuite",
"Echo");
-
+
if (message == NULL)
return TRUE;
@@ -3790,12 +3822,12 @@ check_shell_service_success_auto_start (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
retval = FALSE;
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3840,7 +3872,7 @@ check_shell_service_success_auto_start (BusContext *context,
dbus_connection_return_message (connection, message);
message = NULL;
- switch (message_kind)
+ switch (message_kind)
{
case GOT_SERVICE_CREATED:
message = pop_message_waiting_for_memory (connection);
@@ -3850,12 +3882,12 @@ check_shell_service_success_auto_start (BusContext *context,
"should have been a NameOwnerChanged (creation)\n");
goto out;
}
-
+
/* Check that ServiceOwnerChanged (creation) was correctly received */
if (!check_service_auto_activated (context, connection, SHELL_SUCCESS_SERVICE_NAME,
base_service, message))
goto out;
-
+
dbus_message_unref (message);
message = NULL;
@@ -3867,7 +3899,7 @@ check_shell_service_success_auto_start (BusContext *context,
* failed to register under SHELL_SUCCESS_SERVICE_NAME
*/
CheckServiceOwnerChangedData socd;
-
+
socd.expected_kind = SERVICE_DELETED;
socd.expected_service_name = base_service;
socd.failed = FALSE;
@@ -3896,7 +3928,7 @@ check_shell_service_success_auto_start (BusContext *context,
* doesn't send a reply due to OOM.
*/
block_connection_until_message_from_bus (context, connection, "reply from echo message after auto-activation");
-
+
message = pop_message_waiting_for_memory (connection);
if (message == NULL)
{
@@ -3911,7 +3943,7 @@ check_shell_service_success_auto_start (BusContext *context,
}
if (!dbus_message_get_args (message, NULL,
- DBUS_TYPE_STRING, &argv[0],
+ DBUS_TYPE_STRING, &argv[0],
DBUS_TYPE_STRING, &argv[1],
DBUS_TYPE_STRING, &argv[2],
DBUS_TYPE_STRING, &argv[3],
@@ -3924,59 +3956,59 @@ check_shell_service_success_auto_start (BusContext *context,
goto out;
}
- /* don't worry about arg[0] as it may be different
+ /* don't worry about arg[0] as it may be different
depending on the path to the tests
*/
if (strcmp("-test", argv[1]) != 0)
{
- _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[1] in shell success service test (expected: %s, got: %s)\n",
"-test", argv[1]);
goto out;
- }
+ }
if (strcmp("that", argv[2]) != 0)
{
- _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[2] in shell success service test (expected: %s, got: %s)\n",
"that", argv[2]);
goto out;
- }
+ }
if (strcmp("we get", argv[3]) != 0)
{
- _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[3] in shell success service test (expected: %s, got: %s)\n",
"we get", argv[3]);
goto out;
- }
-
+ }
+
if (strcmp("back", argv[4]) != 0)
{
- _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[4] in shell success service test (expected: %s, got: %s)\n",
"back", argv[4]);
goto out;
- }
+ }
if (strcmp("--what", argv[5]) != 0)
{
- _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[5] in shell success service test (expected: %s, got: %s)\n",
"--what", argv[5]);
goto out;
- }
+ }
if (strcmp("we put in", argv[6]) != 0)
{
- _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n",
+ _dbus_warn ("Unexpected argv[6] in shell success service test (expected: %s, got: %s)\n",
"we put in", argv[6]);
goto out;
- }
+ }
dbus_message_unref (message);
message = NULL;
-
+
if (!check_send_exit_to_service (context, connection,
SHELL_SUCCESS_SERVICE_NAME,
base_service))
goto out;
-
+
retval = TRUE;
out:
@@ -4002,7 +4034,7 @@ check_oom_check1_func (void *data)
if (! (* d->func) (d->context))
return FALSE;
-
+
if (!check_no_leftovers (d->context))
{
_dbus_warn ("Messages were left over, should be covered by test suite\n");
@@ -4070,7 +4102,7 @@ check_get_services (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
dbus_connection_unref (connection);
@@ -4142,15 +4174,15 @@ check_get_services (BusContext *context,
*len = l;
}
}
-
+
if (!check_no_leftovers (context))
goto out;
-
+
retval = TRUE;
-
+
out:
dbus_error_free (&error);
-
+
if (message)
dbus_message_unref (message);
@@ -4184,6 +4216,7 @@ check_list_services (BusContext *context,
if (!_dbus_string_array_contains ((const char **)services, existent))
{
_dbus_warn ("Did not get the expected %s from ListActivatableNames\n", existent);
+ dbus_free_string_array (services);
return FALSE;
}
@@ -4231,7 +4264,7 @@ check_list_services (BusContext *context,
if (!dbus_connection_get_is_connected (connection))
{
- _dbus_verbose ("connection was disconnected: %s %d\n", _DBUS_FUNCTION_NAME, __LINE__);
+ _dbus_verbose ("connection was disconnected\n");
return TRUE;
}
@@ -4322,7 +4355,7 @@ check_list_services (BusContext *context,
"should have been a NameOwnerChanged (creation)\n");
goto out;
}
-
+
if (!check_service_activated (context, connection, EXISTENT_SERVICE_NAME,
base_service, message))
goto out;
@@ -4339,7 +4372,7 @@ check_list_services (BusContext *context,
break;
}
}
-
+
if (!check_get_services (context, connection, "ListNames", &services, &len))
{
return TRUE;
@@ -4383,7 +4416,7 @@ check_oom_check2_func (void *data)
if (! (* d->func) (d->context, d->connection))
return FALSE;
-
+
if (!check_no_leftovers (d->context))
{
_dbus_warn ("Messages were left over, should be covered by test suite\n");
@@ -4404,7 +4437,7 @@ check2_try_iterations (BusContext *context,
d.func = func;
d.context = context;
d.connection = connection;
-
+
if (!_dbus_test_oom_handling (description, check_oom_check2_func,
&d))
{
@@ -4427,19 +4460,19 @@ setenv_TEST_LAUNCH_HELPER_CONFIG(const DBusString *test_data_dir,
{
_dbus_string_free (&full);
return FALSE;
- }
+ }
_dbus_string_init_const (&file, filename);
-
+
if (!_dbus_concat_dir_and_file (&full, &file))
{
_dbus_string_free (&full);
return FALSE;
}
- _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n",
+ _dbus_verbose ("Setting TEST_LAUNCH_HELPER_CONFIG to '%s'\n",
_dbus_string_get_const_data (&full));
-
+
_dbus_setenv ("TEST_LAUNCH_HELPER_CONFIG", _dbus_string_get_const_data (&full));
_dbus_string_free (&full);
@@ -4463,12 +4496,12 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
_dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG");
dbus_error_init (&error);
-
+
context = bus_context_new_test (test_data_dir, filename);
if (context == NULL)
return FALSE;
-
- foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+
+ foo = dbus_connection_open_private (TEST_CONNECTION, &error);
if (foo == NULL)
_dbus_assert_not_reached ("could not alloc connection");
@@ -4476,7 +4509,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
_dbus_assert_not_reached ("could not set up connection");
spin_connection_until_authenticated (context, foo);
-
+
if (!check_hello_message (context, foo))
_dbus_assert_not_reached ("hello message failed");
@@ -4485,8 +4518,8 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
if (!check_add_match_all (context, foo))
_dbus_assert_not_reached ("AddMatch message failed");
-
- bar = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+
+ bar = dbus_connection_open_private (TEST_CONNECTION, &error);
if (bar == NULL)
_dbus_assert_not_reached ("could not alloc connection");
@@ -4494,14 +4527,14 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
_dbus_assert_not_reached ("could not set up connection");
spin_connection_until_authenticated (context, bar);
-
+
if (!check_hello_message (context, bar))
_dbus_assert_not_reached ("hello message failed");
if (!check_add_match_all (context, bar))
_dbus_assert_not_reached ("AddMatch message failed");
-
- baz = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+
+ baz = dbus_connection_open_private (TEST_CONNECTION, &error);
if (baz == NULL)
_dbus_assert_not_reached ("could not alloc connection");
@@ -4509,31 +4542,36 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
_dbus_assert_not_reached ("could not set up connection");
spin_connection_until_authenticated (context, baz);
-
+
if (!check_hello_message (context, baz))
_dbus_assert_not_reached ("hello message failed");
if (!check_add_match_all (context, baz))
_dbus_assert_not_reached ("AddMatch message failed");
+#ifdef DBUS_WIN_FIXME
+ _dbus_warn("TODO: testing of GetConnectionUnixUser message skipped for now\n");
+ _dbus_warn("TODO: testing of GetConnectionUnixProcessID message skipped for now\n");
+#else
if (!check_get_connection_unix_user (context, baz))
_dbus_assert_not_reached ("GetConnectionUnixUser message failed");
if (!check_get_connection_unix_process_id (context, baz))
_dbus_assert_not_reached ("GetConnectionUnixProcessID message failed");
+#endif
if (!check_list_services (context, baz))
_dbus_assert_not_reached ("ListActivatableNames message failed");
-
+
if (!check_no_leftovers (context))
{
_dbus_warn ("Messages were left over after setting up initial connections\n");
_dbus_assert_not_reached ("initial connection setup failed");
}
-
+
check1_try_iterations (context, "create_and_hello",
check_hello_connection);
-
+
check2_try_iterations (context, foo, "nonexistent_service_no_auto_start",
check_nonexistent_service_no_auto_start);
@@ -4543,15 +4581,15 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
check2_try_iterations (context, foo, "segfault_service_no_auto_start",
check_segfault_service_no_auto_start);
#endif
-
+
check2_try_iterations (context, foo, "existent_service_no_auto_start",
check_existent_service_no_auto_start);
-
+
check2_try_iterations (context, foo, "nonexistent_service_auto_start",
check_nonexistent_service_auto_start);
-
-#ifdef DBUS_WIN_FIXME
+
+#ifdef DBUS_WIN_FIXME
_dbus_warn("TODO: dispatch.c segfault_service_auto_start test\n");
#else
/* only do the segfault test if we are not using the launcher */
@@ -4576,7 +4614,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
check2_try_iterations (context, foo, "existent_service_auto_auto_start",
check_existent_service_auto_start);
#endif
-
+
if (!check_existent_service_auto_start (context, foo))
_dbus_assert_not_reached ("existent service auto start failed");
@@ -4590,7 +4628,7 @@ bus_dispatch_test_conf (const DBusString *test_data_dir,
kill_client_connection_unchecked (baz);
bus_context_unref (context);
-
+
return TRUE;
}
@@ -4605,14 +4643,14 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir,
/* save the config name for the activation helper */
if (!setenv_TEST_LAUNCH_HELPER_CONFIG (test_data_dir, filename))
_dbus_assert_not_reached ("no memory setting TEST_LAUNCH_HELPER_CONFIG");
-
+
dbus_error_init (&error);
-
+
context = bus_context_new_test (test_data_dir, filename);
if (context == NULL)
return FALSE;
-
- foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+
+ foo = dbus_connection_open_private (TEST_CONNECTION, &error);
if (foo == NULL)
_dbus_assert_not_reached ("could not alloc connection");
@@ -4647,7 +4685,7 @@ bus_dispatch_test_conf_fail (const DBusString *test_data_dir,
kill_client_connection_unchecked (foo);
bus_context_unref (context);
-
+
return TRUE;
}
@@ -4660,6 +4698,9 @@ bus_dispatch_test (const DBusString *test_data_dir)
"valid-config-files/debug-allow-all.conf", FALSE))
return FALSE;
+#ifdef DBUS_WIN
+ _dbus_warn("Info: Launch helper activation tests skipped because launch-helper is not supported yet\n");
+#else
/* run launch-helper activation tests */
_dbus_verbose ("Launch helper activation tests\n");
if (!bus_dispatch_test_conf (test_data_dir,
@@ -4670,6 +4711,7 @@ bus_dispatch_test (const DBusString *test_data_dir)
if (!bus_dispatch_test_conf_fail (test_data_dir,
"valid-config-files-system/debug-allow-all-fail.conf"))
return FALSE;
+#endif
return TRUE;
}
@@ -4682,16 +4724,16 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir)
DBusError error;
dbus_error_init (&error);
-
+
/* Test SHA1 authentication */
_dbus_verbose ("Testing SHA1 context\n");
-
+
context = bus_context_new_test (test_data_dir,
"valid-config-files/debug-allow-all-sha1.conf");
if (context == NULL)
return FALSE;
- foo = dbus_connection_open_private ("debug-pipe:name=test-server", &error);
+ foo = dbus_connection_open_private (TEST_CONNECTION, &error);
if (foo == NULL)
_dbus_assert_not_reached ("could not alloc connection");
@@ -4699,19 +4741,19 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir)
_dbus_assert_not_reached ("could not set up connection");
spin_connection_until_authenticated (context, foo);
-
+
if (!check_hello_message (context, foo))
_dbus_assert_not_reached ("hello message failed");
if (!check_add_match_all (context, foo))
_dbus_assert_not_reached ("addmatch message failed");
-
+
if (!check_no_leftovers (context))
{
_dbus_warn ("Messages were left over after setting up initial SHA-1 connection\n");
_dbus_assert_not_reached ("initial connection setup failed");
}
-
+
check1_try_iterations (context, "create_and_hello_sha1",
check_hello_connection);
@@ -4722,4 +4764,155 @@ bus_dispatch_sha1_test (const DBusString *test_data_dir)
return TRUE;
}
+#ifdef HAVE_UNIX_FD_PASSING
+
+dbus_bool_t
+bus_unix_fds_passing_test(const DBusString *test_data_dir)
+{
+ BusContext *context;
+ DBusConnection *foo, *bar;
+ DBusError error;
+ DBusMessage *m;
+ dbus_bool_t b;
+ int one[2], two[2], x, y, z;
+ char r;
+
+ dbus_error_init (&error);
+
+ context = bus_context_new_test (test_data_dir, "valid-config-files/debug-allow-all.conf");
+ if (context == NULL)
+ _dbus_assert_not_reached ("could not alloc context");
+
+ foo = dbus_connection_open_private (TEST_CONNECTION, &error);
+ if (foo == NULL)
+ _dbus_assert_not_reached ("could not alloc connection");
+
+ if (!bus_setup_debug_client (foo))
+ _dbus_assert_not_reached ("could not set up connection");
+
+ spin_connection_until_authenticated (context, foo);
+
+ if (!check_hello_message (context, foo))
+ _dbus_assert_not_reached ("hello message failed");
+
+ if (!check_add_match_all (context, foo))
+ _dbus_assert_not_reached ("AddMatch message failed");
+
+ bar = dbus_connection_open_private (TEST_CONNECTION, &error);
+ if (bar == NULL)
+ _dbus_assert_not_reached ("could not alloc connection");
+
+ if (!bus_setup_debug_client (bar))
+ _dbus_assert_not_reached ("could not set up connection");
+
+ spin_connection_until_authenticated (context, bar);
+
+ if (!check_hello_message (context, bar))
+ _dbus_assert_not_reached ("hello message failed");
+
+ if (!check_add_match_all (context, bar))
+ _dbus_assert_not_reached ("AddMatch message failed");
+
+ if (!(m = dbus_message_new_signal("/", "a.b.c", "d")))
+ _dbus_assert_not_reached ("could not alloc message");
+
+ if (!(_dbus_full_duplex_pipe(one, one+1, TRUE, &error)))
+ _dbus_assert_not_reached("Failed to allocate pipe #1");
+
+ if (!(_dbus_full_duplex_pipe(two, two+1, TRUE, &error)))
+ _dbus_assert_not_reached("Failed to allocate pipe #2");
+
+ if (!dbus_message_append_args(m,
+ DBUS_TYPE_UNIX_FD, one,
+ DBUS_TYPE_UNIX_FD, two,
+ DBUS_TYPE_UNIX_FD, two,
+ DBUS_TYPE_INVALID))
+ _dbus_assert_not_reached("Failed to attach fds.");
+
+ if (!_dbus_close(one[0], &error))
+ _dbus_assert_not_reached("Failed to close pipe #1 ");
+ if (!_dbus_close(two[0], &error))
+ _dbus_assert_not_reached("Failed to close pipe #2 ");
+
+ if (!(dbus_connection_can_send_type(foo, DBUS_TYPE_UNIX_FD)))
+ _dbus_assert_not_reached("Connection cannot do fd passing");
+
+ if (!(dbus_connection_can_send_type(bar, DBUS_TYPE_UNIX_FD)))
+ _dbus_assert_not_reached("Connection cannot do fd passing");
+
+ if (!dbus_connection_send (foo, m, NULL))
+ _dbus_assert_not_reached("Failed to send fds");
+
+ dbus_message_unref(m);
+
+ bus_test_run_clients_loop (SEND_PENDING (foo));
+
+ bus_test_run_everything (context);
+
+ block_connection_until_message_from_bus (context, foo, "unix fd reception on foo");
+
+ if (!(m = pop_message_waiting_for_memory (foo)))
+ _dbus_assert_not_reached("Failed to receive msg");
+
+ if (!dbus_message_is_signal(m, "a.b.c", "d"))
+ _dbus_assert_not_reached("bogus message received");
+
+ dbus_message_unref(m);
+
+ block_connection_until_message_from_bus (context, bar, "unix fd reception on bar");
+
+ if (!(m = pop_message_waiting_for_memory (bar)))
+ _dbus_assert_not_reached("Failed to receive msg");
+
+ if (!dbus_message_is_signal(m, "a.b.c", "d"))
+ _dbus_assert_not_reached("bogus message received");
+
+ if (!dbus_message_get_args(m,
+ &error,
+ DBUS_TYPE_UNIX_FD, &x,
+ DBUS_TYPE_UNIX_FD, &y,
+ DBUS_TYPE_UNIX_FD, &z,
+ DBUS_TYPE_INVALID))
+ _dbus_assert_not_reached("Failed to parse fds.");
+
+ dbus_message_unref(m);
+
+ if (write(x, "X", 1) != 1)
+ _dbus_assert_not_reached("Failed to write to pipe #1");
+ if (write(y, "Y", 1) != 1)
+ _dbus_assert_not_reached("Failed to write to pipe #2");
+ if (write(z, "Z", 1) != 1)
+ _dbus_assert_not_reached("Failed to write to pipe #2/2nd fd");
+
+ if (!_dbus_close(x, &error))
+ _dbus_assert_not_reached("Failed to close pipe #1/other side ");
+ if (!_dbus_close(y, &error))
+ _dbus_assert_not_reached("Failed to close pipe #2/other side ");
+ if (!_dbus_close(z, &error))
+ _dbus_assert_not_reached("Failed to close pipe #2/other size 2nd fd ");
+
+ if (read(one[1], &r, 1) != 1 || r != 'X')
+ _dbus_assert_not_reached("Failed to read value from pipe.");
+ if (read(two[1], &r, 1) != 1 || r != 'Y')
+ _dbus_assert_not_reached("Failed to read value from pipe.");
+ if (read(two[1], &r, 1) != 1 || r != 'Z')
+ _dbus_assert_not_reached("Failed to read value from pipe.");
+
+ if (!_dbus_close(one[1], &error))
+ _dbus_assert_not_reached("Failed to close pipe #1 ");
+ if (!_dbus_close(two[1], &error))
+ _dbus_assert_not_reached("Failed to close pipe #2 ");
+
+ _dbus_verbose ("Disconnecting foo\n");
+ kill_client_connection_unchecked (foo);
+
+ _dbus_verbose ("Disconnecting bar\n");
+ kill_client_connection_unchecked (bar);
+
+ bus_context_unref (context);
+
+ return TRUE;
+}
+#endif
+
#endif /* DBUS_BUILD_TESTS */
diff --git a/bus/driver.c b/bus/driver.c
index 5e8a7a26..cc8d1f26 100644
--- a/bus/driver.c
+++ b/bus/driver.c
@@ -5,7 +5,7 @@
* Copyright (C) 2003, 2004, 2005 Red Hat, Inc.
*
* 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
@@ -15,13 +15,14 @@
* 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 <config.h>
#include "activation.h"
#include "connection.h"
#include "driver.h"
@@ -56,20 +57,20 @@ bus_driver_send_service_owner_changed (const char *service_name,
null_service = "";
_dbus_verbose ("sending name owner changed: %s [%s -> %s]\n",
- service_name,
- old_owner ? old_owner : null_service,
+ service_name,
+ old_owner ? old_owner : null_service,
new_owner ? new_owner : null_service);
message = dbus_message_new_signal (DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
"NameOwnerChanged");
-
+
if (message == NULL)
{
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!dbus_message_set_sender (message, DBUS_SERVICE_DBUS))
goto oom;
@@ -81,7 +82,7 @@ bus_driver_send_service_owner_changed (const char *service_name,
goto oom;
_dbus_assert (dbus_message_has_signature (message, "sss"));
-
+
retval = bus_dispatch_matches (transaction, NULL, NULL, message, error);
dbus_message_unref (message);
@@ -102,17 +103,17 @@ bus_driver_send_service_lost (DBusConnection *connection,
DBusMessage *message;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
message = dbus_message_new_signal (DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
"NameLost");
-
+
if (message == NULL)
{
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!dbus_message_set_destination (message, bus_connection_get_name (connection)) ||
!dbus_message_append_args (message,
DBUS_TYPE_STRING, &service_name,
@@ -145,7 +146,7 @@ bus_driver_send_service_acquired (DBusConnection *connection,
DBusMessage *message;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
message = dbus_message_new_signal (DBUS_PATH_DBUS,
DBUS_INTERFACE_DBUS,
"NameAcquired");
@@ -155,7 +156,7 @@ bus_driver_send_service_acquired (DBusConnection *connection,
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!dbus_message_set_destination (message, bus_connection_get_name (connection)) ||
!dbus_message_append_args (message,
DBUS_TYPE_STRING, &service_name,
@@ -193,9 +194,9 @@ create_unique_client_name (BusRegistry *registry,
static int next_major_number = 0;
static int next_minor_number = 0;
int len;
-
+
len = _dbus_string_get_length (str);
-
+
while (TRUE)
{
/* start out with 1-0, go to 1-1, 1-2, 1-3,
@@ -213,21 +214,21 @@ create_unique_client_name (BusRegistry *registry,
_dbus_assert (next_minor_number >= 0);
/* appname:MAJOR-MINOR */
-
+
if (!_dbus_string_append (str, ":"))
return FALSE;
-
+
if (!_dbus_string_append_int (str, next_major_number))
return FALSE;
if (!_dbus_string_append (str, "."))
return FALSE;
-
+
if (!_dbus_string_append_int (str, next_minor_number))
return FALSE;
next_minor_number += 1;
-
+
/* Check if a client with the name exists */
if (bus_registry_lookup (registry, str) == NULL)
break;
@@ -274,7 +275,7 @@ bus_driver_handle_hello (DBusConnection *connection,
_DBUS_ASSERT_ERROR_IS_SET (error);
return FALSE;
}
-
+
if (!_dbus_string_init (&unique_name))
{
BUS_SET_OOM (error);
@@ -284,7 +285,7 @@ bus_driver_handle_hello (DBusConnection *connection,
retval = FALSE;
registry = bus_connection_get_registry (connection);
-
+
if (!create_unique_client_name (registry, &unique_name))
{
BUS_SET_OOM (error);
@@ -296,14 +297,14 @@ bus_driver_handle_hello (DBusConnection *connection,
_DBUS_ASSERT_ERROR_IS_SET (error);
goto out_0;
}
-
+
if (!dbus_message_set_sender (message,
bus_connection_get_name (connection)))
{
BUS_SET_OOM (error);
goto out_0;
}
-
+
if (!bus_driver_send_welcome_message (connection, message, transaction, error))
goto out_0;
@@ -312,10 +313,10 @@ bus_driver_handle_hello (DBusConnection *connection,
&unique_name, connection, 0, transaction, error);
if (service == NULL)
goto out_0;
-
+
_dbus_assert (bus_connection_is_active (connection));
retval = TRUE;
-
+
out_0:
_dbus_string_free (&unique_name);
return retval;
@@ -331,17 +332,17 @@ bus_driver_send_welcome_message (DBusConnection *connection,
const char *name;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
name = bus_connection_get_name (connection);
_dbus_assert (name != NULL);
-
+
welcome = dbus_message_new_method_return (hello_message);
if (welcome == NULL)
{
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!dbus_message_append_args (welcome,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_INVALID))
@@ -352,7 +353,7 @@ bus_driver_send_welcome_message (DBusConnection *connection,
}
_dbus_assert (dbus_message_has_signature (welcome, DBUS_TYPE_STRING_AS_STRING));
-
+
if (!bus_transaction_send_from_driver (transaction, connection, welcome))
{
dbus_message_unref (welcome);
@@ -381,9 +382,9 @@ bus_driver_handle_list_services (DBusConnection *connection,
DBusMessageIter sub;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
registry = bus_connection_get_registry (connection);
-
+
reply = dbus_message_new_method_return (message);
if (reply == NULL)
{
@@ -399,7 +400,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
}
dbus_message_iter_init_append (reply, &iter);
-
+
if (!dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY,
DBUS_TYPE_STRING_AS_STRING,
&sub))
@@ -422,7 +423,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
return FALSE;
}
}
-
+
i = 0;
while (i < len)
{
@@ -445,7 +446,7 @@ bus_driver_handle_list_services (DBusConnection *connection,
BUS_SET_OOM (error);
return FALSE;
}
-
+
if (!bus_transaction_send_from_driver (transaction, connection, reply))
{
dbus_message_unref (reply);
@@ -567,17 +568,17 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
BusRegistry *registry;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
registry = bus_connection_get_registry (connection);
-
+
if (!dbus_message_get_args (message, error,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_UINT32, &flags,
DBUS_TYPE_INVALID))
return FALSE;
-
+
_dbus_verbose ("Trying to own name %s with flags 0x%x\n", name, flags);
-
+
retval = FALSE;
reply = NULL;
@@ -588,7 +589,7 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
&service_reply, transaction,
error))
goto out;
-
+
reply = dbus_message_new_method_return (message);
if (reply == NULL)
{
@@ -609,12 +610,12 @@ bus_driver_handle_acquire_service (DBusConnection *connection,
}
retval = TRUE;
-
+
out:
if (reply)
dbus_message_unref (reply);
return retval;
-}
+}
static dbus_bool_t
bus_driver_handle_release_service (DBusConnection *connection,
@@ -692,9 +693,9 @@ bus_driver_handle_service_exists (DBusConnection *connection,
BusRegistry *registry;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
registry = bus_connection_get_registry (connection);
-
+
if (!dbus_message_get_args (message, error,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_INVALID))
@@ -712,7 +713,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
service = bus_registry_lookup (registry, &service_name);
service_exists = service != NULL;
}
-
+
reply = dbus_message_new_method_return (message);
if (reply == NULL)
{
@@ -735,7 +736,7 @@ bus_driver_handle_service_exists (DBusConnection *connection,
}
retval = TRUE;
-
+
out:
if (reply)
dbus_message_unref (reply);
@@ -755,9 +756,9 @@ bus_driver_handle_activate_service (DBusConnection *connection,
BusActivation *activation;
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
activation = bus_connection_get_activation (connection);
-
+
if (!dbus_message_get_args (message, error,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_UINT32, &flags,
@@ -779,7 +780,7 @@ bus_driver_handle_activate_service (DBusConnection *connection,
}
retval = TRUE;
-
+
out:
return retval;
}
@@ -810,7 +811,7 @@ send_ack_reply (DBusConnection *connection,
}
dbus_message_unref (reply);
-
+
return TRUE;
}
@@ -951,7 +952,7 @@ bus_driver_handle_add_match (DBusConnection *connection,
const char *text;
DBusString str;
BusMatchmaker *matchmaker;
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
text = NULL;
@@ -968,7 +969,7 @@ bus_driver_handle_add_match (DBusConnection *connection,
"(inactive)");
goto failed;
}
-
+
if (!dbus_message_get_args (message, error,
DBUS_TYPE_STRING, &text,
DBUS_TYPE_INVALID))
@@ -997,9 +998,9 @@ bus_driver_handle_add_match (DBusConnection *connection,
bus_matchmaker_remove_rule (matchmaker, rule);
goto failed;
}
-
+
bus_match_rule_unref (rule);
-
+
return TRUE;
failed:
@@ -1019,12 +1020,12 @@ bus_driver_handle_remove_match (DBusConnection *connection,
const char *text;
DBusString str;
BusMatchmaker *matchmaker;
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
text = NULL;
rule = NULL;
-
+
if (!dbus_message_get_args (message, error,
DBUS_TYPE_STRING, &text,
DBUS_TYPE_INVALID))
@@ -1045,14 +1046,14 @@ bus_driver_handle_remove_match (DBusConnection *connection,
if (!send_ack_reply (connection, transaction,
message, error))
goto failed;
-
+
matchmaker = bus_connection_get_matchmaker (connection);
if (!bus_matchmaker_remove_rule_by_value (matchmaker, rule, error))
goto failed;
bus_match_rule_unref (rule);
-
+
return TRUE;
failed:
@@ -1074,7 +1075,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
BusRegistry *registry;
BusService *service;
DBusMessage *reply;
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
registry = bus_connection_get_registry (connection);
@@ -1097,7 +1098,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
}
else if (service == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get owner of name '%s': no such name", text);
goto failed;
@@ -1113,7 +1114,7 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
"Could not determine unique name for '%s'", text);
goto failed;
}
- _dbus_assert (*base_name == ':');
+ _dbus_assert (*base_name == ':');
}
_dbus_assert (base_name != NULL);
@@ -1122,11 +1123,11 @@ bus_driver_handle_get_service_owner (DBusConnection *connection,
if (reply == NULL)
goto oom;
- if (! dbus_message_append_args (reply,
+ if (! dbus_message_append_args (reply,
DBUS_TYPE_STRING, &base_name,
DBUS_TYPE_INVALID))
goto oom;
-
+
if (! bus_transaction_send_from_driver (transaction, connection, reply))
goto oom;
@@ -1159,7 +1160,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
DBusMessage *reply;
DBusMessageIter iter, array_iter;
char *dbus_service_name = DBUS_SERVICE_DBUS;
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
registry = bus_connection_get_registry (connection);
@@ -1184,14 +1185,14 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
}
else if (service == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get owners of name '%s': no such name", text);
goto failed;
}
else
{
- if (!bus_service_list_queued_owners (service,
+ if (!bus_service_list_queued_owners (service,
&base_names,
error))
goto failed;
@@ -1209,7 +1210,7 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
DBUS_TYPE_STRING_AS_STRING,
&array_iter))
goto oom;
-
+
link = _dbus_list_get_first_link (&base_names);
while (link != NULL)
{
@@ -1217,8 +1218,8 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
_dbus_assert (link->data != NULL);
uname = (char *)link->data;
-
- if (!dbus_message_iter_append_basic (&array_iter,
+
+ if (!dbus_message_iter_append_basic (&array_iter,
DBUS_TYPE_STRING,
&uname))
goto oom;
@@ -1228,8 +1229,8 @@ bus_driver_handle_list_queued_owners (DBusConnection *connection,
if (! dbus_message_iter_close_container (&iter, &array_iter))
goto oom;
-
-
+
+
if (! bus_transaction_send_from_driver (transaction, connection, reply))
goto oom;
@@ -1284,7 +1285,7 @@ bus_driver_handle_get_connection_unix_user (DBusConnection *connection,
serv = bus_registry_lookup (registry, &str);
if (serv == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get UID of name '%s': no such name", service);
goto failed;
@@ -1360,7 +1361,7 @@ bus_driver_handle_get_connection_unix_process_id (DBusConnection *connection,
serv = bus_registry_lookup (registry, &str);
if (serv == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get PID of name '%s': no such name", service);
goto failed;
@@ -1436,7 +1437,7 @@ bus_driver_handle_get_adt_audit_session_data (DBusConnection *connection,
serv = bus_registry_lookup (registry, &str);
if (serv == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get audit session data for name '%s': no such name", service);
goto failed;
@@ -1510,7 +1511,7 @@ bus_driver_handle_get_connection_selinux_security_context (DBusConnection *conne
serv = bus_registry_lookup (registry, &str);
if (serv == NULL)
{
- dbus_set_error (error,
+ dbus_set_error (error,
DBUS_ERROR_NAME_HAS_NO_OWNER,
"Could not get security context of name '%s': no such name", service);
goto failed;
@@ -1563,7 +1564,7 @@ bus_driver_handle_reload_config (DBusConnection *connection,
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
reply = NULL;
-
+
context = bus_connection_get_context (connection);
if (!bus_context_reload_config (context, error))
goto failed;
@@ -1608,7 +1609,7 @@ bus_driver_handle_get_id (DBusConnection *connection,
}
reply = NULL;
-
+
context = bus_connection_get_context (connection);
if (!bus_context_get_id (context, &uuid))
goto oom;
@@ -1622,24 +1623,24 @@ bus_driver_handle_get_id (DBusConnection *connection,
DBUS_TYPE_STRING, &v_STRING,
DBUS_TYPE_INVALID))
goto oom;
-
+
_dbus_assert (dbus_message_has_signature (reply, "s"));
-
+
if (! bus_transaction_send_from_driver (transaction, connection, reply))
goto oom;
- _dbus_string_free (&uuid);
+ _dbus_string_free (&uuid);
dbus_message_unref (reply);
return TRUE;
oom:
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
+
BUS_SET_OOM (error);
if (reply)
dbus_message_unref (reply);
- _dbus_string_free (&uuid);
+ _dbus_string_free (&uuid);
return FALSE;
}
@@ -1660,7 +1661,7 @@ static struct
{ "Hello",
"",
DBUS_TYPE_STRING_AS_STRING,
- bus_driver_handle_hello },
+ bus_driver_handle_hello },
{ "RequestName",
DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_UINT32_AS_STRING,
DBUS_TYPE_UINT32_AS_STRING,
@@ -1739,10 +1740,10 @@ write_args_for_direction (DBusString *xml,
DBusTypeReader typereader;
DBusString sigstr;
int current_type;
-
+
_dbus_string_init_const (&sigstr, signature);
_dbus_type_reader_init_types_only (&typereader, &sigstr, 0);
-
+
while ((current_type = _dbus_type_reader_get_current_type (&typereader)) != DBUS_TYPE_INVALID)
{
const DBusString *subsig;
@@ -1793,7 +1794,7 @@ bus_driver_generate_introspect_string (DBusString *xml)
i = 0;
while (i < _DBUS_N_ELEMENTS (message_handlers))
{
-
+
if (!_dbus_string_append_printf (xml, " <method name=\"%s\">\n",
message_handlers[i].name))
return FALSE;
@@ -1806,22 +1807,22 @@ bus_driver_generate_introspect_string (DBusString *xml)
if (!_dbus_string_append (xml, " </method>\n"))
return FALSE;
-
+
++i;
}
if (!_dbus_string_append_printf (xml, " <signal name=\"NameOwnerChanged\">\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " </signal>\n"))
return FALSE;
@@ -1829,10 +1830,10 @@ bus_driver_generate_introspect_string (DBusString *xml)
if (!_dbus_string_append_printf (xml, " <signal name=\"NameLost\">\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " </signal>\n"))
return FALSE;
@@ -1840,16 +1841,16 @@ bus_driver_generate_introspect_string (DBusString *xml)
if (!_dbus_string_append_printf (xml, " <signal name=\"NameAcquired\">\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " <arg type=\"s\"/>\n"))
return FALSE;
-
+
if (!_dbus_string_append_printf (xml, " </signal>\n"))
return FALSE;
if (!_dbus_string_append (xml, " </interface>\n"))
return FALSE;
-
+
if (!_dbus_string_append (xml, "</node>\n"))
return FALSE;
@@ -1867,7 +1868,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
const char *v_STRING;
_dbus_verbose ("Introspect() on bus driver\n");
-
+
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
reply = NULL;
@@ -1914,7 +1915,7 @@ bus_driver_handle_introspect (DBusConnection *connection,
dbus_message_unref (reply);
_dbus_string_free (&xml);
-
+
return FALSE;
}
@@ -1929,6 +1930,14 @@ bus_driver_handle_message (DBusConnection *connection,
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
+ if (dbus_message_is_signal (message, "org.freedesktop.systemd1.Activator", "ActivationFailure"))
+ {
+ BusContext *context;
+
+ context = bus_connection_get_context (connection);
+ return dbus_activation_systemd_failure(bus_context_get_activation(context), message);
+ }
+
if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_CALL)
{
_dbus_verbose ("Driver got a non-method-call message, ignoring\n");
@@ -1939,16 +1948,16 @@ bus_driver_handle_message (DBusConnection *connection,
DBUS_INTERFACE_INTROSPECTABLE,
"Introspect"))
return bus_driver_handle_introspect (connection, transaction, message, error);
-
+
interface = dbus_message_get_interface (message);
if (interface == NULL)
interface = DBUS_INTERFACE_DBUS;
-
+
_dbus_assert (dbus_message_get_member (message) != NULL);
-
+
name = dbus_message_get_member (message);
sender = dbus_message_get_sender (message);
-
+
if (strcmp (interface,
DBUS_INTERFACE_DBUS) != 0)
{
@@ -1956,13 +1965,13 @@ bus_driver_handle_message (DBusConnection *connection,
interface);
goto unknown;
}
-
+
_dbus_verbose ("Driver got a method call: %s\n",
dbus_message_get_member (message));
-
+
/* security checks should have kept this from getting here */
_dbus_assert (sender != NULL || strcmp (name, "Hello") == 0);
-
+
i = 0;
while (i < _DBUS_N_ELEMENTS (message_handlers))
{
@@ -1976,7 +1985,7 @@ bus_driver_handle_message (DBusConnection *connection,
_dbus_verbose ("Call to %s has wrong args (%s, expected %s)\n",
name, dbus_message_get_signature (message),
message_handlers[i].in_args);
-
+
dbus_set_error (error, DBUS_ERROR_INVALID_ARGS,
"Call to %s has wrong args (%s, expected %s)\n",
name, dbus_message_get_signature (message),
@@ -1984,7 +1993,7 @@ bus_driver_handle_message (DBusConnection *connection,
_DBUS_ASSERT_ERROR_IS_SET (error);
return FALSE;
}
-
+
if ((* message_handlers[i].handler) (connection, transaction, message, error))
{
_DBUS_ASSERT_ERROR_IS_CLEAR (error);
@@ -1998,7 +2007,7 @@ bus_driver_handle_message (DBusConnection *connection,
return FALSE;
}
}
-
+
++i;
}
@@ -2009,7 +2018,7 @@ bus_driver_handle_message (DBusConnection *connection,
dbus_set_error (error, DBUS_ERROR_UNKNOWN_METHOD,
"%s does not understand message %s",
DBUS_SERVICE_DBUS, name);
-
+
return FALSE;
}
diff --git a/bus/expirelist.c b/bus/expirelist.c
index 58e1f6d1..946a615c 100644
--- a/bus/expirelist.c
+++ b/bus/expirelist.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "expirelist.h"
#include "test.h"
#include <dbus/dbus-internals.h>
@@ -217,7 +218,7 @@ expire_timeout_handler (void *data)
{
BusExpireList *list = data;
- _dbus_verbose ("Running %s\n", _DBUS_FUNCTION_NAME);
+ _dbus_verbose ("Running\n");
/* note that this may remove the timeout */
bus_expirelist_expire (list);
diff --git a/bus/main.c b/bus/main.c
index d17486dd..53038dbd 100644
--- a/bus/main.c
+++ b/bus/main.c
@@ -4,7 +4,7 @@
* Copyright (C) 2003 Red Hat, Inc.
*
* 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
@@ -14,12 +14,14 @@
* 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 <config.h>
#include "bus.h"
#include "driver.h"
#include <dbus/dbus-internals.h>
@@ -27,7 +29,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#ifdef HAVE_SIGNAL_H
#include <signal.h>
+#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
@@ -47,8 +51,8 @@ signal_handler (int sig)
switch (sig)
{
-#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX
- case SIGIO:
+#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX
+ case SIGIO:
/* explicit fall-through */
#endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */
#ifdef SIGHUP
@@ -56,7 +60,7 @@ signal_handler (int sig)
{
DBusString str;
_dbus_string_init_const (&str, "foo");
- if ((reload_pipe[RELOAD_WRITE_END] > 0) &&
+ if ((reload_pipe[RELOAD_WRITE_END] > 0) &&
!_dbus_write_socket (reload_pipe[RELOAD_WRITE_END], &str, 0, 1))
{
_dbus_warn ("Unable to write to reload pipe.\n");
@@ -71,7 +75,7 @@ signal_handler (int sig)
static void
usage (void)
{
- fprintf (stderr, DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect]\n");
+ fprintf (stderr, DBUS_DAEMON_NAME " [--version] [--session] [--system] [--config-file=FILE] [--print-address[=DESCRIPTOR]] [--print-pid[=DESCRIPTOR]] [--fork] [--nofork] [--introspect] [--address=ADDRESS] [--systemd-activation]\n");
exit (1);
}
@@ -82,7 +86,7 @@ version (void)
"Copyright (C) 2002, 2003 Red Hat, Inc., CodeFactory AB, and others\n"
"This is free software; see the source for copying conditions.\n"
"There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
- VERSION);
+ DBUS_VERSION_STRING);
exit (0);
}
@@ -90,7 +94,7 @@ static void
introspect (void)
{
DBusString xml;
- const char *v_STRING;
+ const char *v_STRING;
if (!_dbus_string_init (&xml))
goto oom;
@@ -102,14 +106,15 @@ introspect (void)
}
v_STRING = _dbus_string_get_const_data (&xml);
- printf ("%s\n", v_STRING);
+ printf ("%s\n", v_STRING);
exit (0);
-
+
oom:
_dbus_warn ("Can not introspect - Out of memory\n");
exit (1);
}
+
static void
check_two_config_files (const DBusString *config_file,
const char *extra_arg)
@@ -123,6 +128,18 @@ check_two_config_files (const DBusString *config_file,
}
static void
+check_two_addresses (const DBusString *address,
+ const char *extra_arg)
+{
+ if (_dbus_string_get_length (address) > 0)
+ {
+ fprintf (stderr, "--%s specified but address %s already requested\n",
+ extra_arg, _dbus_string_get_const_data (address));
+ exit (1);
+ }
+}
+
+static void
check_two_addr_descriptors (const DBusString *addr_fd,
const char *extra_arg)
{
@@ -208,9 +225,6 @@ setup_reload_pipe (DBusLoop *loop)
exit (1);
}
- _dbus_fd_set_close_on_exec (reload_pipe[0]);
- _dbus_fd_set_close_on_exec (reload_pipe[1]);
-
watch = _dbus_watch_new (reload_pipe[RELOAD_READ_END],
DBUS_WATCH_READABLE, TRUE,
handle_reload_watch, NULL, NULL);
@@ -249,6 +263,7 @@ main (int argc, char **argv)
{
DBusError error;
DBusString config_file;
+ DBusString address;
DBusString addr_fd;
DBusString pid_fd;
const char *prev_arg;
@@ -257,11 +272,16 @@ main (int argc, char **argv)
int i;
dbus_bool_t print_address;
dbus_bool_t print_pid;
+ dbus_bool_t is_session_bus;
int force_fork;
+ dbus_bool_t systemd_activation;
if (!_dbus_string_init (&config_file))
return 1;
+ if (!_dbus_string_init (&address))
+ return 1;
+
if (!_dbus_string_init (&addr_fd))
return 1;
@@ -270,7 +290,9 @@ main (int argc, char **argv)
print_address = FALSE;
print_pid = FALSE;
+ is_session_bus = FALSE;
force_fork = FORK_FOLLOW_CONFIG_FILE;
+ systemd_activation = FALSE;
prev_arg = NULL;
i = 1;
@@ -290,6 +312,8 @@ main (int argc, char **argv)
force_fork = FORK_NEVER;
else if (strcmp (arg, "--fork") == 0)
force_fork = FORK_ALWAYS;
+ else if (strcmp (arg, "--systemd-activation") == 0)
+ systemd_activation = TRUE;
else if (strcmp (arg, "--system") == 0)
{
check_two_config_files (&config_file, "system");
@@ -309,7 +333,7 @@ main (int argc, char **argv)
const char *file;
check_two_config_files (&config_file, "config-file");
-
+
file = strchr (arg, '=');
++file;
@@ -320,18 +344,40 @@ main (int argc, char **argv)
strcmp (prev_arg, "--config-file") == 0)
{
check_two_config_files (&config_file, "config-file");
-
+
if (!_dbus_string_append (&config_file, arg))
exit (1);
}
else if (strcmp (arg, "--config-file") == 0)
; /* wait for next arg */
+ else if (strstr (arg, "--address=") == arg)
+ {
+ const char *file;
+
+ check_two_addresses (&address, "address");
+
+ file = strchr (arg, '=');
+ ++file;
+
+ if (!_dbus_string_append (&address, file))
+ exit (1);
+ }
+ else if (prev_arg &&
+ strcmp (prev_arg, "--address") == 0)
+ {
+ check_two_addresses (&address, "address");
+
+ if (!_dbus_string_append (&address, arg))
+ exit (1);
+ }
+ else if (strcmp (arg, "--address") == 0)
+ ; /* wait for next arg */
else if (strstr (arg, "--print-address=") == arg)
{
const char *desc;
check_two_addr_descriptors (&addr_fd, "print-address");
-
+
desc = strchr (arg, '=');
++desc;
@@ -344,7 +390,7 @@ main (int argc, char **argv)
strcmp (prev_arg, "--print-address") == 0)
{
check_two_addr_descriptors (&addr_fd, "print-address");
-
+
if (!_dbus_string_append (&addr_fd, arg))
exit (1);
@@ -357,7 +403,7 @@ main (int argc, char **argv)
const char *desc;
check_two_pid_descriptors (&pid_fd, "print-pid");
-
+
desc = strchr (arg, '=');
++desc;
@@ -370,19 +416,19 @@ main (int argc, char **argv)
strcmp (prev_arg, "--print-pid") == 0)
{
check_two_pid_descriptors (&pid_fd, "print-pid");
-
+
if (!_dbus_string_append (&pid_fd, arg))
exit (1);
-
+
print_pid = TRUE;
}
else if (strcmp (arg, "--print-pid") == 0)
print_pid = TRUE; /* and we'll get the next arg if appropriate */
else
usage ();
-
+
prev_arg = arg;
-
+
++i;
}
@@ -445,6 +491,8 @@ main (int argc, char **argv)
dbus_error_init (&error);
context = bus_context_new (&config_file, force_fork,
&print_addr_pipe, &print_pid_pipe,
+ _dbus_string_get_length(&address) > 0 ? &address : NULL,
+ systemd_activation,
&error);
_dbus_string_free (&config_file);
if (context == NULL)
@@ -458,19 +506,19 @@ main (int argc, char **argv)
/* bus_context_new() closes the print_addr_pipe and
* print_pid_pipe
*/
-
+
setup_reload_pipe (bus_context_get_loop (context));
#ifdef SIGHUP
_dbus_set_signal_handler (SIGHUP, signal_handler);
#endif
-#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX
+#ifdef DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX
_dbus_set_signal_handler (SIGIO, signal_handler);
#endif /* DBUS_BUS_ENABLE_DNOTIFY_ON_LINUX */
-
+
_dbus_verbose ("We are on D-Bus...\n");
_dbus_loop_run (bus_context_get_loop (context));
-
+
bus_context_shutdown (context);
bus_context_unref (context);
bus_selinux_shutdown ();
diff --git a/bus/messagebus-config.in b/bus/messagebus-config.in
new file mode 100644
index 00000000..39459dcb
--- /dev/null
+++ b/bus/messagebus-config.in
@@ -0,0 +1,178 @@
+#!/bin/sh
+#
+# messagebus-config, Copyright 2009 Yaakov Selkowitz
+#
+# This file is part of the Cygwin port of dbus.
+
+# ======================================================================
+# Initialization
+# ======================================================================
+PROGNAME=$(basename $0)
+_tdir=$(dirname $0)
+PROGDIR=$(cd $_tdir && pwd)
+
+CSIH_SCRIPT=/usr/share/csih/cygwin-service-installation-helper.sh
+
+# Subdirectory where the new package is being installed
+PREFIX=@prefix@
+
+# Directory where the config files are stored
+SYSCONFDIR=@sysconfdir@/dbus-1
+DEVDIR=/dev
+LOGDIR=/var/log
+RUNDIR=$(dirname @DBUS_SYSTEM_PID_FILE@)
+SOCKDIR=$(dirname @DBUS_SYSTEM_SOCKET@)
+
+source ${CSIH_SCRIPT}
+
+# ======================================================================
+# Routine: install_service
+# Install messagebus as a service
+# ======================================================================
+install_service() {
+
+ if csih_is_nt
+ then
+
+ # Check if messagebus is installed and remove on user request.
+ if cygrunsrv -Q messagebus > /dev/null 2>&1
+ then
+ csih_warning "The messagebus service is already installed."
+ echo
+ if csih_request "Do you want to reinstall it with different args?"
+ then
+ cygrunsrv -E messagebus
+ cygrunsrv -R messagebus
+ fi
+ fi
+
+ # Install messagebus service if it is not already installed
+ if ! cygrunsrv -Q messagebus > /dev/null 2>&1
+ then
+ echo
+ csih_warning "The following function requires administrator privileges!"
+ if csih_request "Do you want to install messagebus as service?"
+ then
+ if cygrunsrv -I messagebus -d "CYGWIN D-Bus system service" -p @EXPANDED_BINDIR@/dbus-daemon -a "--nofork --system"
+ then
+ echo
+ csih_inform "The messagebus service has been installed under the LocalSystem"
+ csih_inform "account (also known as SYSTEM). To start the service now, call"
+ csih_inform "\`net start messagebus' or \`cygrunsrv -S messagebus'. Otherwise, it"
+ csih_inform "will start automatically after the next reboot."
+ echo
+ csih_inform "Check ${SYSCONFDIR}/system.conf first, if it suits your needs."
+ fi
+ fi # user allowed us to install messagebus
+ fi # messagebus already installed
+ fi # csih_is_nt
+} # --- End of install_service --- #
+
+
+# ======================================================================
+# Main Entry Point
+# ======================================================================
+
+
+# Check how the script has been started. If
+# (1) it has been started by giving the full path and
+# that path is /etc/postinstall, OR
+# (2) Otherwise, if the environment variable
+# CONFIG_AUTO_ANSWER_NO is set
+# then set auto_answer to "no". This allows automatic
+# creation of the config files in /etc w/o overwriting
+# them if they already exist. In both cases, color
+# escape sequences are suppressed, so as to prevent
+# cluttering setup's logfiles.
+if [ "$PROGDIR" = "/etc/postinstall" ]
+then
+ csih_auto_answer="no"
+ csih_disable_color
+fi
+if [ -n "${CONFIG_AUTO_ANSWER_NO}" ]
+then
+ csih_auto_answer="no"
+ csih_disable_color
+fi
+
+
+# ======================================================================
+# Parse options
+# ======================================================================
+while :
+do
+ case $# in
+ 0)
+ break
+ ;;
+ esac
+
+ option=$1
+ shift
+
+ case "$option" in
+ -d | --debug )
+ set -x
+ csih_trace_on
+ ;;
+
+ -y | --yes )
+ csih_auto_answer=yes
+ ;;
+
+ -n | --no )
+ csih_auto_answer=no
+ ;;
+
+ *)
+ echo "usage: ${PROGNAME} [OPTION]..."
+ echo
+ echo "This script creates a basic messagebus configuration."
+ echo
+ echo "Options:"
+ echo " --debug -d Enable shell's debug output."
+ echo " --yes -y Answer all questions with \"yes\" automatically."
+ echo " --no -n Answer all questions with \"no\" automatically."
+ echo
+ exit 1
+ ;;
+
+ esac
+done
+
+# ======================================================================
+# Action!
+# ======================================================================
+
+# Check for ${SYSCONFDIR} directory
+csih_make_dir "${SYSCONFDIR}" "Cannot create global configuration files."
+chmod 775 "${SYSCONFDIR}"
+setfacl -m u:system:rwx "${SYSCONFDIR}"
+
+# Check for ${DEVDIR} directory
+csih_make_dir "${DEVDIR}" "Syslogging using messagebus will not work."
+chmod 775 "${DEVDIR}"
+setfacl -m u:system:rwx "${DEVDIR}"
+
+# Check for ${LOGDIR} directory
+csih_make_dir "${LOGDIR}" "Syslogging using messagebus will not work."
+chmod 775 "${LOGDIR}"
+setfacl -m u:system:rwx "${LOGDIR}"
+
+# Check for ${RUNDIR} directory
+csih_make_dir "${RUNDIR}" "PID files of running processes will not be created."
+chmod 775 "${RUNDIR}"
+setfacl -m u:system:rwx "${RUNDIR}"
+
+# Check for ${SOCKDIR} directory
+csih_make_dir "${SOCKDIR}" "SOCKET files of running processes will not be created."
+chmod 775 "${SOCKDIR}"
+setfacl -m u:system:rwx "${SOCKDIR}"
+
+# maybe: csih_auto_answer=no will skip,
+# interactive user will get a chance to override
+install_service
+
+
+echo
+echo "Configuration finished. Have fun!"
diff --git a/bus/messagebus.in b/bus/messagebus.in
index 1f1004b1..3e2ee07a 100755
--- a/bus/messagebus.in
+++ b/bus/messagebus.in
@@ -68,7 +68,7 @@ case "$1" in
stop
;;
status)
- status $processname
+ status $servicename
RETVAL=$?
;;
restart)
diff --git a/bus/org.freedesktop.dbus-session.plist.in b/bus/org.freedesktop.dbus-session.plist.in
new file mode 100644
index 00000000..40ff370d
--- /dev/null
+++ b/bus/org.freedesktop.dbus-session.plist.in
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Label</key>
+ <string>org.freedesktop.dbus-session</string>
+
+ <key>ServiceIPC</key>
+ <true/>
+
+ <!-- Please uncomment on 10.4; OnDemand doesn't work properly there. -->
+ <!--
+ <key>OnDemand</key>
+ <false />
+ -->
+
+ <key>ProgramArguments</key>
+ <array>
+ <string>@DBUS_DAEMONDIR@/dbus-daemon</string>
+ <string>--nofork</string>
+ <string>--session</string>
+ </array>
+
+ <key>Sockets</key>
+ <dict>
+ <key>unix_domain_listener</key>
+ <dict>
+ <key>SecureSocketWithKey</key>
+ <string>DBUS_LAUNCHD_SESSION_BUS_SOCKET</string>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/bus/policy.c b/bus/policy.c
index bc1d2d9d..a1fff861 100644
--- a/bus/policy.c
+++ b/bus/policy.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "policy.h"
#include "services.h"
#include "test.h"
@@ -168,13 +169,13 @@ bus_policy_new (void)
policy->refcount = 1;
- policy->rules_by_uid = _dbus_hash_table_new (DBUS_HASH_ULONG,
+ policy->rules_by_uid = _dbus_hash_table_new (DBUS_HASH_UINTPTR,
NULL,
free_rule_list_func);
if (policy->rules_by_uid == NULL)
goto failed;
- policy->rules_by_gid = _dbus_hash_table_new (DBUS_HASH_ULONG,
+ policy->rules_by_gid = _dbus_hash_table_new (DBUS_HASH_UINTPTR,
NULL,
free_rule_list_func);
if (policy->rules_by_gid == NULL)
@@ -303,7 +304,7 @@ bus_policy_create_client_policy (BusPolicy *policy,
{
DBusList **list;
- list = _dbus_hash_table_lookup_ulong (policy->rules_by_gid,
+ list = _dbus_hash_table_lookup_uintptr (policy->rules_by_gid,
groups[i]);
if (list != NULL)
@@ -327,7 +328,7 @@ bus_policy_create_client_policy (BusPolicy *policy,
{
DBusList **list;
- list = _dbus_hash_table_lookup_ulong (policy->rules_by_uid,
+ list = _dbus_hash_table_lookup_uintptr (policy->rules_by_uid,
uid);
if (list != NULL)
@@ -517,7 +518,7 @@ get_list (DBusHashTable *hash,
{
DBusList **list;
- list = _dbus_hash_table_lookup_ulong (hash, key);
+ list = _dbus_hash_table_lookup_uintptr (hash, key);
if (list == NULL)
{
@@ -525,7 +526,7 @@ get_list (DBusHashTable *hash,
if (list == NULL)
return NULL;
- if (!_dbus_hash_table_insert_ulong (hash, key, list))
+ if (!_dbus_hash_table_insert_uintptr (hash, key, list))
{
dbus_free (list);
return NULL;
@@ -638,7 +639,7 @@ merge_id_hash (DBusHashTable *dest,
_dbus_hash_iter_init (to_absorb, &iter);
while (_dbus_hash_iter_next (&iter))
{
- unsigned long id = _dbus_hash_iter_get_ulong_key (&iter);
+ unsigned long id = _dbus_hash_iter_get_uintptr_key (&iter);
DBusList **list = _dbus_hash_iter_get_value (&iter);
DBusList **target = get_list (dest, id);
diff --git a/bus/rc.messagebus.in b/bus/rc.messagebus.in
index b147503d..c52ca777 100644
--- a/bus/rc.messagebus.in
+++ b/bus/rc.messagebus.in
@@ -61,7 +61,7 @@ case "$1" in
stop
;;
status)
- status $processname
+ status $servicename
RETVAL=$?
;;
restart)
diff --git a/bus/selinux.c b/bus/selinux.c
index 5a9af5ac..fe04063a 100644
--- a/bus/selinux.c
+++ b/bus/selinux.c
@@ -20,9 +20,13 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include <dbus/dbus-internals.h>
#include <dbus/dbus-string.h>
+#ifndef DBUS_WIN
#include <dbus/dbus-userdb.h>
+#endif
#include "selinux.h"
#include "services.h"
#include "policy.h"
@@ -1088,4 +1092,3 @@ _dbus_change_to_daemon_user (const char *user,
return TRUE;
}
#endif
-
diff --git a/bus/services.c b/bus/services.c
index b260c633..0a049257 100644
--- a/bus/services.c
+++ b/bus/services.c
@@ -21,6 +21,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include <dbus/dbus-hash.h>
#include <dbus/dbus-list.h>
#include <dbus/dbus-mempool.h>
diff --git a/bus/session.conf.in b/bus/session.conf.in
index e7229ad5..e121ff93 100644
--- a/bus/session.conf.in
+++ b/bus/session.conf.in
@@ -12,7 +12,7 @@
the behavior of child processes. -->
<keep_umask/>
- <listen>unix:tmpdir=@DBUS_SESSION_SOCKET_DIR@</listen>
+ <listen>@DBUS_SESSION_BUS_DEFAULT_ADDRESS@</listen>
<standard_session_servicedirs />
@@ -45,8 +45,11 @@
<!-- the memory limits are 1G instead of say 4G because they can't exceed 32-bit signed int max -->
<limit name="max_incoming_bytes">1000000000</limit>
+ <limit name="max_incoming_unix_fds">250000000</limit>
<limit name="max_outgoing_bytes">1000000000</limit>
+ <limit name="max_outgoing_unix_fds">250000000</limit>
<limit name="max_message_size">1000000000</limit>
+ <limit name="max_message_unix_fds">4096</limit>
<limit name="service_start_timeout">120000</limit>
<limit name="auth_timeout">240000</limit>
<limit name="max_completed_connections">100000</limit>
diff --git a/bus/signals.c b/bus/signals.c
index b020a76c..6f97b2b3 100644
--- a/bus/signals.c
+++ b/bus/signals.c
@@ -20,6 +20,8 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+
+#include <config.h>
#include "signals.h"
#include "services.h"
#include "utils.h"
@@ -1018,25 +1020,173 @@ bus_match_rule_parse (DBusConnection *matches_go_to,
return rule;
}
+typedef struct RulePool RulePool;
+struct RulePool
+{
+ /* Maps non-NULL interface names to non-NULL (DBusList **)s */
+ DBusHashTable *rules_by_iface;
+
+ /* List of BusMatchRules which don't specify an interface */
+ DBusList *rules_without_iface;
+};
+
struct BusMatchmaker
{
int refcount;
- DBusList *all_rules;
+ /* Pools of rules, grouped by the type of message they match. 0
+ * (DBUS_MESSAGE_TYPE_INVALID) represents rules that do not specify a message
+ * type.
+ */
+ RulePool rules_by_type[DBUS_NUM_MESSAGE_TYPES];
};
+static void
+rule_list_free (DBusList **rules)
+{
+ while (*rules != NULL)
+ {
+ BusMatchRule *rule;
+
+ rule = (*rules)->data;
+ bus_match_rule_unref (rule);
+ _dbus_list_remove_link (rules, *rules);
+ }
+}
+
+static void
+rule_list_ptr_free (DBusList **list)
+{
+ /* We have to cope with NULL because the hash table frees the "existing"
+ * value (which is NULL) when creating a new table entry...
+ */
+ if (list != NULL)
+ {
+ rule_list_free (list);
+ dbus_free (list);
+ }
+}
+
BusMatchmaker*
bus_matchmaker_new (void)
{
BusMatchmaker *matchmaker;
+ int i;
matchmaker = dbus_new0 (BusMatchmaker, 1);
if (matchmaker == NULL)
return NULL;
matchmaker->refcount = 1;
-
+
+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
+ {
+ RulePool *p = matchmaker->rules_by_type + i;
+
+ p->rules_by_iface = _dbus_hash_table_new (DBUS_HASH_STRING,
+ dbus_free, (DBusFreeFunction) rule_list_ptr_free);
+
+ if (p->rules_by_iface == NULL)
+ goto nomem;
+ }
+
return matchmaker;
+
+ nomem:
+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
+ {
+ RulePool *p = matchmaker->rules_by_type + i;
+
+ if (p->rules_by_iface == NULL)
+ break;
+ else
+ _dbus_hash_table_unref (p->rules_by_iface);
+ }
+
+ return NULL;
+}
+
+static DBusList **
+bus_matchmaker_get_rules (BusMatchmaker *matchmaker,
+ int message_type,
+ const char *interface,
+ dbus_bool_t create)
+{
+ RulePool *p;
+
+ _dbus_assert (message_type >= 0);
+ _dbus_assert (message_type < DBUS_NUM_MESSAGE_TYPES);
+
+ _dbus_verbose ("Looking up rules for message_type %d, interface %s\n",
+ message_type,
+ interface != NULL ? interface : "<null>");
+
+ p = matchmaker->rules_by_type + message_type;
+
+ if (interface == NULL)
+ {
+ return &p->rules_without_iface;
+ }
+ else
+ {
+ DBusList **list;
+
+ list = _dbus_hash_table_lookup_string (p->rules_by_iface, interface);
+
+ if (list == NULL && create)
+ {
+ char *dupped_interface;
+
+ list = dbus_new0 (DBusList *, 1);
+ if (list == NULL)
+ return NULL;
+
+ dupped_interface = _dbus_strdup (interface);
+ if (dupped_interface == NULL)
+ {
+ dbus_free (list);
+ return NULL;
+ }
+
+ _dbus_verbose ("Adding list for type %d, iface %s\n", message_type,
+ interface);
+
+ if (!_dbus_hash_table_insert_string (p->rules_by_iface,
+ dupped_interface, list))
+ {
+ dbus_free (list);
+ dbus_free (dupped_interface);
+ return NULL;
+ }
+ }
+
+ return list;
+ }
+}
+
+static void
+bus_matchmaker_gc_rules (BusMatchmaker *matchmaker,
+ int message_type,
+ const char *interface,
+ DBusList **rules)
+{
+ RulePool *p;
+
+ if (interface == NULL)
+ return;
+
+ if (*rules != NULL)
+ return;
+
+ _dbus_verbose ("GCing HT entry for message_type %u, interface %s\n",
+ message_type, interface);
+
+ p = matchmaker->rules_by_type + message_type;
+
+ _dbus_assert (_dbus_hash_table_lookup_string (p->rules_by_iface, interface)
+ == rules);
+
+ _dbus_hash_table_remove_string (p->rules_by_iface, interface);
}
BusMatchmaker *
@@ -1057,14 +1207,14 @@ bus_matchmaker_unref (BusMatchmaker *matchmaker)
matchmaker->refcount -= 1;
if (matchmaker->refcount == 0)
{
- while (matchmaker->all_rules != NULL)
+ int i;
+
+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
{
- BusMatchRule *rule;
+ RulePool *p = matchmaker->rules_by_type + i;
- rule = matchmaker->all_rules->data;
- bus_match_rule_unref (rule);
- _dbus_list_remove_link (&matchmaker->all_rules,
- matchmaker->all_rules);
+ _dbus_hash_table_unref (p->rules_by_iface);
+ rule_list_free (&p->rules_without_iface);
}
dbus_free (matchmaker);
@@ -1076,17 +1226,31 @@ dbus_bool_t
bus_matchmaker_add_rule (BusMatchmaker *matchmaker,
BusMatchRule *rule)
{
+ DBusList **rules;
+
_dbus_assert (bus_connection_is_active (rule->matches_go_to));
- if (!_dbus_list_append (&matchmaker->all_rules, rule))
+ _dbus_verbose ("Adding rule with message_type %d, interface %s\n",
+ rule->message_type,
+ rule->interface != NULL ? rule->interface : "<null>");
+
+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type,
+ rule->interface, TRUE);
+
+ if (rules == NULL)
+ return FALSE;
+
+ if (!_dbus_list_append (rules, rule))
return FALSE;
if (!bus_connection_add_match_rule (rule->matches_go_to, rule))
{
- _dbus_list_remove_last (&matchmaker->all_rules, rule);
+ _dbus_list_remove_last (rules, rule);
+ bus_matchmaker_gc_rules (matchmaker, rule->message_type,
+ rule->interface, rules);
return FALSE;
}
-
+
bus_match_rule_ref (rule);
#ifdef DBUS_ENABLE_VERBOSE_MODE
@@ -1171,13 +1335,13 @@ match_rule_equal (BusMatchRule *a,
}
static void
-bus_matchmaker_remove_rule_link (BusMatchmaker *matchmaker,
+bus_matchmaker_remove_rule_link (DBusList **rules,
DBusList *link)
{
BusMatchRule *rule = link->data;
bus_connection_remove_match_rule (rule->matches_go_to, rule);
- _dbus_list_remove_link (&matchmaker->all_rules, link);
+ _dbus_list_remove_link (rules, link);
#ifdef DBUS_ENABLE_VERBOSE_MODE
{
@@ -1196,8 +1360,25 @@ void
bus_matchmaker_remove_rule (BusMatchmaker *matchmaker,
BusMatchRule *rule)
{
+ DBusList **rules;
+
+ _dbus_verbose ("Removing rule with message_type %d, interface %s\n",
+ rule->message_type,
+ rule->interface != NULL ? rule->interface : "<null>");
+
bus_connection_remove_match_rule (rule->matches_go_to, rule);
- _dbus_list_remove (&matchmaker->all_rules, rule);
+
+ rules = bus_matchmaker_get_rules (matchmaker, rule->message_type,
+ rule->interface, FALSE);
+
+ /* We should only be asked to remove a rule by identity right after it was
+ * added, so there should be a list for it.
+ */
+ _dbus_assert (rules != NULL);
+
+ _dbus_list_remove (rules, rule);
+ bus_matchmaker_gc_rules (matchmaker, rule->message_type, rule->interface,
+ rules);
#ifdef DBUS_ENABLE_VERBOSE_MODE
{
@@ -1218,29 +1399,38 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
BusMatchRule *value,
DBusError *error)
{
- /* FIXME this is an unoptimized linear scan */
+ DBusList **rules;
+ DBusList *link = NULL;
- DBusList *link;
+ _dbus_verbose ("Removing rule by value with message_type %d, interface %s\n",
+ value->message_type,
+ value->interface != NULL ? value->interface : "<null>");
- /* we traverse backward because bus_connection_remove_match_rule()
- * removes the most-recently-added rule
- */
- link = _dbus_list_get_last_link (&matchmaker->all_rules);
- while (link != NULL)
+ rules = bus_matchmaker_get_rules (matchmaker, value->message_type,
+ value->interface, FALSE);
+
+ if (rules != NULL)
{
- BusMatchRule *rule;
- DBusList *prev;
+ /* we traverse backward because bus_connection_remove_match_rule()
+ * removes the most-recently-added rule
+ */
+ link = _dbus_list_get_last_link (rules);
+ while (link != NULL)
+ {
+ BusMatchRule *rule;
+ DBusList *prev;
- rule = link->data;
- prev = _dbus_list_get_prev_link (&matchmaker->all_rules, link);
+ rule = link->data;
+ prev = _dbus_list_get_prev_link (rules, link);
- if (match_rule_equal (rule, value))
- {
- bus_matchmaker_remove_rule_link (matchmaker, link);
- break;
- }
+ if (match_rule_equal (rule, value))
+ {
+ bus_matchmaker_remove_rule_link (rules, link);
+ break;
+ }
- link = prev;
+ link = prev;
+ }
}
if (link == NULL)
@@ -1250,38 +1440,30 @@ bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
return FALSE;
}
+ bus_matchmaker_gc_rules (matchmaker, value->message_type, value->interface,
+ rules);
+
return TRUE;
}
-void
-bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- DBusConnection *disconnected)
+static void
+rule_list_remove_by_connection (DBusList **rules,
+ DBusConnection *connection)
{
DBusList *link;
- /* FIXME
- *
- * This scans all match rules on the bus. We could avoid that
- * for the rules belonging to the connection, since we keep
- * a list of those; but for the rules that just refer to
- * the connection we'd need to do something more elaborate.
- *
- */
-
- _dbus_assert (bus_connection_is_active (disconnected));
-
- link = _dbus_list_get_first_link (&matchmaker->all_rules);
+ link = _dbus_list_get_first_link (rules);
while (link != NULL)
{
BusMatchRule *rule;
DBusList *next;
rule = link->data;
- next = _dbus_list_get_next_link (&matchmaker->all_rules, link);
+ next = _dbus_list_get_next_link (rules, link);
- if (rule->matches_go_to == disconnected)
+ if (rule->matches_go_to == connection)
{
- bus_matchmaker_remove_rule_link (matchmaker, link);
+ bus_matchmaker_remove_rule_link (rules, link);
}
else if (((rule->flags & BUS_MATCH_SENDER) && *rule->sender == ':') ||
((rule->flags & BUS_MATCH_DESTINATION) && *rule->destination == ':'))
@@ -1292,7 +1474,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
*/
const char *name;
- name = bus_connection_get_name (disconnected);
+ name = bus_connection_get_name (connection);
_dbus_assert (name != NULL); /* because we're an active connection */
if (((rule->flags & BUS_MATCH_SENDER) &&
@@ -1300,7 +1482,7 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
((rule->flags & BUS_MATCH_DESTINATION) &&
strcmp (rule->destination, name) == 0))
{
- bus_matchmaker_remove_rule_link (matchmaker, link);
+ bus_matchmaker_remove_rule_link (rules, link);
}
}
@@ -1308,6 +1490,44 @@ bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
}
}
+void
+bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
+ DBusConnection *connection)
+{
+ int i;
+
+ /* FIXME
+ *
+ * This scans all match rules on the bus. We could avoid that
+ * for the rules belonging to the connection, since we keep
+ * a list of those; but for the rules that just refer to
+ * the connection we'd need to do something more elaborate.
+ */
+
+ _dbus_assert (bus_connection_is_active (connection));
+
+ _dbus_verbose ("Removing all rules for connection %p\n", connection);
+
+ for (i = DBUS_MESSAGE_TYPE_INVALID; i < DBUS_NUM_MESSAGE_TYPES; i++)
+ {
+ RulePool *p = matchmaker->rules_by_type + i;
+ DBusHashIter iter;
+
+ rule_list_remove_by_connection (&p->rules_without_iface, connection);
+
+ _dbus_hash_iter_init (p->rules_by_iface, &iter);
+ while (_dbus_hash_iter_next (&iter))
+ {
+ DBusList **items = _dbus_hash_iter_get_value (&iter);
+
+ rule_list_remove_by_connection (items, connection);
+
+ if (*items == NULL)
+ _dbus_hash_iter_remove_entry (&iter);
+ }
+ }
+}
+
static dbus_bool_t
connection_is_primary_owner (DBusConnection *connection,
const char *service_name)
@@ -1333,8 +1553,11 @@ static dbus_bool_t
match_rule_matches (BusMatchRule *rule,
DBusConnection *sender,
DBusConnection *addressed_recipient,
- DBusMessage *message)
+ DBusMessage *message,
+ BusMatchFlags already_matched)
{
+ int flags;
+
/* All features of the match rule are AND'd together,
* so FALSE if any of them don't match.
*/
@@ -1343,8 +1566,11 @@ match_rule_matches (BusMatchRule *rule,
* or for addressed_recipient may mean a message with no
* specific recipient (i.e. a signal)
*/
-
- if (rule->flags & BUS_MATCH_MESSAGE_TYPE)
+
+ /* Don't bother re-matching features we've already checked implicitly. */
+ flags = rule->flags & (~already_matched);
+
+ if (flags & BUS_MATCH_MESSAGE_TYPE)
{
_dbus_assert (rule->message_type != DBUS_MESSAGE_TYPE_INVALID);
@@ -1352,7 +1578,7 @@ match_rule_matches (BusMatchRule *rule,
return FALSE;
}
- if (rule->flags & BUS_MATCH_INTERFACE)
+ if (flags & BUS_MATCH_INTERFACE)
{
const char *iface;
@@ -1366,7 +1592,7 @@ match_rule_matches (BusMatchRule *rule,
return FALSE;
}
- if (rule->flags & BUS_MATCH_MEMBER)
+ if (flags & BUS_MATCH_MEMBER)
{
const char *member;
@@ -1380,7 +1606,7 @@ match_rule_matches (BusMatchRule *rule,
return FALSE;
}
- if (rule->flags & BUS_MATCH_SENDER)
+ if (flags & BUS_MATCH_SENDER)
{
_dbus_assert (rule->sender != NULL);
@@ -1397,7 +1623,7 @@ match_rule_matches (BusMatchRule *rule,
}
}
- if (rule->flags & BUS_MATCH_DESTINATION)
+ if (flags & BUS_MATCH_DESTINATION)
{
const char *destination;
@@ -1420,7 +1646,7 @@ match_rule_matches (BusMatchRule *rule,
}
}
- if (rule->flags & BUS_MATCH_PATH)
+ if (flags & BUS_MATCH_PATH)
{
const char *path;
@@ -1434,7 +1660,7 @@ match_rule_matches (BusMatchRule *rule,
return FALSE;
}
- if (rule->flags & BUS_MATCH_ARGS)
+ if (flags & BUS_MATCH_ARGS)
{
int i;
DBusMessageIter iter;
@@ -1504,38 +1730,19 @@ match_rule_matches (BusMatchRule *rule,
return TRUE;
}
-dbus_bool_t
-bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
- BusConnections *connections,
- DBusConnection *sender,
- DBusConnection *addressed_recipient,
- DBusMessage *message,
- DBusList **recipients_p)
+static dbus_bool_t
+get_recipients_from_list (DBusList **rules,
+ DBusConnection *sender,
+ DBusConnection *addressed_recipient,
+ DBusMessage *message,
+ DBusList **recipients_p)
{
- /* FIXME for now this is a wholly unoptimized linear search */
- /* Guessing the important optimization is to skip the signal-related
- * match lists when processing method call and exception messages.
- * So separate match rule lists for signals?
- */
-
DBusList *link;
- _dbus_assert (*recipients_p == NULL);
+ if (rules == NULL)
+ return TRUE;
- /* This avoids sending same message to the same connection twice.
- * Purpose of the stamp instead of a bool is to avoid iterating over
- * all connections resetting the bool each time.
- */
- bus_connections_increment_stamp (connections);
-
- /* addressed_recipient is already receiving the message, don't add to list.
- * NULL addressed_recipient means either bus driver, or this is a signal
- * and thus lacks a specific addressed_recipient.
- */
- if (addressed_recipient != NULL)
- bus_connection_mark_stamp (addressed_recipient);
-
- link = _dbus_list_get_first_link (&matchmaker->all_rules);
+ link = _dbus_list_get_first_link (rules);
while (link != NULL)
{
BusMatchRule *rule;
@@ -1545,23 +1752,24 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
#ifdef DBUS_ENABLE_VERBOSE_MODE
{
char *s = match_rule_to_string (rule);
-
+
_dbus_verbose ("Checking whether message matches rule %s for connection %p\n",
s, rule->matches_go_to);
dbus_free (s);
}
#endif
-
+
if (match_rule_matches (rule,
- sender, addressed_recipient, message))
+ sender, addressed_recipient, message,
+ BUS_MATCH_MESSAGE_TYPE | BUS_MATCH_INTERFACE))
{
_dbus_verbose ("Rule matched\n");
-
+
/* Append to the list if we haven't already */
if (bus_connection_mark_stamp (rule->matches_go_to))
{
if (!_dbus_list_append (recipients_p, rule->matches_go_to))
- goto nomem;
+ return FALSE;
}
#ifdef DBUS_ENABLE_VERBOSE_MODE
else
@@ -1571,14 +1779,72 @@ bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
#endif /* DBUS_ENABLE_VERBOSE_MODE */
}
- link = _dbus_list_get_next_link (&matchmaker->all_rules, link);
+ link = _dbus_list_get_next_link (rules, link);
}
return TRUE;
+}
- nomem:
- _dbus_list_clear (recipients_p);
- return FALSE;
+dbus_bool_t
+bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
+ BusConnections *connections,
+ DBusConnection *sender,
+ DBusConnection *addressed_recipient,
+ DBusMessage *message,
+ DBusList **recipients_p)
+{
+ int type;
+ const char *interface;
+ DBusList **neither, **just_type, **just_iface, **both;
+
+ _dbus_assert (*recipients_p == NULL);
+
+ /* This avoids sending same message to the same connection twice.
+ * Purpose of the stamp instead of a bool is to avoid iterating over
+ * all connections resetting the bool each time.
+ */
+ bus_connections_increment_stamp (connections);
+
+ /* addressed_recipient is already receiving the message, don't add to list.
+ * NULL addressed_recipient means either bus driver, or this is a signal
+ * and thus lacks a specific addressed_recipient.
+ */
+ if (addressed_recipient != NULL)
+ bus_connection_mark_stamp (addressed_recipient);
+
+ type = dbus_message_get_type (message);
+ interface = dbus_message_get_interface (message);
+
+ neither = bus_matchmaker_get_rules (matchmaker, DBUS_MESSAGE_TYPE_INVALID,
+ NULL, FALSE);
+ just_type = just_iface = both = NULL;
+
+ if (interface != NULL)
+ just_iface = bus_matchmaker_get_rules (matchmaker,
+ DBUS_MESSAGE_TYPE_INVALID, interface, FALSE);
+
+ if (type > DBUS_MESSAGE_TYPE_INVALID && type < DBUS_NUM_MESSAGE_TYPES)
+ {
+ just_type = bus_matchmaker_get_rules (matchmaker, type, NULL, FALSE);
+
+ if (interface != NULL)
+ both = bus_matchmaker_get_rules (matchmaker, type, interface, FALSE);
+ }
+
+ if (!(get_recipients_from_list (neither, sender, addressed_recipient,
+ message, recipients_p) &&
+ get_recipients_from_list (just_iface, sender, addressed_recipient,
+ message, recipients_p) &&
+ get_recipients_from_list (just_type, sender, addressed_recipient,
+ message, recipients_p) &&
+ get_recipients_from_list (both, sender, addressed_recipient,
+ message, recipients_p)))
+ {
+ _dbus_list_clear (recipients_p);
+ return FALSE;
+ }
+
+ return TRUE;
}
#ifdef DBUS_BUILD_TESTS
@@ -1943,7 +2209,7 @@ check_matches (dbus_bool_t expected_to_match,
_dbus_assert (rule != NULL);
/* We can't test sender/destination rules since we pass NULL here */
- matched = match_rule_matches (rule, NULL, NULL, message);
+ matched = match_rule_matches (rule, NULL, NULL, message, 0);
if (matched != expected_to_match)
{
diff --git a/bus/signals.h b/bus/signals.h
index 4ea10755..eeb1d2d0 100644
--- a/bus/signals.h
+++ b/bus/signals.h
@@ -77,7 +77,7 @@ dbus_bool_t bus_matchmaker_remove_rule_by_value (BusMatchmaker *matchmaker,
void bus_matchmaker_remove_rule (BusMatchmaker *matchmaker,
BusMatchRule *rule);
void bus_matchmaker_disconnected (BusMatchmaker *matchmaker,
- DBusConnection *disconnected);
+ DBusConnection *connection);
dbus_bool_t bus_matchmaker_get_recipients (BusMatchmaker *matchmaker,
BusConnections *connections,
DBusConnection *sender,
diff --git a/bus/test-launch-helper.c b/bus/test-launch-helper.c
index d78ca519..ab36b6ec 100644
--- a/bus/test-launch-helper.c
+++ b/bus/test-launch-helper.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "test.h"
#include "activation-helper.h"
diff --git a/bus/test-main.c b/bus/test-main.c
index f19d0d55..cb0ed008 100644
--- a/bus/test-main.c
+++ b/bus/test-main.c
@@ -21,12 +21,14 @@
*
*/
+#include <config.h>
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
#include <dbus/dbus-string.h>
#include <dbus/dbus-sysdeps.h>
#include <dbus/dbus-internals.h>
+#include <dbus/dbus-message-private.h>
#include "selinux.h"
#ifdef DBUS_BUILD_TESTS
@@ -69,6 +71,7 @@ test_post_hook (void)
if (_dbus_getenv ("DBUS_TEST_SELINUX"))
bus_selinux_shutdown ();
check_memleaks (progname);
+ _dbus_check_fdleaks();
}
int
@@ -138,6 +141,14 @@ main (int argc, char **argv)
die ("service reload");
test_post_hook ();
+#ifdef HAVE_UNIX_FD_PASSING
+ test_pre_hook ();
+ printf ("%s: Running unix fd passing test\n", argv[0]);
+ if (!bus_unix_fds_passing_test (&test_data_dir))
+ die ("unix fd passing");
+ test_post_hook ();
+#endif
+
printf ("%s: Success\n", argv[0]);
diff --git a/bus/test-system.c b/bus/test-system.c
index 6224ab5e..56a7d4ea 100644
--- a/bus/test-system.c
+++ b/bus/test-system.c
@@ -21,6 +21,7 @@
*
*/
+#include <config.h>
#include "test.h"
#include <stdio.h>
#include <stdlib.h>
diff --git a/bus/test.c b/bus/test.c
index 8dfe098c..6efad6e0 100644
--- a/bus/test.c
+++ b/bus/test.c
@@ -4,7 +4,7 @@
* Copyright (C) 2003 Red Hat, Inc.
*
* 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
@@ -14,7 +14,7 @@
* 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
@@ -45,7 +45,7 @@ client_watch_callback (DBusWatch *watch,
* if the code in activation.c for the babysitter
* watch handler is fixed.
*/
-
+
return dbus_watch_handle (watch, condition);
}
@@ -54,7 +54,7 @@ add_client_watch (DBusWatch *watch,
void *data)
{
DBusConnection *connection = data;
-
+
return _dbus_loop_add_watch (client_loop,
watch, client_watch_callback, connection,
NULL);
@@ -65,7 +65,7 @@ remove_client_watch (DBusWatch *watch,
void *data)
{
DBusConnection *connection = data;
-
+
_dbus_loop_remove_watch (client_loop,
watch, client_watch_callback, connection);
}
@@ -89,7 +89,7 @@ add_client_timeout (DBusTimeout *timeout,
void *data)
{
DBusConnection *connection = data;
-
+
return _dbus_loop_add_timeout (client_loop, timeout, client_timeout_callback, connection, NULL);
}
@@ -98,7 +98,7 @@ remove_client_timeout (DBusTimeout *timeout,
void *data)
{
DBusConnection *connection = data;
-
+
_dbus_loop_remove_timeout (client_loop, timeout, client_timeout_callback, connection);
}
@@ -111,27 +111,27 @@ client_disconnect_filter (DBusConnection *connection,
DBUS_INTERFACE_LOCAL,
"Disconnected"))
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-
+
_dbus_verbose ("Removing client %p in disconnect handler\n",
connection);
-
+
_dbus_list_remove (&clients, connection);
dbus_connection_unref (connection);
-
+
if (clients == NULL)
{
_dbus_loop_unref (client_loop);
client_loop = NULL;
}
-
+
return DBUS_HANDLER_RESULT_HANDLED;
}
dbus_bool_t
bus_setup_debug_client (DBusConnection *connection)
{
- dbus_bool_t retval;
+ dbus_bool_t retval;
if (!dbus_connection_add_filter (connection,
client_disconnect_filter,
@@ -146,7 +146,7 @@ bus_setup_debug_client (DBusConnection *connection)
if (client_loop == NULL)
goto out;
}
-
+
if (!dbus_connection_set_watch_functions (connection,
add_client_watch,
remove_client_watch,
@@ -154,7 +154,7 @@ bus_setup_debug_client (DBusConnection *connection)
connection,
NULL))
goto out;
-
+
if (!dbus_connection_set_timeout_functions (connection,
add_client_timeout,
remove_client_timeout,
@@ -164,16 +164,16 @@ bus_setup_debug_client (DBusConnection *connection)
if (!_dbus_list_append (&clients, connection))
goto out;
-
+
retval = TRUE;
-
+
out:
if (!retval)
{
dbus_connection_remove_filter (connection,
client_disconnect_filter,
NULL);
-
+
dbus_connection_set_watch_functions (connection,
NULL, NULL, NULL, NULL, NULL);
dbus_connection_set_timeout_functions (connection,
@@ -187,7 +187,7 @@ bus_setup_debug_client (DBusConnection *connection)
client_loop = NULL;
}
}
-
+
return retval;
}
@@ -196,7 +196,7 @@ bus_test_clients_foreach (BusConnectionForeachFunction function,
void *data)
{
DBusList *link;
-
+
link = _dbus_list_get_first_link (&clients);
while (link != NULL)
{
@@ -205,7 +205,7 @@ bus_test_clients_foreach (BusConnectionForeachFunction function,
if (!(* function) (connection, data))
break;
-
+
link = next;
}
}
@@ -214,7 +214,7 @@ dbus_bool_t
bus_test_client_listed (DBusConnection *connection)
{
DBusList *link;
-
+
link = _dbus_list_get_first_link (&clients);
while (link != NULL)
{
@@ -223,7 +223,7 @@ bus_test_client_listed (DBusConnection *connection)
if (c == connection)
return TRUE;
-
+
link = next;
}
@@ -232,17 +232,17 @@ bus_test_client_listed (DBusConnection *connection)
void
bus_test_run_clients_loop (dbus_bool_t block_once)
-{
+{
if (client_loop == NULL)
return;
_dbus_verbose ("---> Dispatching on \"client side\"\n");
-
+
/* dispatch before we block so pending dispatches
* won't make our block return early
*/
_dbus_loop_dispatch (client_loop);
-
+
/* Do one blocking wait, since we're expecting data */
if (block_once)
{
@@ -262,12 +262,12 @@ bus_test_run_bus_loop (BusContext *context,
dbus_bool_t block_once)
{
_dbus_verbose ("---> Dispatching on \"server side\"\n");
-
+
/* dispatch before we block so pending dispatches
* won't make our block return early
*/
_dbus_loop_dispatch (bus_context_get_loop (context));
-
+
/* Do one blocking wait, since we're expecting data */
if (block_once)
{
@@ -298,7 +298,7 @@ bus_context_new_test (const DBusString *test_data_dir,
DBusString config_file;
DBusString relative;
BusContext *context;
-
+
if (!_dbus_string_init (&config_file))
{
_dbus_warn ("No memory\n");
@@ -321,25 +321,25 @@ bus_context_new_test (const DBusString *test_data_dir,
_dbus_string_free (&config_file);
return NULL;
}
-
+
dbus_error_init (&error);
- context = bus_context_new (&config_file, FALSE, NULL, NULL, &error);
+ context = bus_context_new (&config_file, FALSE, NULL, NULL, NULL, FALSE, &error);
if (context == NULL)
{
_DBUS_ASSERT_ERROR_IS_SET (&error);
-
+
_dbus_warn ("Failed to create debug bus context from configuration file %s: %s\n",
filename, error.message);
dbus_error_free (&error);
-
+
_dbus_string_free (&config_file);
-
+
return NULL;
}
_dbus_string_free (&config_file);
-
+
return context;
}
diff --git a/bus/test.h b/bus/test.h
index 72d68b09..45024e65 100644
--- a/bus/test.h
+++ b/bus/test.h
@@ -24,8 +24,6 @@
#ifndef BUS_TEST_H
#define BUS_TEST_H
-#include <config.h>
-
#ifdef DBUS_BUILD_TESTS
#include <dbus/dbus.h>
@@ -51,7 +49,9 @@ void bus_test_run_everything (BusContext *context);
BusContext* bus_context_new_test (const DBusString *test_data_dir,
const char *filename);
-
+#ifdef HAVE_UNIX_FD_PASSING
+dbus_bool_t bus_unix_fds_passing_test (const DBusString *test_data_dir);
+#endif
#endif