diff --git a/hostnameStatus.go b/hostnameStatus.go index 34dd8d3..7136f82 100644 --- a/hostnameStatus.go +++ b/hostnameStatus.go @@ -22,6 +22,7 @@ import ( type hostnameStatus struct { ready bool hidden bool + changed bool lastname string // used to watch for changes in the hostname @@ -268,36 +269,29 @@ func (hs *hostnameStatus) updateStatus() { } hs.domainname.Set(me.statusOS.GetDomainName()) - tmp := me.statusOS.GetIPv4() + var tmp []string + tmp = me.statusOS.GetIPv4() sort.Strings(tmp) - hs.currentIPv4.Set(strings.Join(tmp, "\n")) + s = strings.Join(tmp, "\n") + if s != hs.currentIPv4.Get() { + log.Log(CHANGE, "DNS IPv4 Addresses changed", tmp) + hs.currentIPv4.Set(s) + hs.changed = true + } tmp = me.statusOS.GetIPv6() sort.Strings(tmp) - hs.currentIPv6.Set(strings.Join(tmp, "\n")) + s = strings.Join(tmp, "\n") + if s != hs.currentIPv6.Get() { + log.Log(CHANGE, "DNS IPv6 Addresses changed", tmp) + hs.currentIPv6.Set(s) + hs.changed = true + } if me.statusOS.ValidHostname() { vals = lookupDoH(me.statusOS.GetHostname(), "AAAA") log.Log(STATUS, "DNS IPv6 Addresses for ", me.statusOS.GetHostname(), "=", vals) - if len(vals) == 0 { - s = "(none)" - } else { - hs.setIPv6("Check for real IPv6 addresses here") - /* - if hs.missingAAAA() { - hs.setIPv6("Add the missing IPv6 address") - } - */ - for _, addr := range vals { - log.Log(STATUS, addr) - s += addr + " (DELETE)" + "\n" - hs.setIPv6("NEEDS DELETE") - // hs.dnsValue.SetText(addr) - // hs.dnsAction.SetText("DELETE") - } - } - sort.Strings(vals) hs.dnsAAAA.Set(strings.Join(vals, "\n")) vals = lookupDoH(me.statusOS.GetHostname(), "A") @@ -315,6 +309,11 @@ func (hs *hostnameStatus) updateStatus() { hs.set(hs.dnsA, "CNAME " + s) hs.setIPv4("GOOD") } + if hs.changed { + log.Log(CHANGE, "stuff changed. trying fixIPv6dns()") + fixIPv6dns() + hs.changed = false + } } if hs.IPv4() && hs.IPv6() {