wip
This commit is contained in:
parent
a2fc07f45a
commit
ec2b1b7be3
30
sanitize.go
30
sanitize.go
|
@ -8,28 +8,28 @@ package dns
|
|||
// if it finds a: a.miek.nl. CNAME foo, all other RRs with the ownername a.miek.nl.
|
||||
// will be removed. When a DNAME is found all RRs with an ownername below that of
|
||||
// the DNAME will be removed.
|
||||
// Note that the class of the CNAME/DNAME is *not* taken into account. TODO(miek)?
|
||||
func Dedup(rrs []RR) []RR {
|
||||
m := make(map[string]RR)
|
||||
keys := make([]string, 0, len(rrs))
|
||||
var cname map[nameClass]bool
|
||||
var dname map[nameClass]bool
|
||||
|
||||
for _, r := range rrs {
|
||||
/*
|
||||
make separate step that remove cname, dname
|
||||
switch r.Header().Rrtype {
|
||||
case TypeCNAME:
|
||||
if cname == nil {
|
||||
cname = make(map[nameClass]bool)
|
||||
}
|
||||
cname[nameClass{r.Header().Name, r.Header().Class}] = true
|
||||
cname = append(cname, strings.ToLower(r.Header().Name))
|
||||
case TypeDNAME:
|
||||
if dname == nil {
|
||||
dname = make(map[nameClass]bool)
|
||||
}
|
||||
dname[nameClass{r.Header().Name, r.Header().Class}] = true
|
||||
dname = append(dname, strings.ToLower(r.Header().Name))
|
||||
default:
|
||||
if
|
||||
if len(cname) == 0 && len(dname) == 0 {
|
||||
break
|
||||
}
|
||||
if strings.EqualFold
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
for _, r := range rrs {
|
||||
key := normalizedString(r)
|
||||
keys = append(keys, key)
|
||||
if _, ok := m[key]; ok {
|
||||
|
@ -57,12 +57,6 @@ func Dedup(rrs []RR) []RR {
|
|||
return rrs[:i]
|
||||
}
|
||||
|
||||
// nameClass is used to index the CNAME and DNAME maps.
|
||||
type nameClass struct {
|
||||
name string
|
||||
class uint16
|
||||
}
|
||||
|
||||
// normalizedString returns a normalized string from r. The TTL
|
||||
// is removed and the domain name is lowercased.
|
||||
func normalizedString(r RR) string {
|
||||
|
|
Loading…
Reference in New Issue