aboutsummaryrefslogtreecommitdiff
path: root/modules/devices/dmi.c
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2012-01-07 17:31:46 -0200
committerLeandro Pereira <leandro@hardinfo.org>2012-01-07 17:33:12 -0200
commit75848a2ccdcb1985180bf026da3f39405851a6d9 (patch)
treef9b900ccf034c1b6733b8d5c3aa5f0a07d156ff6 /modules/devices/dmi.c
parentb58f976580d40ef6dfa33cc111253e3c549ca049 (diff)
Show moterboard information in the new summary screen
Diffstat (limited to 'modules/devices/dmi.c')
-rw-r--r--modules/devices/dmi.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/modules/devices/dmi.c b/modules/devices/dmi.c
index 8cc45462..9d54fa9c 100644
--- a/modules/devices/dmi.c
+++ b/modules/devices/dmi.c
@@ -43,10 +43,17 @@ DMIInfo dmi_info_table[] = {
gchar *dmi_info = NULL;
+static void add_to_moreinfo(const char *group, const char *key, char *value)
+{
+ char *new_key = g_strconcat("DMI:", group, ":", key, NULL);
+ g_hash_table_replace(moreinfo, new_key, g_strdup(g_strstrip(value)));
+}
+
gboolean dmi_get_info_dmidecode()
{
FILE *dmi_pipe;
gchar buffer[256];
+ const gchar *group;
DMIInfo *info;
gboolean dmi_failed = FALSE;
gint i;
@@ -60,8 +67,8 @@ gboolean dmi_get_info_dmidecode()
info = &dmi_info_table[i];
if (*(info->name) == '$') {
- dmi_info = h_strdup_cprintf("[%s]\n", dmi_info,
- (info->name) + 1);
+ group = info->name + 1;
+ dmi_info = h_strdup_cprintf("[%s]\n", dmi_info, group);
} else {
gchar *temp;
@@ -77,6 +84,8 @@ gboolean dmi_get_info_dmidecode()
dmi_failed = TRUE;
break;
}
+
+ add_to_moreinfo(group, info->name, buffer);
const gchar *url = vendor_get_url(buffer);
if (url) {
@@ -121,6 +130,7 @@ gboolean dmi_get_info_sys()
{
FILE *dmi_file;
gchar buffer[256];
+ const gchar *group;
DMIInfo *info;
gboolean dmi_failed = FALSE;
gint i;
@@ -134,8 +144,8 @@ gboolean dmi_get_info_sys()
info = &dmi_info_table[i];
if (*(info->name) == '$') {
- dmi_info = h_strdup_cprintf("[%s]\n", dmi_info,
- (info->name) + 1);
+ group = info->name + 1;
+ dmi_info = h_strdup_cprintf("[%s]\n", dmi_info, group);
} else {
if (!info->file)
continue;
@@ -143,6 +153,8 @@ gboolean dmi_get_info_sys()
if ((dmi_file = fopen(info->file, "r"))) {
(void)fgets(buffer, 256, dmi_file);
fclose(dmi_file);
+
+ add_to_moreinfo(group, info->name, buffer);
const gchar *url = vendor_get_url(buffer);
if (url) {