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 /modules | |
parent | e941b2ada4ef3cad921d0fe87dcc75baf2cdcb73 (diff) |
devices/storage - added WWN/EUI Identifier and IEEE OUI
Diffstat (limited to 'modules')
-rw-r--r-- | modules/devices/storage.c | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/modules/devices/storage.c b/modules/devices/storage.c index 8bbb524d..fd5132da 100644 --- a/modules/devices/storage.c +++ b/modules/devices/storage.c @@ -87,7 +87,7 @@ gboolean __scan_udisks2_devices(void) { gchar *udisks2_storage_list = NULL, *features = NULL, *moreinfo = NULL; gchar *devid, *size, *tmp = NULL, *media_comp = NULL, *ven_tag = NULL; const gchar *url, *media_label, *alabel, *icon, *media_curr = NULL; - int n = 0, i, j; + int n = 0, i, j, m; // http://storaged.org/doc/udisks2-api/latest/gdbus-org.freedesktop.UDisks2.Drive.html#gdbus-property-org-freedesktop-UDisks2-Drive.MediaCompatibility static struct { @@ -304,6 +304,33 @@ gboolean __scan_udisks2_devices(void) { if (disk->connection_bus && strlen(disk->connection_bus) > 0) { moreinfo = h_strdup_cprintf(_("Connection bus=%s\n"), moreinfo, disk->connection_bus); } + + tmp = NULL; + if (disk->wwid) { + m = strlen(disk->wwid); + if (m > 2 && m % 2 == 0){ + for (j = 4; j < m; j = j + 2) { + tmp = h_strdup_cprintf("%s%c%c", tmp, j > 4 ? "-": "", disk->wwid[j], disk->wwid[j+1]); + } + } + moreinfo = h_strdup_cprintf("%s=%s\n", moreinfo, + g_str_has_prefix(disk->wwid, "nna.") ? _("WWN"): + (g_str_has_prefix(disk->wwid, "eui.") ? _("EUI "): "Unknown ID"), + tmp); + g_free(tmp); + } + else{ + moreinfo = h_strdup_cprintf("%s=%s\n", moreinfo, _("WWN / EUI"), _("(None)")); + } + + if (ext->wwid_oui.oui) { + moreinfo = h_strdup_cprintf(_("$^$%s=[%s] %s\n"), + moreinfo, + _("IEEE OUI"), ext->wwid_oui.oui, + ext->wwid_oui.vendor ? + ext->wwid_oui.vendor : _("(Unknown)")); + } + if (ext->nvme_controller) { gchar *nvme = nvme_pci_sections(ext->nvme_controller); if (nvme) |