From: Miek Gieben Date: Thu, 7 Apr 2005 12:41:27 +0000 (+0000) Subject: rrsig rdata as LDNS_RDF_TYPE_TIME X-Git-Tag: release-0.50~149 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3c92c76719d7277dcf59424b61ee6938d142a35d;p=thirdparty%2Fldns.git rrsig rdata as LDNS_RDF_TYPE_TIME --- diff --git a/rr.c b/rr.c index 2bcd0ae6..cdf7c3d0 100644 --- a/rr.c +++ b/rr.c @@ -899,7 +899,7 @@ static const ldns_rdf_type type_ipseckey_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 diff --git a/run-test18.c b/run-test18.c index 970f696a..2fd5ec28 100644 --- a/run-test18.c +++ b/run-test18.c @@ -56,6 +56,17 @@ main() rr = ldns_rr_new_frm_str("a.miek.nl. 1800 IN MX 10 \\."); ldns_rr_print(stdout, rr); printf("\n"); + + printf("rr sig with inception as epoch number\n"); + rr = ldns_rr_new_frm_str("nlnetlabs.nl. 86400 IN RRSIG DNSKEY RSASHA1 2 86400 1114695776 1112103776 43791 nlnetlabs.nl. FE//RZ0Z1sMzea0ioOLFpUIcM3wnxLGndtKUXJSM3SQ3BlYok2fUTiI+zegNoB1YdylWsfohZJfjkODrOJO9PSbN7hMHmzFEsDFAbCU75TySBuxv2UQlQVuTznxtRdvLGIRGxRhPmjlc/gtJPMB4XJKUWmtkzlTVKqZU7oNCsLA="); + ldns_rr_print(stdout, rr); + printf("\n"); + + printf("rr sig with inception as date\n"); + rr = ldns_rr_new_frm_str("nlnetlabs.nl. 86400 IN RRSIG DNSKEY RSASHA1 2 86400 20050105121300 1112103776 43791 nlnetlabs.nl. FE//RZ0Z1sMzea0ioOLFpUIcM3wnxLGndtKUXJSM3SQ3BlYok2fUTiI+zegNoB1YdylWsfohZJfjkODrOJO9PSbN7hMHmzFEsDFAbCU75TySBuxv2UQlQVuTznxtRdvLGIRGxRhPmjlc/gtJPMB4XJKUWmtkzlTVKqZU7oNCsLA="); + + ldns_rr_print(stdout, rr); + printf("\n"); /* miss formed */ rr = ldns_rr_new_frm_str("a.miek.nl. 1800 IN MX 10"); diff --git a/str2host.c b/str2host.c index dc2cb24e..b6a44cdd 100644 --- a/str2host.c +++ b/str2host.c @@ -63,17 +63,28 @@ ldns_str2rdf_int16(ldns_rdf **rd, const char *shortstr) ldns_status ldns_str2rdf_time(ldns_rdf **rd, const char *time) { - /* convert a time YYHM to wireformat */ + /* convert a time YYDDMMHHMMSS to wireformat */ 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; + /* handle it as 32 bits */ + l = htonl((uint32_t)strtol((char*)time, &end, 0)); + if(*end != 0) { + FREE(r); + return LDNS_STATUS_ERR; + } else { + memcpy(r, &l, sizeof(uint32_t)); + *rd = ldns_rdf_new_frm_data( + LDNS_RDF_TYPE_INT32, sizeof(uint32_t), r); + FREE(r); + return LDNS_STATUS_OK; + } } else { l = htonl(timegm(&tm)); memcpy(r, &l, sizeof(uint32_t));