coredns/plugin/dnssec/cache.go
Francois Tur 4c6c9d4b27 Move cache Keys to 64bit for a better dispersion and lower collision frequency (#2077)
* - change Key for cache to 64bits.

* - change Key for cache to 64bits.
2018-08-31 14:26:43 -07:00

22 lines
354 B
Go

package dnssec
import (
"hash/fnv"
"github.com/miekg/dns"
)
// hash serializes the RRset and return a signature cache key.
func hash(rrs []dns.RR) uint64 {
h := fnv.New64()
buf := make([]byte, 256)
for _, r := range rrs {
off, err := dns.PackRR(r, buf, 0, nil, false)
if err == nil {
h.Write(buf[:off])
}
}
i := h.Sum64()
return i
}