From 74bfddc1e4f3c459bfc30e13113b73e127f7e402 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 7 Jan 2024 15:27:44 -0600 Subject: logic for comparing OS and DNS IPv6 addresses Signed-off-by: Jeff Carr --- hostnameStatus.go | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) (limited to 'hostnameStatus.go') diff --git a/hostnameStatus.go b/hostnameStatus.go index 7136f82..e94ab15 100644 --- a/hostnameStatus.go +++ b/hostnameStatus.go @@ -321,10 +321,55 @@ func (hs *hostnameStatus) updateStatus() { } else { hs.status.Set("BROKEN") } + + if hs.verifyIPv6() { + hs.statusIPv6.Set("WORKING") + } else { + hs.statusIPv6.Set("BROKEN") + } +} + +func (hs *hostnameStatus) verifyIPv6() bool { + var working bool = true + osAAAA := make(map[string]string) + dnsAAAA := make(map[string]string) + + log.Log(INFO, "What are the AAAA resource records in the OS?") + tmp := me.statusOS.GetIPv6() + if len(tmp) == 0 { + // you don't have any IPv6 addresses in your OS right now + return false + } + for _, aaaa := range me.statusOS.GetIPv6() { + log.Log(INFO, "FOUND OS AAAA ip", aaaa) + osAAAA[aaaa] = "os" + } + + log.Log(INFO, "What are the AAAA resource records in DNS?") + for _, aaaa := range me.statusDNS.GetIPv6() { + log.Log(INFO, "FOUND DNS AAAA ip", aaaa) + dnsAAAA[aaaa] = "dns" + } + + for aaaa, _ := range dnsAAAA { + if osAAAA[aaaa] == "os" { + log.Log(INFO, "DNS AAAA is in OS", aaaa) + } else { + working = false + log.Log(INFO, "DNS AAAA is not in OS", aaaa) + } + } + + for aaaa, _ := range osAAAA { + if dnsAAAA[aaaa] == "dns" { + log.Log(INFO, "OS AAAA is in DNS", aaaa) + } else { + working = false + log.Log(INFO, "OS AAAA is not in DNS", aaaa) + } + } - // lookup the DNS provider - // hs.dnsAPI.Set(me.DnsAPI.S) - lookupNSprovider("wit.com") + return working } func (hs *hostnameStatus) Show() { -- cgit v1.2.3