From b18f5bf2db0fba2e7e539f68645836036d940d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 29 Apr 2015 15:44:44 +0200 Subject: Imported Upstream version 2.9.6 --- util/ihealth.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'util/ihealth.c') diff --git a/util/ihealth.c b/util/ihealth.c index 6f6f0e1..5167950 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.93"; +static char * progver = "2.96"; static char fdebug = 0; static char fipmilan = 0; static char fcanonical = 0; @@ -723,10 +723,13 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec) case 1576: prodstr = "(X9DRi)"; break; case 1585: prodstr = "(X9SCA)"; break; case 1603: prodstr = "(X9SPU)"; break; /*0x0643*/ + case 1636: prodstr = "(X9DRH)"; break; /*0x0664*/ case 1643: prodstr = "(X9SRL)"; break; /*0x066b*/ case 1797: prodstr = "(X9DR7)"; break; /*0x0705*/ - case 43025: prodstr = "(H8DGU)"; break; + case 4520: prodstr = "(H8DGU)"; break; + case 43025: prodstr = "(H8DGU-F)"; break; case 43707: prodstr = "(X8DTH)"; break; + case 48145: prodstr = "(H8DG6)"; break; default: prodstr = ""; break; } if (!fipmilan) lan_ch_restrict = 1; /*fw bug, gets 0xd4 locally*/ @@ -737,6 +740,14 @@ void show_devid_all(int dtype, uchar *devrec, int sdevrec) default: prodstr = ""; break; } break; + case VENDOR_IBM: /*=0x0002*/ + switch(prod) { /* show product names for some */ + case 0x000e: prodstr = "(x3755)"; break; + case 0x00dc: prodstr = "(x3650)"; break; + case 0x8848: prodstr = "(eServer 360S)"; break; + default: prodstr = ""; break; + } + break; default: prodstr = ""; break; @@ -771,7 +782,8 @@ int GetPowerOnHours(unsigned int *val) if (rc == 0 && cc == 0) { /* show the hours (32-bits) */ hrs = resp[1] | (resp[2] << 8) | (resp[3] << 16) | (resp[4] << 24); - if (resp[0] == 60) /*normal*/ i = 1; + /* 60=normal, more is OOB, so avoid div-by-zero*/ + if ((resp[0] <= 0) || (resp[0] >= 60)) i = 1; else { i = 60 / resp[0]; hrs = hrs / i; @@ -894,7 +906,7 @@ main(int argc, char **argv) printf(" -o set Operating System to this string\n"); printf(" -p1 set restore policy: 0=off, 1=last, 2=on\n"); printf(" -s get the IPMI Session info also\n"); - print_lan_opt_usage(); + print_lan_opt_usage(0); ret = ERR_USAGE; goto health_end; } -- cgit v1.2.3