mirror of https://github.com/daffainfo/nuclei.git
28 lines
759 B
Go
28 lines
759 B
Go
package dns
|
|
|
|
// CanCluster returns true if the request can be clustered.
|
|
//
|
|
// This used by the clustering engine to decide whether two requests
|
|
// are similar enough to be considered one and can be checked by
|
|
// just adding the matcher/extractors for the request and the correct IDs.
|
|
func (request *Request) CanCluster(other *Request) bool {
|
|
if len(request.Resolvers) > 0 || request.Trace || request.ID != "" {
|
|
return false
|
|
}
|
|
if request.Name != other.Name ||
|
|
request.class != other.class ||
|
|
request.Retries != other.Retries ||
|
|
request.question != other.question {
|
|
return false
|
|
}
|
|
if request.Recursion != nil {
|
|
if other.Recursion == nil {
|
|
return false
|
|
}
|
|
if *request.Recursion != *other.Recursion {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|