]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
print signatures times correctly
authorMiek Gieben <miekg@NLnetLabs.nl>
Tue, 1 Mar 2005 14:39:38 +0000 (14:39 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Tue, 1 Mar 2005 14:39:38 +0000 (14:39 +0000)
host2str.c
ldns/rdata.h
rr.c
run-test13.c
str2host.c

index 964537cf5f071222e53fe29263fb46369657631f..e0918f03511d3fbbcafd2af7d0c9c522f1fad7ef 100644 (file)
@@ -156,8 +156,20 @@ ldns_rdf2buffer_str_int32(ldns_buffer *output, ldns_rdf *rdf)
 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);
 }
 
index e734cdc0fc2916df956237995c074e8485474b9a..7e3a96ef5ad7052ab5e77de80f7d3f703f2473e0 100644 (file)
@@ -60,9 +60,9 @@ enum ldns_enum_rdf_type
        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,
diff --git a/rr.c b/rr.c
index 1de1bc8e1dc0495eb3c4e4c0824bb8b466140f5e..602a68484b71835ba201c121fa184d2789aceedd 100644 (file)
--- a/rr.c
+++ b/rr.c
@@ -171,9 +171,10 @@ ldns_rr_new_frm_str(const char *str)
                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;
@@ -645,8 +646,8 @@ static const ldns_rdf_type type_nsap_ptr_wireformat[] = {
        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[] = {
@@ -705,7 +706,8 @@ 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 40c8546f03907c2e2c0c4a01394852d12bf631f6..9a327eee11436013b8889ea0b5089fd4e60d2384 100644 (file)
@@ -32,17 +32,23 @@ main(int argc, char **argv)
        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");
@@ -58,6 +64,8 @@ main(int argc, char **argv)
        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);
@@ -67,6 +75,8 @@ main(int argc, char **argv)
        if (sig) {
                ldns_rr_print(stdout,sig);
                printf("\n");
+       } else {
+               abort();
        }
 
        /* try to verify some things */
index 369f3385b7464f8c12161a002e3dc1a4f2a238d0..e0a9de4f8ccb77c1548438ad95d1e99def6c54ea 100644 (file)
@@ -67,13 +67,24 @@ ldns_str2rdf_time(ldns_rdf **rd, const char *time)
        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));