diff options
author | David Zeuthen <davidz@redhat.com> | 2008-07-16 14:51:35 +0000 |
---|---|---|
committer | David Zeuthen <davidz@src.gnome.org> | 2008-07-16 14:51:35 +0000 |
commit | d00f83965fd05db283b24f30bc38e07465caa40b (patch) | |
tree | 745a2803f0c12d036463d7166150be8a86a8ba11 | |
parent | 41e274896ba75b1ce65316783e4c351b5d3473f2 (diff) | |
download | gvfs-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-- | ChangeLog | 9 | ||||
-rw-r--r-- | monitor/proxy/gproxyvolumemonitor.c | 8 | ||||
-rw-r--r-- | monitor/proxy/gproxyvolumemonitor.h | 2 | ||||
-rw-r--r-- | monitor/proxy/remote-volume-monitor-module.c | 3 |
4 files changed, 19 insertions, 3 deletions
@@ -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); |