diff --git a/Makefile b/Makefile index 9b0068f..350c71e 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,5 @@ all: - @echo - @echo Run: make redomod - @echo - @# ./myrepos >/tmp/myrepos.stderr 2>&1 + GO111MODULE=off go vet goimports: goimports -w *.go diff --git a/hostname.go b/hostname.go index bf4c4a7..9b38d4a 100644 --- a/hostname.go +++ b/hostname.go @@ -3,8 +3,11 @@ package linuxstatus import ( + "fmt" "io/ioutil" + "strings" + "go.wit.com/lib/gui/shell" "go.wit.com/log" // will try to get this hosts FQDN @@ -80,6 +83,17 @@ func (ls *LinuxStatus) setHostShort() { } } +// getDomainName extracts the domain name from a given hostname +func getDomainName(hostname string) (string, error) { + parts := strings.Split(hostname, ".") + if len(parts) < 3 { + return "", fmt.Errorf("hostname '%s' is too short to extract a domain name", hostname) + } + // Join all parts except the first one, which is assumed to be a subdomain + domain := strings.Join(parts[1:], ".") + return domain, nil +} + func lookupHostname() { if !me.Ready() { return @@ -107,6 +121,27 @@ func lookupHostname() { if hostfqdn != hostname { log.Log(WARN, "hostname", hostname, "does not equal fqdn.FqdnHostname()", hostfqdn) // TODO: figure out what is wrong + if dn == "(none)" { + realdn, err := getDomainName(hostfqdn) + if err == nil { + log.Log(WARN, "need to run: 'domainname", realdn, "' here") + me.changed = true + me.hostnameStatus.SetText("FIXING") + shell.RunPath("", []string{"domainname", realdn}) + return + } else { + log.Log(WARN, "getDomainName() err =", err) + log.Log(WARN, "/etc/hostname is too short. let the user set the name here.") + // me.changed = true + me.hostnameStatus.SetText("INVALID DOMAIN NAME") + // return + } + } + log.Log(WARN, "don't know what to do here with domainname") + log.Log(WARN, "check that /etc/hostname is valid?") + // me.changed = true + me.hostnameStatus.SetText("UNKNOWN") + // return } var test string diff --git a/linuxloop.go b/linuxloop.go index e1d7d5e..49d744b 100644 --- a/linuxloop.go +++ b/linuxloop.go @@ -44,7 +44,7 @@ func linuxLoop() { sort.Strings(a) tmp := strings.Join(a, "\n") if tmp != me.workingIPv4.String() { - log.Log(CHANGE, "realAAAA() your real IPv6 addresses changed") + log.Log(CHANGE, "realA() your real IPv6 addresses changed") me.changed = true me.workingIPv4.SetText(tmp) } diff --git a/net.go b/net.go index ed8019c..b3a9d45 100644 --- a/net.go +++ b/net.go @@ -101,7 +101,7 @@ func realA() []string { return a } -func checkDNS() (map[string]*IPtype, map[string]*IPtype) { +func checkDNSOld() (map[string]*IPtype, map[string]*IPtype) { var ipv4s map[string]*IPtype var ipv6s map[string]*IPtype