adguardhome/legacy_rules.go
Rama main · réplica de lectura del repositorio original.
package adguardhome
import (
"fmt"
"strings"
"sigs.k8s.io/external-dns/endpoint"
)
func legacyRuleFormat() ruleFormat {
return ruleFormat{
formatRules: formatLegacyRules,
needsMigration: func(rule string) bool {
return strings.HasPrefix(rule, "! ")
},
}
}
func formatLegacyRules(endpoints []*endpoint.Endpoint, suffix string) ([]string, error) {
rules := make([]string, 0, len(endpoints))
domainSeen := make(map[string]struct{})
domainsOrder := make([]string, 0)
for _, e := range endpoints {
rules = append(rules, endpointToString(e, suffix))
if e.RecordType == endpoint.RecordTypeA {
if _, ok := domainSeen[e.DNSName]; !ok {
domainSeen[e.DNSName] = struct{}{}
domainsOrder = append(domainsOrder, e.DNSName)
}
}
}
for _, d := range domainsOrder {
rules = append(rules, artificialRuleToString(d, suffix))
}
return rules, nil
}
func artificialRuleToString(domain, suffix string) string {
return fmt.Sprintf("@@||%s #%s", domain, suffix)
}