From: Jelte Jansen Date: Fri, 19 Dec 2008 13:47:38 +0000 (+0000) Subject: removed double code X-Git-Tag: release-1.5.0~38 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=781a1e9b7d894946766c19cdb4355064090528ae;p=thirdparty%2Fldns.git removed double code --- diff --git a/dnssec.c b/dnssec.c index a5785f39..e0be3cee 100644 --- 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, diff --git a/str2host.c b/str2host.c index 6d7cee86..fcfb6f62 100644 --- a/str2host.c +++ b/str2host.c @@ -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)