From: Miek Gieben Date: Mon, 23 Jan 2006 15:11:34 +0000 (+0000) Subject: added ldns_resolver_searchlist_count, which removes some XXXs X-Git-Tag: release-1.1.0~400 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72d820e7b331db9ca0a0431b7e6e90499d31276f;p=thirdparty%2Fldns.git added ldns_resolver_searchlist_count, which removes some XXXs --- diff --git a/Changelog b/Changelog index 00d11c8e..c4bdae7d 100644 --- a/Changelog +++ b/Changelog @@ -41,6 +41,7 @@ * tsig.h: made internal used functions static: ldns_digest_name and ldns_tsig_mac_new New: + * ldns_resolver_searchlist_count: return the searchlist counter * ldns_zone_sort: Sort a zone * ldns_bgsend(): background send, returns a socket. Removed: diff --git a/dnssec.c b/dnssec.c index a8a11ec3..cbf1db8d 100644 --- a/dnssec.c +++ b/dnssec.c @@ -617,8 +617,7 @@ ldns_key_buf2rsa(ldns_buffer *key) /* need some smart comment here XXX*/ /* the exponent is too large so it's places * futher...???? */ - memcpy(&int16, - ldns_buffer_at(key, 1), 2); + memcpy(&int16, ldns_buffer_at(key, 1), 2); exp = ntohs(int16); offset = 3; } else { diff --git a/ldns/resolver.h b/ldns/resolver.h index 96ba15ed..4baf2eb3 100644 --- a/ldns/resolver.h +++ b/ldns/resolver.h @@ -269,6 +269,13 @@ char *ldns_resolver_tsig_keydata(ldns_resolver *r); */ ldns_rdf* ldns_resolver_pop_nameserver(ldns_resolver *r); +/** + * Return the resolver's searchlist count + * \param[in] r the resolver + * \return the searchlist count + */ +size_t ldns_resolver_searchlist_count(ldns_resolver *r); + /* write access function */ /** * Set the port the resolver should use diff --git a/packet.c b/packet.c index f32ea496..eef0dba7 100644 --- a/packet.c +++ b/packet.c @@ -619,7 +619,6 @@ ldns_pkt_set_additional(ldns_pkt *p, ldns_rr_list *rr) void ldns_pkt_set_question(ldns_pkt *p, ldns_rr_list *rr) { - /* XXX check for only one rr ?? */ p->_question = rr; } diff --git a/resolver.c b/resolver.c index 08285b01..01f79835 100644 --- a/resolver.c +++ b/resolver.c @@ -89,7 +89,7 @@ ldns_resolver_domain(ldns_resolver *r) ldns_rdf ** ldns_resolver_searchlist(ldns_resolver *r) { - return r->_searchlist; + return r->_searchlist_count; } ldns_rdf ** @@ -182,6 +182,12 @@ ldns_resolver_random(ldns_resolver *r) return r->_random; } +size_t +ldns_resolver_searchlist_count(ldns_resolver *r) +{ + return r->_searchlist_count; +} + /* write */ void ldns_resolver_set_port(ldns_resolver *r, uint16_t p) @@ -451,8 +457,7 @@ ldns_resolver_push_searchlist(ldns_resolver *r, ldns_rdf *d) return; } - /* need functions XXX */ - list_count = r->_searchlist_count; + list_count = ldns_resolver_searchlist_count(r); searchlist = ldns_resolver_searchlist(r); searchlist = LDNS_XREALLOC(searchlist, ldns_rdf *, (list_count + 1)); @@ -676,7 +681,7 @@ ldns_resolver_deep_free(ldns_resolver *res) if (res) { if (res->_searchlist) { - for (i = 0; i < res->_searchlist_count; i++) { + for (i = 0; i < ldns_resolver_searchlist_count(res); i++) { ldns_rdf_deep_free(res->_searchlist[i]); } LDNS_FREE(res->_searchlist); diff --git a/rr.c b/rr.c index a29e7e4a..8bf554a2 100644 --- a/rr.c +++ b/rr.c @@ -342,10 +342,21 @@ ldns_rr_new_frm_str(const char *str, uint16_t default_ttl, ldns_rdf *origin, ldn /* unknown RR data */ if (rd_strlen == 2 && strncmp(rd, "\\#", 2) == 0 && !quoted) { c = ldns_bget_token(rd_buf, rd, delimiters, LDNS_MAX_RDFLEN); - /* c can be -1 .. XXX TODO jelte */ + if (c == -1) { + /* something goes very wrong here */ + ldns_buffer_free(rd_buf); + LDNS_FREE(rd); + return NULL; + } hex_data_size = (uint16_t) atoi(rd); /* copy the hex chars into hex str (which is 2 chars per byte) */ hex_data_str = LDNS_XMALLOC(char, 2 * hex_data_size + 1); + if (!hex_data_str) { + /* malloc error */ + ldns_buffer_free(rd_buf); + LDNS_FREE(rd); + return NULL; + } cur_hex_data_size = 0; while(cur_hex_data_size < 2 * hex_data_size) { c = ldns_bget_token(rd_buf, rd, delimiters, LDNS_MAX_RDFLEN);