summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-01 21:41:46 -0500
committerJeff Carr <[email protected]>2024-11-01 21:41:46 -0500
commit7e1460f9f633572def950f005080f899613ba9d0 (patch)
treedf2ac08c5813291431dee7d9f226b2827dd757c7
parent40e811b3b39ffe8d6c2394dc024bb0770933683a (diff)
getDomainname()v0.22.1
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--Makefile5
-rw-r--r--hostname.go35
-rw-r--r--linuxloop.go2
-rw-r--r--net.go2
4 files changed, 38 insertions, 6 deletions
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