{ LDNS_STATUS_ADDRESS_ERR, "Could not start AXFR, because of address error" },
{ LDNS_STATUS_UNKNOWN_INET, "Uknown address family" },
{ LDNS_STATUS_NOT_IMPL, "This function is not implemented (yet), please notify the developers - or not..." },
+ { LDNS_STATUS_NULL, "Supplied value pointer null" },
{ LDNS_STATUS_CRYPTO_UNKNOWN_ALGO, "Unknown cryptographic algorithm" },
{ LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL, "Cryptographic algorithm not implemented" },
{ LDNS_STATUS_CRYPTO_NO_RRSIG, "No DNSSEC signature(s)" },
LDNS_STATUS_ADDRESS_ERR,
LDNS_STATUS_UNKNOWN_INET,
LDNS_STATUS_NOT_IMPL,
- LDNS_STATUS_NULL,
+ LDNS_STATUS_NULL,
LDNS_STATUS_CRYPTO_UNKNOWN_ALGO,
LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL,
LDNS_STATUS_CRYPTO_NO_RRSIG,
*/
bool ldns_rr_compare_ds(const ldns_rr *rr1, const ldns_rr *rr2);
+/**
+ * compares two rr listss.
+ * \param[in] rrl1 the first one
+ * \param[in] rrl2 the second one
+ * \return 0 if equal
+ * -1 if rrl1 comes before rrl2
+ * +1 if rrl2 comes before rrl1
+ */
+int ldns_rr_list_compare(const ldns_rr_list *rrl1, const ldns_rr_list *rrl2);
+
/**
* calculates the uncompressed size of an RR.
* \param[in] r the rr to operate on
}
if (all_servers_rtt_inf) {
+ LDNS_FREE(reply_bytes);
return LDNS_STATUS_NO_NAMESERVERS_ERR;
}
#ifdef HAVE_SSL
return result;
}
+int
+ldns_rr_list_compare(const ldns_rr_list *rrl1, const ldns_rr_list *rrl2)
+{
+ size_t i = 0;
+ int rr_cmp;
+
+ assert(rrl1 != NULL);
+ assert(rrl2 != NULL);
+
+ for (i = 0; i < ldns_rr_list_rr_count(rrl1) && i < ldns_rr_list_rr_count(rrl2); i++) {
+ rr_cmp = ldns_rr_compare(ldns_rr_list_rr(rrl1, i), ldns_rr_list_rr(rrl2, i));
+ if (rr_cmp != 0) {
+ return rr_cmp;
+ }
+ }
+
+ if (i == ldns_rr_list_rr_count(rrl1) &&
+ i != ldns_rr_list_rr_count(rrl2)) {
+ return 1;
+ } else if (i == ldns_rr_list_rr_count(rrl2) &&
+ i != ldns_rr_list_rr_count(rrl1)) {
+ return -1;
+ } else {
+ return 0;
+ }
+}
+
size_t
ldns_rr_uncompressed_size(const ldns_rr *r)
{