From: Zdenek S. <st...@us...> - 2017-04-06 19:54:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "ipmitool". The branch, master has been updated via ecb4cfbff855bb24099f2a80a6dd558518702c7d (commit) from 1664902525a1c3771b4d8b3ccab7ea1ba6b2bdd1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ecb4cfbff855bb24099f2a80a6dd558518702c7d Author: srinivasa_mareedu <sri...@de...> Date: Mon Jan 23 16:41:09 2017 +0530 ID:472 - Fix The Most recent Addition/Erase date Fix the Most recent Addition/Erase date are not matched between in-band and out-band. ipmitool SDR code doesn't have to check for valid date to print based on 'Delete SDR command supported' and 'Partial Add SDR command supported', if 0xffffffff is taken. Also 'Timestamp' data type needs to change to time_t(long) because same data type is using for gmtime(time_t) API, it has different behaviour for Linux and Windows C. diff --git a/lib/ipmi_sdr.c b/lib/ipmi_sdr.c index 2a9cbe3..167c252 100644 --- a/lib/ipmi_sdr.c +++ b/lib/ipmi_sdr.c @@ -4217,7 +4217,7 @@ ipmi_sdr_get_info(struct ipmi_intf *intf, * returns pointer to static buffer */ static char * -ipmi_sdr_timestamp(uint32_t stamp) +ipmi_sdr_timestamp(time_t stamp) { static char tbuf[40]; time_t s = (time_t) stamp; @@ -4240,7 +4240,7 @@ ipmi_sdr_timestamp(uint32_t stamp) int ipmi_sdr_print_info(struct ipmi_intf *intf) { - uint32_t timestamp; + time_t timestamp; uint16_t free_space; struct get_sdr_repository_info_rsp sdr_repository_info; @@ -4274,21 +4274,51 @@ ipmi_sdr_print_info(struct ipmi_intf *intf) break; } - timestamp = - (sdr_repository_info.most_recent_addition_timestamp[3] << 24) | - (sdr_repository_info.most_recent_addition_timestamp[2] << 16) | - (sdr_repository_info.most_recent_addition_timestamp[1] << 8) | - sdr_repository_info.most_recent_addition_timestamp[0]; - printf("Most recent Addition : %s\n", - ipmi_sdr_timestamp(timestamp)); - - timestamp = - (sdr_repository_info.most_recent_erase_timestamp[3] << 24) | - (sdr_repository_info.most_recent_erase_timestamp[2] << 16) | - (sdr_repository_info.most_recent_erase_timestamp[1] << 8) | - sdr_repository_info.most_recent_erase_timestamp[0]; - printf("Most recent Erase : %s\n", - ipmi_sdr_timestamp(timestamp)); + if(sdr_repository_info.delete_sdr_supported && sdr_repository_info.partial_add_sdr_supported) + { + timestamp = + (sdr_repository_info.most_recent_addition_timestamp[3] << 24) | + (sdr_repository_info.most_recent_addition_timestamp[2] << 16) | + (sdr_repository_info.most_recent_addition_timestamp[1] << 8) | + sdr_repository_info.most_recent_addition_timestamp[0]; + printf("Most recent Addition : %s\n", + ipmi_sdr_timestamp(timestamp)); + + timestamp = + (sdr_repository_info.most_recent_erase_timestamp[3] << 24) | + (sdr_repository_info.most_recent_erase_timestamp[2] << 16) | + (sdr_repository_info.most_recent_erase_timestamp[1] << 8) | + sdr_repository_info.most_recent_erase_timestamp[0]; + printf("Most recent Erase : %s\n", + ipmi_sdr_timestamp(timestamp)); + } + else if (sdr_repository_info.partial_add_sdr_supported) + { + timestamp = + (sdr_repository_info.most_recent_addition_timestamp[3] << 24) | + (sdr_repository_info.most_recent_addition_timestamp[2] << 16) | + (sdr_repository_info.most_recent_addition_timestamp[1] << 8) | + sdr_repository_info.most_recent_addition_timestamp[0]; + printf("Most recent Addition : %s\n", + ipmi_sdr_timestamp(timestamp)); + printf("Most recent Erase : NA\n"); + } + else if(sdr_repository_info.delete_sdr_supported) + { + printf("Most recent Addition : NA\n"); + timestamp = + (sdr_repository_info.most_recent_erase_timestamp[3] << 24) | + (sdr_repository_info.most_recent_erase_timestamp[2] << 16) | + (sdr_repository_info.most_recent_erase_timestamp[1] << 8) | + sdr_repository_info.most_recent_erase_timestamp[0]; + printf("Most recent Erase : %s\n", + ipmi_sdr_timestamp(timestamp)); + } + else + { + printf("Most recent Addition : NA\n"); + printf("Most recent Erase : NA\n"); + } printf("SDR overflow : %s\n", (sdr_repository_info.overflow_flag ? "yes" : "no")); ----------------------------------------------------------------------- Summary of changes: lib/ipmi_sdr.c | 64 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 17 deletions(-) hooks/post-receive -- ipmitool |