]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
rrsig rdata as LDNS_RDF_TYPE_TIME
authorMiek Gieben <miekg@NLnetLabs.nl>
Thu, 7 Apr 2005 12:41:27 +0000 (12:41 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Thu, 7 Apr 2005 12:41:27 +0000 (12:41 +0000)
rr.c
run-test18.c
str2host.c

diff --git a/rr.c b/rr.c
index 2bcd0ae6f299e1b2a7ea68e2156568412a0ad928..cdf7c3d09275e2bb5bbd6e8ff83d5ef58b8dd624 100644 (file)
--- 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
index 970f696a9185996cf079ae30383c77a9e0d6c2ca..2fd5ec285abda7d14ac07486e1a9db04fc385954 100644 (file)
@@ -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");
index dc2cb24ed9b015b78275620ad41d10a665a2dc9c..b6a44cdd06f6c1121f0821d2e5c3867b1068f093 100644 (file)
@@ -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));