summaryrefslogtreecommitdiff
path: root/structs.go
diff options
context:
space:
mode:
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 {