diff options
author | Hariharasubramanian R <hramasub@in.ibm.com> | 2015-10-31 22:45:48 -0500 |
---|---|---|
committer | Patrick Williams <patrick@stwcx.xyz> | 2015-10-31 23:08:32 -0500 |
commit | 4a0b6fbcec075dd357ca1cccf6734412003a6366 (patch) | |
tree | edf06a8daf84554c009835e47716f59de5711b66 | |
parent | c2d7946a5ba027fe3cc88de953d17383bfdfed23 (diff) | |
download | ipmi-fru-parser-4a0b6fbcec075dd357ca1cccf6734412003a6366.tar.gz ipmi-fru-parser-4a0b6fbcec075dd357ca1cccf6734412003a6366.zip |
Store time in ISO8601 format.
-rw-r--r-- | frup.c | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -175,6 +175,25 @@ const char* vpd_key_names [] = * * -------------------------------------------------------------------- */ + +static size_t _to_time_str (uint32_t mfg_date_time, char* timestr, uint32_t len) +{ + struct tm tm; + time_t t; + size_t s; + + ASSERT (timestr); + ASSERT (len); + + memset (&tm, '\0', sizeof (struct tm)); + + t = mfg_date_time; + gmtime_r (&t, &tm); + s = strftime (timestr, len, "%F - %H:%M:%S", &tm); + + return s; +} + /* private method to parse type/length */ static int _parse_type_length (const void *areabuf, @@ -716,6 +735,7 @@ parse_fru (const void* msgbuf, sd_bus_message* vpdtbl) ipmi_fru_area_info_t fru_area_info [ IPMI_FRU_AREA_TYPE_MAX ]; ipmi_fru_common_hdr_t* chdr = NULL; uint8_t* hdr = NULL; + char timestr [ OPENBMC_VPD_VAL_LEN ]; ipmi_fru_field_t vpd_info [ OPENBMC_VPD_KEY_MAX ]; @@ -836,7 +856,8 @@ parse_fru (const void* msgbuf, sd_bus_message* vpdtbl) if (i==OPENBMC_VPD_KEY_BOARD_MFG_DATE) { - sd_bus_message_append (vpdtbl, "sa{y}", vpd_key_names[i], mfg_date_time); + _to_time_str (mfg_date_time, timestr, OPENBMC_VPD_VAL_LEN); + sd_bus_message_append (vpdtbl, "{sv}", vpd_key_names[i], "s", timestr); #if IPMI_FRU_PARSER_DEBUG printf ("[%s] = [%d]\n", vpd_key_names[i], mfg_date_time); #else @@ -873,6 +894,7 @@ int parse_fru_area (const uint8_t area, const void* msgbuf, const uint8_t len, s ipmi_fru_common_hdr_t* chdr = NULL; uint8_t* hdr = NULL; const uint8_t* ipmi_fru_field_str=NULL; + char timestr [ OPENBMC_VPD_VAL_LEN ]; ipmi_fru_field_t vpd_info [ OPENBMC_VPD_KEY_MAX ]; @@ -943,7 +965,8 @@ int parse_fru_area (const uint8_t area, const void* msgbuf, const uint8_t len, s { if (i==OPENBMC_VPD_KEY_BOARD_MFG_DATE) { - sd_bus_message_append (vpdtbl, "sa{y}", vpd_key_names[i], mfg_date_time); + _to_time_str (mfg_date_time, timestr, OPENBMC_VPD_VAL_LEN); + sd_bus_message_append (vpdtbl, "{sv}", vpd_key_names[i], "s", timestr); #if IPMI_FRU_PARSER_DEBUG printf ("Board : [%s] = [%d]\n", vpd_key_names[i], mfg_date_time); #else |