* 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:
/* 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 {
*/
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
void
ldns_pkt_set_question(ldns_pkt *p, ldns_rr_list *rr)
{
- /* XXX check for only one rr ?? */
p->_question = rr;
}
ldns_rdf **
ldns_resolver_searchlist(ldns_resolver *r)
{
- return r->_searchlist;
+ return r->_searchlist_count;
}
ldns_rdf **
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)
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));
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);
/* 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);