22 lines
671 B
Diff
Executable File
22 lines
671 B
Diff
Executable File
--- /dev/null
|
|
+++ b/pdnsd-alt/patches/10-filter-aaaa.patch
|
|
@@ -0,0 +1,18 @@
|
|
+--- a/src/dns_answer.c
|
|
++++ b/src/dns_answer.c
|
|
+@@ -567,6 +567,7 @@ static int add_rrset(dns_msg_t **ans, size_t *sz, size_t *allocsz,
|
|
+ if (rnd_recs) b=first=randrr(crrset->rrs);
|
|
+
|
|
+ while (b) {
|
|
++ if (tp==T_AAAA) goto add_rrset_next;
|
|
+ if (!add_rr(ans, sz, allocsz, rrn, tp, ans_ttl(crrset,queryts),
|
|
+ b->rdlen, b->data, S_ANSWER, udp, cb))
|
|
+ return 0;
|
|
+@@ -584,6 +585,7 @@ static int add_rrset(dns_msg_t **ans, size_t *sz, size_t *allocsz,
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
++add_rrset_next:
|
|
+ b=b->next;
|
|
+ if (rnd_recs) {
|
|
+ if(!b) b=crrset->rrs; /* wraparound */
|