From e9f1723dbc8dab3bd84f7006723f6ae9c97df88c Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 16 Dec 2023 09:36:40 -0600 Subject: [PATCH] hostname check basically working Signed-off-by: Jeff Carr --- hostname.go | 12 +++++++++++- main.go | 9 ++++----- run.go | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 run.go diff --git a/hostname.go b/hostname.go index cf033df..62803c1 100644 --- a/hostname.go +++ b/hostname.go @@ -42,9 +42,19 @@ func getHostname() { // On Linux, /etc/hosts, /etc/hostname // and domainname and hostname func goodHostname(h string) bool { - hostname := shell.Cat("/etc/hostname") + hostname := shell.Chomp(shell.Cat("/etc/hostname")) log.Println("hostname =", hostname) + hs := run("hostname -s") + dn := run("domainname") + log.Println("hostname short =", hs, "domainname =", dn) + + tmp := hs + "." + dn + if (hostname == tmp) { + log.Println("hostname seems to be good", hostname) + return true + } + return false } diff --git a/main.go b/main.go index 620b4a6..53e8101 100644 --- a/main.go +++ b/main.go @@ -25,16 +25,16 @@ func main() { me.ipmap = make(map[string]*IPtype) me.dnsmap = make(map[string]*IPtype) me.ifmap = make(map[int]*IFtype) - me.dnsTTL = 5 // recheck DNS is working every 2 minutes // TODO: watch rx packets? + me.dnsTTL = 2 // recheck DNS is working every 2 minutes // TODO: watch rx packets? // will set all debugging flags // gui.SetDebug(true) // myGui = gui.New().InitEmbed(resToolkit).LoadToolkit("gocui") myGui = gui.New().Default() - sleep(1) + sleep(.2) setupControlPanelWindow() - sleep(1) + sleep(.2) if (args.GuiDebug) { gui.DebugWindow() } @@ -49,9 +49,8 @@ func main() { */ func checkNetworkChanges() { var ttl int = 0 - var ttlsleep int = 5 for { - sleep(ttlsleep) + sleep(0.5) ttl -= 1 if (ttl < 0) { if (runtime.GOOS == "linux") { diff --git a/run.go b/run.go new file mode 100644 index 0000000..510007e --- /dev/null +++ b/run.go @@ -0,0 +1,37 @@ +package main + +import ( + "bytes" + "fmt" + "strings" + "os/exec" + + "git.wit.org/wit/shell" +) + +func run(s string) string { + cmdArgs := strings.Fields(s) + // Define the command you want to run + // cmd := exec.Command(cmdArgs) + cmd := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...) + + // Create a buffer to capture the output + var out bytes.Buffer + + // Set the output of the command to the buffer + cmd.Stdout = &out + + // Run the command + err := cmd.Run() + if err != nil { + fmt.Println("Error running command:", err) + return "" + } + + tmp := shell.Chomp(out.String()) + // Output the results + fmt.Println("Command Output:", tmp) + + return tmp +} +