Compare commits
No commits in common. "74bfddc1e4f3c459bfc30e13113b73e127f7e402" and "1decb6925bbde8c6c9015ec603b8ca0b9cdd587b" have entirely different histories.
74bfddc1e4
...
1decb6925b
|
@ -22,7 +22,6 @@ import (
|
||||||
type hostnameStatus struct {
|
type hostnameStatus struct {
|
||||||
ready bool
|
ready bool
|
||||||
hidden bool
|
hidden bool
|
||||||
changed bool
|
|
||||||
|
|
||||||
lastname string // used to watch for changes in the hostname
|
lastname string // used to watch for changes in the hostname
|
||||||
|
|
||||||
|
@ -269,29 +268,36 @@ func (hs *hostnameStatus) updateStatus() {
|
||||||
}
|
}
|
||||||
hs.domainname.Set(me.statusOS.GetDomainName())
|
hs.domainname.Set(me.statusOS.GetDomainName())
|
||||||
|
|
||||||
var tmp []string
|
tmp := me.statusOS.GetIPv4()
|
||||||
tmp = me.statusOS.GetIPv4()
|
|
||||||
sort.Strings(tmp)
|
sort.Strings(tmp)
|
||||||
s = strings.Join(tmp, "\n")
|
hs.currentIPv4.Set(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()
|
tmp = me.statusOS.GetIPv6()
|
||||||
sort.Strings(tmp)
|
sort.Strings(tmp)
|
||||||
s = strings.Join(tmp, "\n")
|
hs.currentIPv6.Set(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() {
|
if me.statusOS.ValidHostname() {
|
||||||
vals = lookupDoH(me.statusOS.GetHostname(), "AAAA")
|
vals = lookupDoH(me.statusOS.GetHostname(), "AAAA")
|
||||||
|
|
||||||
log.Log(STATUS, "DNS IPv6 Addresses for ", me.statusOS.GetHostname(), "=", vals)
|
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"))
|
hs.dnsAAAA.Set(strings.Join(vals, "\n"))
|
||||||
|
|
||||||
vals = lookupDoH(me.statusOS.GetHostname(), "A")
|
vals = lookupDoH(me.statusOS.GetHostname(), "A")
|
||||||
|
@ -309,11 +315,6 @@ func (hs *hostnameStatus) updateStatus() {
|
||||||
hs.set(hs.dnsA, "CNAME " + s)
|
hs.set(hs.dnsA, "CNAME " + s)
|
||||||
hs.setIPv4("GOOD")
|
hs.setIPv4("GOOD")
|
||||||
}
|
}
|
||||||
if hs.changed {
|
|
||||||
log.Log(CHANGE, "stuff changed. trying fixIPv6dns()")
|
|
||||||
fixIPv6dns()
|
|
||||||
hs.changed = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if hs.IPv4() && hs.IPv6() {
|
if hs.IPv4() && hs.IPv6() {
|
||||||
|
@ -322,54 +323,9 @@ func (hs *hostnameStatus) updateStatus() {
|
||||||
hs.status.Set("BROKEN")
|
hs.status.Set("BROKEN")
|
||||||
}
|
}
|
||||||
|
|
||||||
if hs.verifyIPv6() {
|
// lookup the DNS provider
|
||||||
hs.statusIPv6.Set("WORKING")
|
// hs.dnsAPI.Set(me.DnsAPI.S)
|
||||||
} else {
|
lookupNSprovider("wit.com")
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return working
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (hs *hostnameStatus) Show() {
|
func (hs *hostnameStatus) Show() {
|
||||||
|
|
6
main.go
6
main.go
|
@ -88,7 +88,7 @@ func main() {
|
||||||
|
|
||||||
lastProvider := "unknown"
|
lastProvider := "unknown"
|
||||||
go myTicker(10 * time.Second, "DNSloop", func() {
|
go myTicker(10 * time.Second, "DNSloop", func() {
|
||||||
log.Log(INFO, "me.statusDNS.Update() START")
|
log.Log(CHANGE, "me.statusDNS.Update() START")
|
||||||
me.statusDNS.Update()
|
me.statusDNS.Update()
|
||||||
|
|
||||||
provider := me.statusDNS.GetDNSapi()
|
provider := me.statusDNS.GetDNSapi()
|
||||||
|
@ -127,7 +127,7 @@ func main() {
|
||||||
})
|
})
|
||||||
|
|
||||||
// check the four known things to see if they are all WORKING
|
// check the four known things to see if they are all WORKING
|
||||||
myTicker(10 * time.Second, "MAIN LOOP", func() {
|
myTicker(3 * time.Second, "MAIN LOOP", func() {
|
||||||
if me.hostnameStatus.GetText() != "WORKING" {
|
if me.hostnameStatus.GetText() != "WORKING" {
|
||||||
log.Log(CHANGE, "The hostname is not WORKING yet", me.hostnameStatus.GetText())
|
log.Log(CHANGE, "The hostname is not WORKING yet", me.hostnameStatus.GetText())
|
||||||
return
|
return
|
||||||
|
@ -144,7 +144,7 @@ func main() {
|
||||||
log.Log(CHANGE, "The DNS API provider is not yet working", me.DnsAPIstatus.GetText())
|
log.Log(CHANGE, "The DNS API provider is not yet working", me.DnsAPIstatus.GetText())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log.Log(CHANGE, "EVERYTHING IS WORKING. YOU HAVE IPv6 BLISS. TODO: don't check so often now")
|
log.Log(CHANGE, "EVERYTHING IS WORKING. YOU HAVE IPv6 BLISS")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue