Store time in ISO8601 format.
diff --git a/frup.c b/frup.c
index d280a99..7979f70 100644
--- a/frup.c
+++ b/frup.c
@@ -175,6 +175,25 @@
*
* --------------------------------------------------------------------
*/
+
+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 @@
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 @@
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 @@
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 @@
{
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