diff options
| author | Jeff Carr <[email protected]> | 2023-12-20 03:13:43 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-12-20 03:13:43 -0600 |
| commit | 382cc8dd171731cc333dd05b7b0b798340162a32 (patch) | |
| tree | 946e99e434183b3eb1272180799c3678f5c7e037 /structs.go | |
| parent | bbf96ee7fa67a6d50ea1d1b3a23a3f44f136a30e (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.go | 39 |
1 files changed, 35 insertions, 4 deletions
@@ -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 { |
