ldns_status
ldns_rdf2buffer_str_time(ldns_buffer *output, ldns_rdf *rdf)
{
- uint32_t data = read_uint32(ldns_rdf_data(rdf));
- ldns_buffer_printf(output, "%lu", (unsigned long) data);
+ uint32_t data;
+ struct tm *tm;
+ time_t t;
+ char *st;
+
+ data = read_uint32(ldns_rdf_data(rdf));
+
+ t = (time_t) data;
+ tm = gmtime(&t);
+ st = XMALLOC(char, 15);
+
+ (void)strftime(st, 15, "%Y%m%d%H%M%S", tm);
+ ldns_buffer_printf(output, "%s", st);
+ FREE(st);
return ldns_buffer_status(output);
}
LDNS_RDF_TYPE_UNKNOWN,
/** time */
LDNS_RDF_TYPE_TIME,
- /** tsig time 48 bits */
/** period */
LDNS_RDF_TYPE_PERIOD,
+ /** tsig time 48 bits */
LDNS_RDF_TYPE_TSIGTIME,
/** protocol and port bitmaps */
LDNS_RDF_TYPE_SERVICE,
r = ldns_rdf_new_frm_str(
ldns_rr_descriptor_field_type(desc, r_cnt),
rd);
-#ifdef DEBUG
+
printf("rd str [%s] %d\n", rd, r_cnt);
-#endif
+ printf("type %d\n",ldns_rr_descriptor_field_type(desc, r_cnt));
+
if (!r) {
printf("rdf conversion mismatch\n");
return NULL;
LDNS_RDF_TYPE_STR
};
static const ldns_rdf_type type_sig_wireformat[] = {
- LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_TIME,
- LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT16,
+ LDNS_RDF_TYPE_TYPE, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT32,
+ LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_INT16,
LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_B64
};
static const ldns_rdf_type type_key_wireformat[] = {
};
static const ldns_rdf_type type_rrsig_wireformat[] = {
LDNS_RDF_TYPE_TYPE, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT32,
- LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_B64
+ LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_INT16,
+ LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_B64
};
static const ldns_rdf_type type_nsec_wireformat[] = {
LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_NSEC
if (RR) {
ldns_rr_print(stdout, RR);
printf("\n");
+ } else {
+ abort();
}
RR = ldns_rr_new_frm_str("miek.nl. 3600 IN MX (\n\t10\n\telektron.atoom.net.\n\t)");
if (RR) {
ldns_rr_print(stdout, RR);
printf("\n");
+ } else {
+ abort();
}
RR = ldns_rr_new_frm_str(" nlnetlabs.nl. 84236 IN DNSKEY 257 3 5 AQPzzTWMz8qSWIQlfRnPckx2BiVmkVN6LPupO3mbz7FhLSnm26n6iG9NLby97Ji453aWZY3M5/xJBSOS2vWtco2t8C0+xeO1bc/d6ZTy32DHchpW6rDH1vp86Ll+ha0tmwyy9QP7y2bVw5zSbFCrefk8qCUBgfHm9bHzMG1UBYtEIQ==");
if (RR) {
ldns_rr_print(stdout, RR);
printf("\n");
+ } else {
+ abort();
}
printf("\n*** Okay, now the real dnssec testing ***\n\n");
if (rrset) {
ldns_rr_list_print(stdout,rrset);
printf("\n");
+ } else {
+ abort();
}
ldns_rr_set_push_rr(rrset2, ldns_rr_new_frm_str("www.nlnetlabs.nl. 86354 IN A 213.154.224.2"));
ldns_rr_list_print(stdout,rrset2);
if (sig) {
ldns_rr_print(stdout,sig);
printf("\n");
+ } else {
+ abort();
}
/* try to verify some things */
uint16_t *r = NULL;
struct tm tm;
uint32_t l;
+ char *end;
/* Try to scan the time... */
r = (uint16_t*)MALLOC(uint32_t);
if((char*)strptime(time, "%Y%m%d%H%M%S", &tm) == NULL) {
- FREE(r);
- return LDNS_STATUS_ERR;
+ /* this means it is the date in seconds after 1970 */
+ l = htonl((uint32_t)strtol((char*)time, &end, 0));
+ if(*end != 0) {
+ /* also not */
+ FREE(r);
+ return LDNS_STATUS_ERR;
+ } else {
+ memcpy(r, &l, sizeof(uint32_t));
+ *rd = ldns_rdf_new_frm_data(
+ LDNS_RDF_TYPE_TIME, sizeof(uint32_t), r);
+ return LDNS_STATUS_OK;
+ }
} else {
l = htonl(timegm(&tm));
memcpy(r, &l, sizeof(uint32_t));