plugin/loadbalance: More consistent shuffling (#4961)

* fix shuffling

Signed-off-by: Chris O'Haver <cohaver@infoblox.com>

* shuffle each record once

Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
This commit is contained in:
Chris O'Haver
2021-11-12 11:00:20 -05:00
committed by GitHub
parent f6ffafe229
commit 29cae57932

View File

@@ -61,13 +61,12 @@ func roundRobinShuffle(records []dns.RR) {
records[0], records[1] = records[1], records[0]
}
default:
for j := 0; j < l*(int(dns.Id())%4+1); j++ {
q := int(dns.Id()) % l
p := int(dns.Id()) % l
if q == p {
p = (p + 1) % l
for j := 0; j < l; j++ {
p := j + (int(dns.Id()) % (l-j))
if j == p {
continue
}
records[q], records[p] = records[p], records[q]
records[j], records[p] = records[p], records[j]
}
}
}