]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
replaced sscanf with tokenizer
authorJelte Jansen <jeltejan@NLnetLabs.nl>
Tue, 5 Apr 2005 09:44:52 +0000 (09:44 +0000)
committerJelte Jansen <jeltejan@NLnetLabs.nl>
Tue, 5 Apr 2005 09:44:52 +0000 (09:44 +0000)
added some debug messages

rr.c
str2host.c

diff --git a/rr.c b/rr.c
index 9e906236a2d2c1f31701460f8887bdd587a64451..7d29e20510fe79e5ee2584dbb8bca25a97d3d0cf 100644 (file)
--- a/rr.c
+++ b/rr.c
@@ -150,7 +150,19 @@ ldns_rr_new_frm_str(const char *str)
        rdata = XMALLOC(char, MAX_PACKETLEN + 1);
        str_normalized = ldns_rr_str_normalize(str);
        
+/*
        sscanf(str_normalized, "%255s%20s%10s%9s%65535c", owner, ttl, clas, type, rdata);
+*/
+       rd = strtok(str_normalized, "\t \0");
+       strncpy(owner, rd, MAX_DOMAINLEN + 1);
+       rd = strtok(NULL, "\t \0");
+       strncpy(ttl, rd, 21);
+       rd = strtok(NULL, "\t \0");
+       strncpy(clas, rd, 11);
+       rd = strtok(NULL, "\t \0");
+       strncpy(type, rd, 10);
+       rd = strtok(NULL, "\0");
+       strncpy(rdata, rd, MAX_PACKETLEN + 1);
 
        ldns_rr_set_owner(new, ldns_dname_new_frm_str(owner));
        /* ttl might be more complicated, like 2h, or 3d5h */
@@ -165,7 +177,6 @@ ldns_rr_new_frm_str(const char *str)
        r_max = ldns_rr_descriptor_maximum(desc);
        r_min = ldns_rr_descriptor_minimum(desc);
 
-       /* this breaks with nsec */
        for(rd = strtok(rdata, "\t \0"), r_cnt =0; rd; rd = strtok(NULL, "\t \0"), r_cnt++) {
                r = ldns_rdf_new_frm_str(
                        ldns_rr_descriptor_field_type(desc, r_cnt),
@@ -181,6 +192,7 @@ ldns_rr_new_frm_str(const char *str)
                        return NULL;
                }
        }
+       
        return new;
 }
 
index 0a0b1eda2e3859403abd4ff1b4651760a3b85c33..fff5667d2975566cecf9dab0ca78277abc80520d 100644 (file)
@@ -343,12 +343,15 @@ ldns_str2rdf_b64(ldns_rdf **rd, const char *str)
        i = (uint16_t) b64_pton((const char*)str, buffer, 
                                b64_ntop_calculate_size(strlen(str)));
        if (-1 == i) {
+               /* todo: remove print */
+               printf("BAD B64: %s\n", str);
                return LDNS_STATUS_INVALID_B64;
        } else {
                *rd = ldns_rdf_new_frm_data(
                        LDNS_RDF_TYPE_B64, (uint16_t) i, buffer);
        }
        FREE(buffer);
+
        return LDNS_STATUS_OK;
 }