#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
+#include <time.h>
#include <ldns/host2str.h>
#include <ldns/packet.h>
ldns_status
ldns_rdf2buffer_str_time(ldns_buffer *output, ldns_rdf *rdf)
{
+ /* create a YYYYMMDDHHMMSS string if possible */
uint32_t data = read_uint32(ldns_rdf_data(rdf));
- ldns_buffer_printf(output, "%lu", (unsigned long) data);
+ time_t data_time;
+ struct tm tm;
+ char date_buf[16];
+
+ memcpy(&data_time, &data, sizeof(uint32_t));
+ /* TODO check for NULL */
+ (void)gmtime_r(&data_time, &tm);
+
+ (void)strftime(date_buf, 15, "%Y%m%d%H%M%S", &tm);
+
+ ldns_buffer_printf(output, "%s", date_buf);
+
return ldns_buffer_status(output);
}
ldns_status
ldns_str2rdf_time(ldns_rdf **rd, const char *time)
{
- /* convert a time YYDDMMHHMMSS to wireformat */
+ /* convert a time YYYYDDMMHHMMSS to wireformat */
uint16_t *r = NULL;
struct tm tm;
uint32_t l;