+ return 1;
+}
+
+int dns_answer_contains(DnsAnswer *a, DnsResourceKey *key) {
+ unsigned i;
+ int r;
+
+ assert(a);
+ assert(key);
+
+ for (i = 0; i < a->n_rrs; i++) {
+ r = dns_resource_key_match_rr(key, a->rrs[i]);
+ if (r < 0)
+ return r;
+ if (r > 0)
+ return 1;
+ }
+
+ return 0;
+}
+
+int dns_answer_find_soa(DnsAnswer *a, DnsResourceKey *key, DnsResourceRecord **ret) {
+ unsigned i;
+
+ assert(a);
+ assert(key);
+ assert(ret);
+
+ for (i = 0; i < a->n_rrs; i++) {
+
+ if (a->rrs[i]->key->class != DNS_CLASS_IN)
+ continue;
+
+ if (a->rrs[i]->key->type != DNS_TYPE_SOA)
+ continue;
+
+ if (dns_name_endswith(DNS_RESOURCE_KEY_NAME(key), DNS_RESOURCE_KEY_NAME(a->rrs[i]->key))) {
+ *ret = a->rrs[i];
+ return 1;
+ }
+ }
+