aboutsummaryrefslogtreecommitdiff
path: root/hardinfo/udisks2_util.c
diff options
context:
space:
mode:
authorOndrej Čerman <ondrej.cerman@gmail.com>2021-10-16 23:37:45 +0200
committerOndrej Čerman <ondrej.cerman@gmail.com>2021-10-19 19:31:50 +0200
commit0444fa61fa43112c8a3d1025223ea1821ed21d97 (patch)
tree185f69f3b570ffc87695a1b1dcefc3225c6f1569 /hardinfo/udisks2_util.c
parente941b2ada4ef3cad921d0fe87dcc75baf2cdcb73 (diff)
devices/storage - added WWN/EUI Identifier and IEEE OUI
Diffstat (limited to 'hardinfo/udisks2_util.c')
-rw-r--r--hardinfo/udisks2_util.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/hardinfo/udisks2_util.c b/hardinfo/udisks2_util.c
index e86e59d3..e764de2a 100644
--- a/hardinfo/udisks2_util.c
+++ b/hardinfo/udisks2_util.c
@@ -264,6 +264,7 @@ void udiskd_free(udiskd *u) {
g_free(u->revision);
g_free(u->block_dev);
g_free(u->serial);
+ g_free(u->wwid);
g_free(u->connection_bus);
g_free(u->partition_table);
udiskp_free(u->partitions);
@@ -483,6 +484,17 @@ gpointer get_udisks2_drive_info(const char *blockdev, GDBusProxy *block,
u->serial = g_variant_dup_string(v, NULL);
g_variant_unref(v);
}
+ v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "WWN");
+ if (v){
+ str = g_variant_get_string(v, NULL);
+ if (g_str_has_prefix(str, "0x")) {
+ u->wwid = g_strdup_printf("nna.%s", str+2);
+ }
+ else if (g_str_has_prefix(str, "nna.") || g_str_has_prefix(str, "eui.")) {
+ u->wwid = g_strdup(str);
+ }
+ g_variant_unref(v);
+ }
v = get_dbus_property(drive, UDISKS2_DRIVE_INTERFACE, "ConnectionBus");
if (v){
u->connection_bus = g_variant_dup_string(v, NULL);