]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
removed double code
authorJelte Jansen <jelte@NLnetLabs.nl>
Fri, 19 Dec 2008 13:47:38 +0000 (13:47 +0000)
committerJelte Jansen <jelte@NLnetLabs.nl>
Fri, 19 Dec 2008 13:47:38 +0000 (13:47 +0000)
dnssec.c
str2host.c

index a5785f39041b5fcfcff916b6b715a5079d8c2350..e0be3ceed8b1dc8e0d78a27a9d52c7d271c9f5a0 100644 (file)
--- a/dnssec.c
+++ b/dnssec.c
@@ -607,14 +607,13 @@ ldns_dnssec_create_nsec_bitmap(ldns_rr_type rr_type_list[],
                        cur_window++;
                        cur_window_max = 0;
                        memset(cur_data, 0, 32);
-               } else {
-                       cur_data[i%32] = bitmap[i];
-                       if (bitmap[i] > 0) {
-                               cur_window_max = i%32 + 1;
-                       }
+               }
+               cur_data[i%32] = bitmap[i];
+               if (bitmap[i] > 0) {
+                       cur_window_max = i%32;
                }
        }
-       if (cur_window_max > 0) {
+       if (cur_window_max > 0 || cur_data[0] != 0) {
                /* this window has stuff, add it */
                data = LDNS_XREALLOC(data,
                                                 uint8_t,
index 6d7cee864f51b0e702b34018104f164edaf013f8..fcfb6f626464e0c3b068d293eb047980793a5b6d 100644 (file)
@@ -569,64 +569,25 @@ ldns_str2rdf_nsec(ldns_rdf **rd, const char *str)
        const char *delimiters = "\n\t ";
        char *token = LDNS_XMALLOC(char, LDNS_MAX_RDFLEN);
        uint8_t *bitmap = LDNS_XMALLOC(uint8_t, 1);
-       uint16_t bm_len = 0;
        ldns_buffer *str_buf;
        ssize_t c;
        uint16_t cur_type;
-       uint8_t cur_data[32];
-       uint8_t cur_window = 0;
-       uint8_t cur_window_max = 0;
-       uint16_t cur_data_size = 0;
-       uint16_t i;
+       size_t type_count = 0;
+       ldns_rr_type type_list[1024];
        uint8_t *data = NULL;
 
        str_buf = LDNS_MALLOC(ldns_buffer);
        ldns_buffer_new_frm_data(str_buf, (char *)str, strlen(str));
 
-       bitmap[0] = 0;
        while ((c = ldns_bget_token(str_buf, token, delimiters, LDNS_MAX_RDFLEN)) != -1) {
                cur_type = ldns_get_rr_type_by_name(token);
-               if ((cur_type / 8) + 1 > bm_len) {
-                       bitmap = LDNS_XREALLOC(bitmap, uint8_t, (cur_type / 8) + 1);
-                       /* set to 0 */
-                       for (; bm_len <= cur_type / 8; bm_len++) {
-                               bitmap[bm_len] = 0;
-                       }
-               }
-               ldns_set_bit(bitmap + (int) cur_type / 8, (int) (7 - (cur_type % 8)), true);
-       }
-
-       memset(cur_data, 0, 32);
-       for (i = 0; i < bm_len; i++) {
-               if (i / 32 > cur_window) {
-                       /* check, copy, new */
-                       if (cur_window_max > 0) {
-                               /* this window has stuff, add it */
-                               data = LDNS_XREALLOC(data, uint8_t, cur_data_size + cur_window_max + 3);
-                               data[cur_data_size] = cur_window;
-                               data[cur_data_size + 1] = cur_window_max + 1;
-                               memcpy(data + cur_data_size + 2, cur_data, cur_window_max+1);
-                               cur_data_size += cur_window_max + 3;
-                       }
-                       cur_window++;
-                       cur_window_max = 0;
-                       memset(cur_data, 0, 32);
-               }
-               cur_data[i%32] = bitmap[i];
-               if (bitmap[i] > 0) {
-                       cur_window_max = i%32;
-               }
-       }
-       if (cur_window_max > 0 || cur_data[0] > 0) {
-               /* this window has stuff, add it */
-               data = LDNS_XREALLOC(data, uint8_t, cur_data_size + cur_window_max + 3);
-               data[cur_data_size] = cur_window;
-               data[cur_data_size + 1] = cur_window_max + 1;
-               memcpy(data + cur_data_size + 2, cur_data, cur_window_max+1);
-               cur_data_size += cur_window_max + 3;
+               type_list[type_count] = cur_type;
+               type_count++;
        }
-
-       *rd = ldns_rdf_new_frm_data(LDNS_RDF_TYPE_NSEC, cur_data_size, data);
+       
+       *rd = ldns_dnssec_create_nsec_bitmap(type_list,
+                                            type_count,
+                                            LDNS_RR_TYPE_NSEC);
        if(data)
                LDNS_FREE(data);
        if (token)