From db5e8f26947114f06480dd22b9db7e22e50ee133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 24 Aug 2016 05:56:37 +0200 Subject: Imported Upstream version 3.0.0 --- util/ihealth.c | 52 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 9 deletions(-) (limited to 'util/ihealth.c') diff --git a/util/ihealth.c b/util/ihealth.c index abc7fdb..1389ba2 100644 --- a/util/ihealth.c +++ b/util/ihealth.c @@ -82,7 +82,7 @@ extern int oem_supermicro_get_firmware_str(char *pstr, int sz); /*oem_supermicro * Global variables */ static char * progname = "ihealth"; -static char * progver = "2.99"; +static char * progver = "3.00"; static char fdebug = 0; static char fipmilan = 0; static char fcanonical = 0; @@ -135,6 +135,36 @@ int oem_get_health(char *pstr, int sz) return rv; } +char *getdmiprod(void) +{ + char *prod = ""; +#ifdef LINUX + static char dmiprod[32]; + char cmd[160]; + char *dmitmp = "/tmp/dmi.tmp"; + FILE *fp; + int rv, i; + if (fipmilan) return(prod); + sprintf(cmd,"dmidecode | grep -A6 \"^Base Board\" |grep 'Product Name' |cut -f2 -d':' |awk '{ print $1 }' >%s",dmitmp); + rv = system(cmd); + if (rv == 0) { + fp = fopen(dmitmp,"r"); + if (fp == NULL) rv = -1; + else { + if (fgets(dmiprod, sizeof(dmiprod), fp) == NULL) rv = -2; + else { + for (i=0; i