mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
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.
This commit is contained in:
parent
1664902525
commit
ecb4cfbff8
@ -4217,7 +4217,7 @@ ipmi_sdr_get_info(struct ipmi_intf *intf,
|
|||||||
* returns pointer to static buffer
|
* returns pointer to static buffer
|
||||||
*/
|
*/
|
||||||
static char *
|
static char *
|
||||||
ipmi_sdr_timestamp(uint32_t stamp)
|
ipmi_sdr_timestamp(time_t stamp)
|
||||||
{
|
{
|
||||||
static char tbuf[40];
|
static char tbuf[40];
|
||||||
time_t s = (time_t) stamp;
|
time_t s = (time_t) stamp;
|
||||||
@ -4240,7 +4240,7 @@ ipmi_sdr_timestamp(uint32_t stamp)
|
|||||||
int
|
int
|
||||||
ipmi_sdr_print_info(struct ipmi_intf *intf)
|
ipmi_sdr_print_info(struct ipmi_intf *intf)
|
||||||
{
|
{
|
||||||
uint32_t timestamp;
|
time_t timestamp;
|
||||||
uint16_t free_space;
|
uint16_t free_space;
|
||||||
|
|
||||||
struct get_sdr_repository_info_rsp sdr_repository_info;
|
struct get_sdr_repository_info_rsp sdr_repository_info;
|
||||||
@ -4274,6 +4274,8 @@ ipmi_sdr_print_info(struct ipmi_intf *intf)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(sdr_repository_info.delete_sdr_supported && sdr_repository_info.partial_add_sdr_supported)
|
||||||
|
{
|
||||||
timestamp =
|
timestamp =
|
||||||
(sdr_repository_info.most_recent_addition_timestamp[3] << 24) |
|
(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[2] << 16) |
|
||||||
@ -4289,6 +4291,34 @@ ipmi_sdr_print_info(struct ipmi_intf *intf)
|
|||||||
sdr_repository_info.most_recent_erase_timestamp[0];
|
sdr_repository_info.most_recent_erase_timestamp[0];
|
||||||
printf("Most recent Erase : %s\n",
|
printf("Most recent Erase : %s\n",
|
||||||
ipmi_sdr_timestamp(timestamp));
|
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",
|
printf("SDR overflow : %s\n",
|
||||||
(sdr_repository_info.overflow_flag ? "yes" : "no"));
|
(sdr_repository_info.overflow_flag ? "yes" : "no"));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user