chiark / gitweb /
resolved: implement negative caching
[elogind.git] / src / resolve / resolved-dns-question.c
index 026a67d7b37bfeeff98e7e176368ae261e456145..056bd6eb649474232b1676599dcf4d1d0cb0cd30 100644 (file)
@@ -65,9 +65,20 @@ DnsQuestion *dns_question_unref(DnsQuestion *q) {
 }
 
 int dns_question_add(DnsQuestion *q, DnsResourceKey *key) {
+        unsigned i;
+        int r;
+
         assert(q);
         assert(key);
 
+        for (i = 0; i < q->n_keys; i++) {
+                r = dns_resource_key_equal(q->keys[i], key);
+                if (r < 0)
+                        return r;
+                if (r > 0)
+                        return 0;
+        }
+
         if (q->n_keys >= q->n_allocated)
                 return -ENOSPC;