summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <davidz@redhat.com>2008-07-16 14:51:35 +0000
committerDavid Zeuthen <davidz@src.gnome.org>2008-07-16 14:51:35 +0000
commitd00f83965fd05db283b24f30bc38e07465caa40b (patch)
tree745a2803f0c12d036463d7166150be8a86a8ba11
parent41e274896ba75b1ce65316783e4c351b5d3473f2 (diff)
downloadgvfs-d00f83965fd05db283b24f30bc38e07465caa40b.tar.gz
Avoid setting up proxy volume monitors if no session bus is available.
2008-07-16 David Zeuthen <davidz@redhat.com> * monitor/proxy/gproxyvolumemonitor.c: * monitor/proxy/gproxyvolumemonitor.h: * monitor/proxy/remote-volume-monitor-module.c: Avoid setting up proxy volume monitors if no session bus is available. Fixes a crasher with the Fedora NetworkManager system settings plug-in that is now using GIO to do file monitoring. svn path=/trunk/; revision=1818
-rw-r--r--ChangeLog9
-rw-r--r--monitor/proxy/gproxyvolumemonitor.c8
-rw-r--r--monitor/proxy/gproxyvolumemonitor.h2
-rw-r--r--monitor/proxy/remote-volume-monitor-module.c3
4 files changed, 19 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 46abe854..8cac8cd8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-07-16 David Zeuthen <davidz@redhat.com>
+
+ * monitor/proxy/gproxyvolumemonitor.c:
+ * monitor/proxy/gproxyvolumemonitor.h:
+ * monitor/proxy/remote-volume-monitor-module.c:
+ Avoid setting up proxy volume monitors if no session bus is
+ available. Fixes a crasher with the Fedora NetworkManager system
+ settings plug-in that is now using GIO to do file monitoring.
+
2008-07-08 David Zeuthen <davidz@redhat.com>
* monitor/hal/Makefile.am: Fix 'make distcheck'.
diff --git a/monitor/proxy/gproxyvolumemonitor.c b/monitor/proxy/gproxyvolumemonitor.c
index 720a6134..e17a198b 100644
--- a/monitor/proxy/gproxyvolumemonitor.c
+++ b/monitor/proxy/gproxyvolumemonitor.c
@@ -947,11 +947,14 @@ register_volume_monitor (GTypeModule *type_module,
priority);
}
-void
+gboolean
g_proxy_volume_monitor_setup_session_bus_connection (void)
{
+ gboolean ret;
DBusError dbus_error;
+ ret = FALSE;
+
G_LOCK (proxy_vm);
if (the_session_bus != NULL)
{
@@ -981,8 +984,11 @@ g_proxy_volume_monitor_setup_session_bus_connection (void)
the_volume_monitors = g_hash_table_new_full (g_int_hash, g_int_equal, NULL, NULL);
+ ret = TRUE;
+
out:
G_UNLOCK (proxy_vm);
+ return ret;
}
void
diff --git a/monitor/proxy/gproxyvolumemonitor.h b/monitor/proxy/gproxyvolumemonitor.h
index 3709186f..eb24fdab 100644
--- a/monitor/proxy/gproxyvolumemonitor.h
+++ b/monitor/proxy/gproxyvolumemonitor.h
@@ -62,7 +62,7 @@ GProxyMount *g_proxy_volume_monitor_get_mount_for_id (GProxyVolumeMonitor *v
DBusConnection *g_proxy_volume_monitor_get_dbus_connection (GProxyVolumeMonitor *volume_monitor);
const char *g_proxy_volume_monitor_get_dbus_name (GProxyVolumeMonitor *volume_monitor);
-void g_proxy_volume_monitor_setup_session_bus_connection (void);
+gboolean g_proxy_volume_monitor_setup_session_bus_connection (void);
void g_proxy_volume_monitor_teardown_session_bus_connection (void);
diff --git a/monitor/proxy/remote-volume-monitor-module.c b/monitor/proxy/remote-volume-monitor-module.c
index 6aed82d0..f675bc41 100644
--- a/monitor/proxy/remote-volume-monitor-module.c
+++ b/monitor/proxy/remote-volume-monitor-module.c
@@ -43,7 +43,8 @@ g_io_module_load (GIOModule *module)
bindtextdomain (GETTEXT_PACKAGE, GVFS_LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- g_proxy_volume_monitor_setup_session_bus_connection ();
+ if (!g_proxy_volume_monitor_setup_session_bus_connection ())
+ goto out;
g_proxy_drive_register (module);
g_proxy_mount_register (module);