(ns->ss_family == AF_INET6 &&
ldns_resolver_ip6(r) == LDNS_RESOLV_INET)) {
/* mismatch, next please */
+ LDNS_FREE(ns);
continue;
}
/* obey the fail directive */
if (!reply_bytes) {
if (ldns_resolver_fail(r)) {
+ LDNS_FREE(ns);
return LDNS_STATUS_ERR;
} else {
continue;
if (ldns_wire2pkt(&reply, reply_bytes, reply_size) !=
LDNS_STATUS_OK) {
LDNS_FREE(reply_bytes);
+ LDNS_FREE(ns);
return LDNS_STATUS_ERR;
}
expect = LDNS_RESOLV_KEYWORD;
break;
}
+
+ /* don't free, because we copy the pointer */
ldns_resolver_set_domain(r, tmp);
expect = LDNS_RESOLV_KEYWORD;
break;
expect = LDNS_RESOLV_KEYWORD;
break;
}
+ /* XXX */
(void)ldns_resolver_push_nameserver(r, tmp);
+ ldns_rdf_deep_free(tmp);
expect = LDNS_RESOLV_KEYWORD;
break;
default:
}
LDNS_FREE(res->_searchlist);
LDNS_FREE(res->_nameservers);
+ if (ldns_resolver_domain(res)) {
+ LDNS_FREE(res->_domain);
+ }
+ if (ldns_resolver_tsig_keyname(res)) {
+ LDNS_FREE(res->_tsig_keyname);
+ }
+
LDNS_FREE(res);
}
}