[gvfs] udisks2: Set G_VOLUME_IDENTIFIER_KIND_CLASS identifier for volumes
- From: David Zeuthen <davidz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gvfs] udisks2: Set G_VOLUME_IDENTIFIER_KIND_CLASS identifier for volumes
- Date: Thu, 1 Mar 2012 19:10:16 +0000 (UTC)
commit 31f24aa3bdfa7f53e74d4e24fcb79a3b7ed0d0ce
Author: David Zeuthen <davidz redhat com>
Date: Thu Mar 1 14:08:44 2012 -0500
udisks2: Set G_VOLUME_IDENTIFIER_KIND_CLASS identifier for volumes
This identifier was discussed in
https://bugzilla.gnome.org/show_bug.cgi?id=668295
and added to GLib with this commit
http://git.gnome.org/browse/glib/commit/?id=10fbfcf09010e423cfc79c54e8da50b62a0f4b8a
For now, we do the ifndef dance instead of hard-requiring GLib master.
Signed-off-by: David Zeuthen <davidz redhat com>
monitor/udisks2/gvfsudisks2volume.c | 30 ++++++++++++++++++++++++++++--
1 files changed, 28 insertions(+), 2 deletions(-)
---
diff --git a/monitor/udisks2/gvfsudisks2volume.c b/monitor/udisks2/gvfsudisks2volume.c
index af2cdf3..8524267 100644
--- a/monitor/udisks2/gvfsudisks2volume.c
+++ b/monitor/udisks2/gvfsudisks2volume.c
@@ -656,6 +656,30 @@ gvfs_udisks2_volume_get_mount (GVolume *volume)
/* ---------------------------------------------------------------------------------------------------- */
+static gboolean
+gvfs_udisks2_volume_is_network_class (GVfsUDisks2Volume *volume)
+{
+ gboolean ret = FALSE;
+ if (volume->mount_point != NULL)
+ {
+ const gchar *fstype = g_unix_mount_point_get_fs_type (volume->mount_point);
+ if (g_strcmp0 (fstype, "nfs") == 0 ||
+ g_strcmp0 (fstype, "nfs4") == 0 ||
+ g_strcmp0 (fstype, "cifs") == 0 ||
+ g_strcmp0 (fstype, "smbfs") == 0 ||
+ g_strcmp0 (fstype, "ncpfs") == 0)
+ ret = TRUE;
+ }
+ return ret;
+}
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+/* can remove this once we depend on gio >= 2.31.19 */
+#ifndef G_VOLUME_IDENTIFIER_KIND_CLASS
+#define G_VOLUME_IDENTIFIER_KIND_CLASS "class"
+#endif
+
static gchar *
gvfs_udisks2_volume_get_identifier (GVolume *_volume,
const gchar *kind)
@@ -677,6 +701,8 @@ gvfs_udisks2_volume_get_identifier (GVolume *_volume,
else if (strcmp (kind, G_VOLUME_IDENTIFIER_KIND_UUID) == 0)
ret = strlen (uuid) > 0 ? g_strdup (uuid) : NULL;
}
+ if (strcmp (kind, G_VOLUME_IDENTIFIER_KIND_CLASS) == 0)
+ ret = g_strdup (gvfs_udisks2_volume_is_network_class (volume) ? "network" : "device");
return ret;
}
@@ -688,14 +714,14 @@ gvfs_udisks2_volume_enumerate_identifiers (GVolume *_volume)
GPtrArray *p;
p = g_ptr_array_new ();
- g_ptr_array_add (p, g_strdup (G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE));
-
+ g_ptr_array_add (p, g_strdup (G_VOLUME_IDENTIFIER_KIND_CLASS));
if (volume->block != NULL)
{
const gchar *label;
const gchar *uuid;
label = udisks_block_get_id_label (volume->block);
uuid = udisks_block_get_id_uuid (volume->block);
+ g_ptr_array_add (p, g_strdup (G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE));
if (strlen (label) > 0)
g_ptr_array_add (p, g_strdup (G_VOLUME_IDENTIFIER_KIND_LABEL));
if (strlen (uuid) > 0)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]