start automatically fixing the problems

This commit is contained in:
Jeff Carr 2024-04-15 05:06:14 -05:00
parent 46de348eb2
commit 42ca387a49
2 changed files with 47 additions and 33 deletions

View File

@ -204,7 +204,7 @@ func (ds *digStatus) set(a any, s string) {
}
func (ds *digStatus) updateDnsStatus() {
var cmd, out string
// var cmd, out string
var ipv4, ipv6 bool
log.Info("updateDnsStatus() START")
@ -252,15 +252,13 @@ func (ds *digStatus) updateDnsStatus() {
ds.setIPv6status("Need VPN")
}
cmd = "dig +noall +answer www.wit.com A"
out = shell.RunCapture(cmd)
log.Log(DNS, "makeDnsStatusGrid() dig", out)
me.digStatus.set(ds.DnsDigUDP, out)
r := shell.Output("", []string{"dig", "+noall", "+answer", "www.wit.com", "A"})
log.Log(DNS, "makeDnsStatusGrid() dig", r.Stdout())
me.digStatus.set(ds.DnsDigUDP, r.Stdout())
cmd = "dig +noall +answer www.wit.com AAAA"
out = shell.RunCapture(cmd)
log.Log(DNS, "makeDnsStatusGrid() dig", out)
me.digStatus.set(ds.DnsDigTCP, out)
r = shell.Output("", []string{"dig", "+noall", "+answer", "www.wit.com", "AAAA"})
log.Log(DNS, "makeDnsStatusGrid() dig", r.Stdout())
me.digStatus.set(ds.DnsDigTCP, r.Stdout())
/*
g2.NewButton("dig +trace", func () {
@ -283,23 +281,14 @@ func (ds *digStatus) makeHttpStatusGrid() {
}
func (ds *digStatus) makeDnsStatusGrid() {
var cmd, out string
group := ds.details.NewGroup("dig results")
grid := group.NewGrid("LookupStatus", 2, 2)
cmd = "dig +noall +answer go.wit.com A"
grid.NewLabel(cmd)
grid.NewLabel("dig +noall +answer go.wit.com A")
ds.DnsDigUDP = grid.NewLabel("?")
out = shell.RunCapture(cmd)
log.Log(DNS, "makeDnsStatusGrid() dig", out)
me.digStatus.set(ds.DnsDigUDP, out)
cmd = "dig +noall +answer go.wit.com AAAA"
grid.NewLabel(cmd)
grid.NewLabel("dig +noall +answer go.wit.com AAAA")
ds.DnsDigTCP = grid.NewLabel("?")
out = shell.RunCapture(cmd)
log.Log(DNS, "makeDnsStatusGrid() dig", out)
me.digStatus.set(ds.DnsDigTCP, out)
group.Pad()
grid.Pad()

View File

@ -10,6 +10,7 @@ import (
"go.wit.com/gui"
"go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
@ -131,21 +132,20 @@ func (eb *errorBox) addIPerror(kind ProblemType, action ActionType, ip string) b
return false
}
// get all your problems!
func (eb *errorBox) Scan() []anError {
for s, thing := range eb.fixes {
log.Log(CHANGE, "Scan()", s, thing.actionLabel.String(), thing.ipLabel.String())
}
return nil
func (e *anError) Age() string {
// Get the current time
currentTime := time.Now()
// Calculate the duration between t current time
duration := currentTime.Sub(e.problem.born)
age := shell.FormatDuration(duration)
log.Log(WARN, "Error Age() =", age)
return age
}
func (eb *errorBox) fix(key string) bool {
if eb.fixes[key] == nil {
log.Log(WARN, "Unknown error. could not find key =", key)
log.Log(WARN, "TODO: probably remove this error. key =", key)
return true
}
myErr := eb.fixes[key]
func (myErr *anError) Fix() bool {
log.Log(WARN, "should try to fix", myErr.problem.kind, "here. IP =", myErr.problem.aaaa)
if os.Getenv("DNS_AUTOCORRECT") != "true" {
log.Log(WARN, "not autofixing. $DNS_AUTOCORRECT != true")
@ -201,6 +201,31 @@ func (eb *errorBox) fix(key string) bool {
return false
}
// get all your problems!
func (eb *errorBox) Scan() []anError {
for s, thing := range eb.fixes {
log.Log(WARN, "Scan()", s, thing.actionLabel.String(), thing.ipLabel.String(), thing.Age())
if thing.problem.begun {
log.Log(WARN, "Scan()", "attempted to fix has happened")
} else {
log.Log(WARN, "Scan()", "attempted to fix not yet happened")
thing.Fix()
}
}
return nil
}
func (eb *errorBox) fix(key string) bool {
if eb.fixes[key] == nil {
log.Log(WARN, "Unknown error. could not find key =", key)
log.Log(WARN, "TODO: probably remove this error. key =", key)
return true
}
myErr := eb.fixes[key]
return myErr.Fix()
}
func (eb *errorBox) update() bool {
return false
}