summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac3
-rw-r--r--daemon/.gitignore2
-rw-r--r--daemon/Makefile.am14
-rw-r--r--daemon/gvfs-daemon.service.in3
-rw-r--r--daemon/gvfsbackend.c9
5 files changed, 25 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index 4fc3ccb0..61068cd7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,6 +33,9 @@ AC_SUBST(GLIB_LIBS)
PKG_CHECK_MODULES(DBUS, dbus-1)
AC_SUBST(DBUS_CFLAGS)
AC_SUBST(DBUS_LIBS)
+AC_ARG_WITH(dbus_service_dir, [ --with-dbus-service-dir=PATH choose directory for dbus service files, [default=PREFIX/share/dbus-1/services]], with_dbus_service_dir="$withval", with_dbus_service_dir=$datadir/dbus-1/services)
+DBUS_SERVICE_DIR=$with_dbus_service_dir
+AC_SUBST(DBUS_SERVICE_DIR)
GETTEXT_PACKAGE=gvfs
diff --git a/daemon/.gitignore b/daemon/.gitignore
index 3df41a58..40dc437f 100644
--- a/daemon/.gitignore
+++ b/daemon/.gitignore
@@ -9,4 +9,4 @@ Makefile.in
gvfs-daemon
gvfs-daemon-smb
gvfs-daemon-test
-
+*.service
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index afbc92b9..97d95782 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -17,9 +17,21 @@ libraries = \
$(top_builddir)/common/libcommon.la \
$(GLIB_LIBS) $(DBUS_LIBS)
+# D-BUS service file
+%.service: %.service.in ../config.log
+ sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
+
+servicedir = $(DBUS_SERVICE_DIR)
+service_in_files = gvfs-daemon.service.in
+service_DATA = gvfs-daemon.service
+
+EXTRA_DIST = gvfs-daemon.service.in
+
+DISTCLEANFILES = gvfs-daemon.service
+
+libexec_PROGRAMS=gvfs-daemon
noinst_PROGRAMS = \
- gvfs-daemon \
gvfs-daemon-test \
gvfs-daemon-smb \
$(NULL)
diff --git a/daemon/gvfs-daemon.service.in b/daemon/gvfs-daemon.service.in
new file mode 100644
index 00000000..69e51a66
--- /dev/null
+++ b/daemon/gvfs-daemon.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gtk.vfs.Daemon
+Exec=@libexecdir@/gvfs-daemon
diff --git a/daemon/gvfsbackend.c b/daemon/gvfsbackend.c
index 51565732..66dd0151 100644
--- a/daemon/gvfsbackend.c
+++ b/daemon/gvfsbackend.c
@@ -169,6 +169,7 @@ g_vfs_backend_register_with_daemon (GVfsBackend *backend,
DBusMessage *message, *reply;
DBusMessageIter iter;
char *icon = "icon";
+ DBusError error;
g_vfs_daemon_add_job_source (daemon, G_VFS_JOB_SOURCE (backend));
backend->object_path = g_vfs_daemon_register_mount (daemon,
@@ -197,13 +198,13 @@ g_vfs_backend_register_with_daemon (GVfsBackend *backend,
dbus_message_set_auto_start (message, TRUE);
+ dbus_error_init (&error);
reply = dbus_connection_send_with_reply_and_block (conn, message,
- -1, NULL);
- if (reply == NULL ||
- dbus_message_get_type (reply) == DBUS_MESSAGE_TYPE_ERROR)
+ -1, &error);
+ if (reply == NULL)
{
/* TODO: handle better */
- g_print ("failed to register mountpoint");
+ g_error ("failed to register mountpoint: %s", error.message);
exit (1);
}