diff options
author | Ondrej Čerman <ondrej.cerman@gmail.com> | 2021-10-16 23:37:45 +0200 |
---|---|---|
committer | Ondrej Čerman <ondrej.cerman@gmail.com> | 2021-10-19 19:31:50 +0200 |
commit | 0444fa61fa43112c8a3d1025223ea1821ed21d97 (patch) | |
tree | 185f69f3b570ffc87695a1b1dcefc3225c6f1569 /hardinfo/udisks2_util.c | |
parent | e941b2ada4ef3cad921d0fe87dcc75baf2cdcb73 (diff) |
devices/storage - added WWN/EUI Identifier and IEEE OUI
Diffstat (limited to 'hardinfo/udisks2_util.c')
-rw-r--r-- | hardinfo/udisks2_util.c | 12 |
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); |