From 1f97fb3a13625eb77dfaa7644278c4eea0bd14b7 Mon Sep 17 00:00:00 2001 From: Andrew Ayer Date: Thu, 28 Jul 2016 13:56:58 -0700 Subject: [PATCH] Suppress duplicate identifiers --- identifiers.go | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/identifiers.go b/identifiers.go index 32582ac..a1041ab 100644 --- a/identifiers.go +++ b/identifiers.go @@ -143,12 +143,31 @@ func sanitizeUnicodeDNSName(value string) string { } func (ids *Identifiers) appendDNSName(dnsName string) { - if dnsName != "" { + if dnsName != "" && !ids.hasDNSName(dnsName) { ids.DNSNames = append(ids.DNSNames, dnsName) } } func (ids *Identifiers) appendIPAddress(ipaddr net.IP) { - ids.IPAddrs = append(ids.IPAddrs, ipaddr) + if !ids.hasIPAddress(ipaddr) { + ids.IPAddrs = append(ids.IPAddrs, ipaddr) + } +} + +func (ids *Identifiers) hasDNSName(target string) bool { + for _, value := range ids.DNSNames { + if value == target { + return true + } + } + return false +} +func (ids *Identifiers) hasIPAddress(target net.IP) bool { + for _, value := range ids.IPAddrs { + if value.Equal(target) { + return true + } + } + return false } func (ids *Identifiers) addDnsSANfinal(value []byte) {