summaryrefslogtreecommitdiff
path: root/structs.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-12-20 03:13:43 -0600
committerJeff Carr <[email protected]>2023-12-20 03:13:43 -0600
commit382cc8dd171731cc333dd05b7b0b798340162a32 (patch)
tree946e99e434183b3eb1272180799c3678f5c7e037 /structs.go
parentbbf96ee7fa67a6d50ea1d1b3a23a3f44f136a30e (diff)
make a cloudflare packagev0.1.2
move cloudflare stuff to a package display cloudflare API values dns protobuf example sort output, but gocli formatting is bad cloudflare window can be closed first time success pushing AAAA records for my box enable a cloudflare button RFC 8482. DNS servers we use should respond to ANY We should support ANY requests via DNS as long as we enforce TCP over UDP populate the API provider domain NS record changes are tracked check hostname OS configuration detect domain name changes lookup of NS records for my domain name button to investigate port 53 daemon start dns resolver detection and debugging measure dns resolution speed sort todo items Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'structs.go')
-rw-r--r--structs.go39
1 files changed, 35 insertions, 4 deletions
diff --git a/structs.go b/structs.go
index c655738..9671078 100644
--- a/structs.go
+++ b/structs.go
@@ -3,7 +3,9 @@ package main
import (
"net"
+ "time"
"git.wit.org/wit/gui"
+ "github.com/miekg/dns"
)
// It's probably a terrible idea to call this 'me'
@@ -11,13 +13,18 @@ var me Host
type Host struct {
hostname string // mirrors
- domainname string // kernel.org
+ domainname *gui.Node // kernel.org
+ hostshort *gui.Node // hostname -s
+ hostnameStatus *gui.Node // is the hostname configured correctly in the OS?
// fqdn string // mirrors.kernel.org
- dnsTTL int `default:3` // Recheck DNS is working every TTL (in seconds)
+ dnsTTL int `default:"3"` // Recheck DNS is working every TTL (in seconds)
dnsTTLsleep float64 // sleep between loops
- artificialSleep float64 `default:0.7` // artificial sleep on startup
- artificialS string `default:0.7` // artificial sleep on startup
+ artificialSleep float64 `default:"0.7"` // artificial sleep on startup
+ artificialS string `default:"abc"` // artificial sleep on startup
+
+ dnsSleep time.Duration
+ localSleep time.Duration
changed bool // set to true if things changed
user string // name of the user
@@ -25,19 +32,43 @@ type Host struct {
ipmap map[string]*IPtype // the current ip addresses
dnsmap map[string]*IPtype // the current dns addresses
ifmap map[int]*IFtype // the current interfaces
+ nsmap map[string]string // the NS records
+
+ // DNS A and AAAA results
+ ipv4s map[string]dns.RR
+ ipv6s map[string]dns.RR
window *gui.Node // the main window
tab *gui.Node // the main dns tab
notes *gui.Node // using this to put notes here
+
+ // local OS settings, network interfaces, etc
uid *gui.Node // user
fqdn *gui.Node // display the full hostname
IPv4 *gui.Node // show valid IPv4 addresses
IPv6 *gui.Node // show valid IPv6 addresses
Interfaces *gui.Node // Interfaces
+ LocalSpeedActual *gui.Node // the time it takes to check each network interface
+
+ // DNS stuff
+ NSrr *gui.Node // NS resource records for the domain name
+ DnsAPI *gui.Node // what DNS API to use?
DnsAAAA *gui.Node // the actual DNS AAAA results
DnsA *gui.Node // the actual DNS A results (ignore for status since mostly never happens?)
DnsStatus *gui.Node // the current state of DNS
+ DnsSpeed *gui.Node // 'FAST', 'OK', 'SLOW', etc
+ DnsSpeedActual *gui.Node // the last actual duration
+ DnsSpeedLast string // the last state 'FAST', 'OK', etc
+
fix *gui.Node // button for the user to click
+ fixProc *gui.Node // button for the user to click
+
+ mainStatus *gui.Node // group for the main display of stuff
+ cloudflareB *gui.Node // cloudflare button
+
+ dbOn *gui.Node // button for setting debugging on
+ dbNet *gui.Node // button for setting network debugging on
+ dbProc *gui.Node // button for setting proc debugging on
}
type IPtype struct {