1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
  | 
// Various Linux/Unix'y things
// https://wiki.archlinux.org/title/Dynamic_DNS
package main
import (
	"net"
	"strings"
	"go.wit.com/log"
)
/*
Check a bunch of things. If they don't work right, then things are not correctly configured
They are things like:
	/etc/hosts
	hostname
	hostname -f
	domainname
*/
func (h *Host) verifyETC() bool {
	return true
}
func (h *Host) updateIPs(host string) {
	ips, err := net.LookupIP(host)
	if err != nil {
		log.Error(err, "updateIPs failed")
	}
	for _, ip := range ips {
		log.Println(host, ip)
	}
}
func (h *Host) setIPv4(ipv4s map[string]*IPtype) {
	for ip, t := range ipv4s {
		log.Println("IPv4", ip, t)
	}
}
/*
func lookupNSprovider(domain string) string {
	for s, d := range me.nsmap {
		log.Log(CHANGE, "lookupNS() domain =", d, "server =", s)
		if (domain == d) {
			// figure out the provider (google, cloudflare, etc)
			return s + " blah"
		}
	}
	return "blah"
}
*/
// nsLookup performs an NS lookup on the given domain name.
func lookupNS(domain string) {
	var domains string
	nsRecords, err := net.LookupNS(domain)
	if err != nil {
		return
	}
	var servers []string
	for _, ns := range nsRecords {
		servers = append(servers, ns.Host)
	}
	// checks to see if the NS records change
	for _, server := range servers {
		server = strings.TrimRight(server, ".")
		if me.nsmap[server] != domain {
			log.Log(CHANGE, "lookupNS() domain", domain, "has NS", server)
			me.nsmap[server] = domain
			domains += server + "\n"
		}
	}
	var tmp string
	// checks to see if the NS records change
	for s, d := range me.nsmap {
		log.Log(CHANGE, "lookupNS() domain =", d, "server =", s)
		if domain == d {
			tmp += s + "\n"
			// figure out the provider (google, cloudflare, etc)
			setProvider(s)
		}
	}
	tmp = strings.TrimSpace(tmp)
	if tmp != me.statusDNS.NSrr.String() {
		me.changed = true
		log.Log(CHANGE, "lookupNS() setting changed to me.NSrr =", tmp)
		me.statusDNS.NSrr.SetText(tmp)
	}
}
// returns the second-to-last part of a domain name.
func setProvider(hostname string) {
	var provider string = ""
	parts := strings.Split(hostname, ".")
	if len(parts) >= 2 {
		provider = parts[len(parts)-2]
	}
	if me.statusDNS.GetDNSapi() != provider {
		log.Log(CHANGE, "setProvider() changed to =", provider)
	}
	me.statusDNS.SetDNSapi(provider)
}
  |