summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHariharasubramanian R <hramasub@in.ibm.com>2015-10-31 22:45:48 -0500
committerPatrick Williams <patrick@stwcx.xyz>2015-10-31 23:08:32 -0500
commit4a0b6fbcec075dd357ca1cccf6734412003a6366 (patch)
treeedf06a8daf84554c009835e47716f59de5711b66
parentc2d7946a5ba027fe3cc88de953d17383bfdfed23 (diff)
downloadipmi-fru-parser-4a0b6fbcec075dd357ca1cccf6734412003a6366.tar.gz
ipmi-fru-parser-4a0b6fbcec075dd357ca1cccf6734412003a6366.zip
Store time in ISO8601 format.
-rw-r--r--frup.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/frup.c b/frup.c
index d280a99..7979f70 100644
--- a/frup.c
+++ b/frup.c
@@ -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
OpenPOWER on IntegriCloud