1
--- maradns-1.2.12.07/server/MaraDNS.c 2007-08-16 10:25:04.000000000 -0500
2
+++ maradns-1.2.12.08/server/MaraDNS.c 2007-08-28 21:06:28.000000000 -0500
4
is buggy if we round-robin rotate data when we allow more than
5
one additional record to be create per answer/authoritative
7
- if(rotate_2nd != 0 && max_ar_chain == 1 && rotate_last != 0) {
8
+ if(rotate_2nd != 0 && max_ar_chain == 1 && rotate_last != 0
9
+ && first_rr_type != RR_NS) {
10
/* If it makes sense to do a round-robin rotation, do so.
11
* Make rotate_1st, which was the first record, the last
12
* record; make rotate_2nd, which was the second record,
16
/* If it makes sense to do a round-robin rotation, do so */
17
- if(where == 0 && rotate_2nd != 0 && max_ar_chain == 1) {
18
+ if(where == 0 && rotate_2nd != 0 && max_ar_chain == 1
19
+ && first_rr_type != RR_NS) {
20
/* For records in the cache, we need to make sure that
21
the custodian properly points to the first record
22
in the chain or we will leak memory */
24
is buggy if we round-robin rotate data when we allow more than
25
one additional record to be create per answer/authoritative
27
- if(rotate_2nd != 0 && max_ar_chain == 1 && rotate_done == 0) {
28
+ if(rotate_2nd != 0 && max_ar_chain == 1 && rotate_done == 0
29
+ && first_rr_type != RR_NS) {
31
/* If it makes sense to do a round-robin rotation */
32
rotate_1st->next = where;