package dns import ( "fmt" "github.com/cespare/xxhash" ) // TmplClusterKey generates a unique key for the request // to be used in the clustering process. func (request *Request) TmplClusterKey() uint64 { recursion := "" if request.Recursion != nil { recursion = fmt.Sprintf("%t", *request.Recursion) } inp := fmt.Sprintf("%s-%d-%d-%d-%s", request.Name, request.class, request.Retries, request.question, recursion) return xxhash.Sum64String(inp) } // IsClusterable returns true if the request is eligible to be clustered. func (request *Request) IsClusterable() bool { return !(len(request.Resolvers) > 0 || request.Trace || request.ID != "") }