summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2023-12-16 09:02:59 -0600
committerJeff Carr <[email protected]>2023-12-16 09:02:59 -0600
commita33eca708a44bb8b9af1790413d56236dc504295 (patch)
treee5a629088b5b5b92219ccd6b8b2365118f4a897b
parent7317b3d124c2c75423d8a7311ceec3c12ec71dd3 (diff)
gocui mode works again
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--.gitignore1
-rw-r--r--bash.go5
-rw-r--r--fsnotify.go17
-rw-r--r--hostname.go26
-rw-r--r--log.go5
-rw-r--r--net.go85
-rw-r--r--nsupdate.go7
-rw-r--r--rtnetlink.go9
-rw-r--r--unix.go9
9 files changed, 94 insertions, 70 deletions
diff --git a/.gitignore b/.gitignore
index 5f076b3..fac511a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@ control-panel-dns
/files/*
/*.deb
*.swp
+/plugins/*
diff --git a/bash.go b/bash.go
index 2f4b8ca..5e63e5f 100644
--- a/bash.go
+++ b/bash.go
@@ -2,6 +2,7 @@ package main
import (
"io"
+ "log"
"os"
"os/exec"
"os/signal"
@@ -29,7 +30,7 @@ func test() error {
go func() {
for range ch {
if err := pty.InheritSize(os.Stdin, ptmx); err != nil {
- log("error resizing pty: %s", err)
+ log.Println("error resizing pty: %s", err)
}
}
}()
@@ -53,7 +54,7 @@ func test() error {
func mainBash() {
if err := test(); err != nil {
- log(logError, "exit in mainBash()")
+ log.Println(logError, "exit in mainBash()")
exit(err)
}
}
diff --git a/fsnotify.go b/fsnotify.go
index cff67b7..8e00527 100644
--- a/fsnotify.go
+++ b/fsnotify.go
@@ -3,7 +3,8 @@ package main
// Watches for changes to a directory. Works cross-platform
import (
- "github.com/fsnotify/fsnotify"
+ "log"
+ "github.com/fsnotify/fsnotify"
)
// This would be a really dumb way to watch for new network interfaces
@@ -13,7 +14,7 @@ func watchSysClassNet() {
// Create new watcher.
watcher, err := fsnotify.NewWatcher()
if err != nil {
- log(logError, "watchSysClassNet() failed:", err)
+ log.Println(logError, "watchSysClassNet() failed:", err)
return
}
defer watcher.Close()
@@ -26,15 +27,15 @@ func watchSysClassNet() {
if !ok {
return
}
- log("event:", event)
+ log.Println("event:", event)
if event.Has(fsnotify.Write) {
- log("modified file:", event.Name)
+ log.Println("modified file:", event.Name)
}
case err, ok := <-watcher.Errors:
if !ok {
return
}
- log("error:", err)
+ log.Println("error:", err)
}
}
}()
@@ -42,7 +43,7 @@ func watchSysClassNet() {
// Add a path.
err = watcher.Add("/tmp")
if err != nil {
- log(logError, "watchSysClassNet() watcher.Add() failed:", err)
+ log.Println(logError, "watchSysClassNet() watcher.Add() failed:", err)
return
}
@@ -65,12 +66,12 @@ func fsnotifyNetworkInterfaceChanges() error {
for {
select {
case event := <-watcher.Events:
- log("fsnotifyNetworkInterfaceChanges() event =", event)
+ log.Println("fsnotifyNetworkInterfaceChanges() event =", event)
if event.Op&fsnotify.Create == fsnotify.Create {
// Do something on network interface creation
}
case err := <-watcher.Errors:
- log("fsnotifyNetworkInterfaceChanges() event err =", err)
+ log.Println("fsnotifyNetworkInterfaceChanges() event err =", err)
return err
}
}
diff --git a/hostname.go b/hostname.go
index b4b0d42..cf033df 100644
--- a/hostname.go
+++ b/hostname.go
@@ -5,7 +5,10 @@
package main
-// import "net"
+import (
+ "log"
+ "git.wit.org/wit/shell"
+)
// will try to get this hosts FQDN
import "github.com/Showmax/go-fqdn"
@@ -21,7 +24,7 @@ func getHostname() {
var s string = "gui.Label == nil"
s, err = fqdn.FqdnHostname()
if (err != nil) {
- log("FQDN hostname error =", err)
+ log.Println("FQDN hostname error =", err)
return
}
if (me.fqdn != nil) {
@@ -31,19 +34,30 @@ func getHostname() {
me.changed = true
}
}
- log("FQDN =", s)
+ log.Println("FQDN =", s)
+}
+
+// returns true if the hostname is good
+// check that all the OS settings are correct here
+// On Linux, /etc/hosts, /etc/hostname
+// and domainname and hostname
+func goodHostname(h string) bool {
+ hostname := shell.Cat("/etc/hostname")
+ log.Println("hostname =", hostname)
+
+ return false
}
func dnsAAAA(s string) []string {
var aaaa []string
// lookup the IP address from DNS
rrset := dnssecsocket.Dnstrace(s, "AAAA")
- log(args.VerboseDNS, SPEW, rrset)
+ log.Println(args.VerboseDNS, SPEW, rrset)
for i, rr := range rrset {
- log(args.VerboseDNS, "r.Answer =", i, rr)
+ log.Println(args.VerboseDNS, "r.Answer =", i, rr)
ipaddr := dns.Field(rr, 1)
aaaa = append(aaaa, ipaddr)
}
- log(args.VerboseDNS, "aaaa =", aaaa)
+ log.Println(args.VerboseDNS, "aaaa =", aaaa)
return aaaa
}
diff --git a/log.go b/log.go
index aa67acf..b0994c0 100644
--- a/log.go
+++ b/log.go
@@ -1,6 +1,7 @@
package main
import (
+ "log"
witlog "git.wit.org/wit/gui/log"
)
@@ -15,16 +16,18 @@ var SPEW witlog.Spewt
// var log interface{}
+/*
func log(a ...any) {
witlog.Where = "wit/gui"
witlog.Log(a...)
}
+*/
func sleep(a ...any) {
witlog.Sleep(a...)
}
func exit(a ...any) {
- log(logError, "got to log() exit")
+ log.Println(logError, "got to log() exit")
witlog.Exit(a...)
}
diff --git a/net.go b/net.go
index fb3b417..e6d3d07 100644
--- a/net.go
+++ b/net.go
@@ -2,6 +2,7 @@
package main
import (
+ "log"
"net"
"strings"
)
@@ -17,21 +18,21 @@ func watchNetworkInterfaces() {
// Set up a notification channel
notification := make(chan net.Interface)
- log(DEBUGNET, "watchNet()")
+ log.Println(DEBUGNET, "watchNet()")
// Start goroutine to watch for changes
go func() {
- log(DEBUGNET, "watchNet() func")
+ log.Println(DEBUGNET, "watchNet() func")
for {
- log(DEBUGNET, "forever loop start")
+ log.Println(DEBUGNET, "forever loop start")
// Check for changes in each interface
for _, i := range interfaces {
- log(DEBUGNET, "something on i =", i)
+ log.Println(DEBUGNET, "something on i =", i)
if status := i.Flags & net.FlagUp; status != 0 {
notification <- i
- log(DEBUGNET, "something on i =", i)
+ log.Println(DEBUGNET, "something on i =", i)
}
}
- log(DEBUGNET, "forever loop end")
+ log.Println(DEBUGNET, "forever loop end")
}
}()
}
@@ -43,20 +44,20 @@ func IsIPv6(address string) bool {
func (t *IPtype) IsReal() bool {
if (t.ip.IsPrivate() || t.ip.IsLoopback() || t.ip.IsLinkLocalUnicast()) {
- log(DEBUGNET, "\t\tIP is Real = false")
+ log.Println(DEBUGNET, "\t\tIP is Real = false")
return false
} else {
- log(DEBUGNET, "\t\tIP is Real = true")
+ log.Println(DEBUGNET, "\t\tIP is Real = true")
return true
}
}
func IsReal(ip *net.IP) bool {
if (ip.IsPrivate() || ip.IsLoopback() || ip.IsLinkLocalUnicast()) {
- log(DEBUGNET, "\t\tIP is Real = false")
+ log.Println(DEBUGNET, "\t\tIP is Real = false")
return false
} else {
- log(DEBUGNET, "\t\tIP is Real = true")
+ log.Println(DEBUGNET, "\t\tIP is Real = true")
return true
}
}
@@ -73,7 +74,7 @@ func renameInterface(i *net.Interface) {
func checkInterface(i net.Interface) {
val, ok := me.ifmap[i.Index]
if ! ok {
- log(i.Name, "is a new network interface. The linux kernel index =", i.Index)
+ log.Println(i.Name, "is a new network interface. The linux kernel index =", i.Index)
me.ifmap[i.Index] = new(IFtype)
me.ifmap[i.Index].gone = false
me.ifmap[i.Index].iface = &i
@@ -85,9 +86,9 @@ func checkInterface(i net.Interface) {
return
}
me.ifmap[i.Index].gone = false
- log(args.VerboseNet, "me.ifmap[i] does exist. Need to compare everything.", i.Index, i.Name, val.iface.Index, val.iface.Name)
+ log.Println(args.VerboseNet, "me.ifmap[i] does exist. Need to compare everything.", i.Index, i.Name, val.iface.Index, val.iface.Name)
if (val.iface.Name != i.Name) {
- log(val.iface.Name, "has changed to it's name to", i.Name)
+ log.Println(val.iface.Name, "has changed to it's name to", i.Name)
me.ifmap[i.Index].iface = &i
me.changed = true
if (me.Interfaces != nil) {
@@ -125,14 +126,14 @@ func checkDNS() (map[string]*IPtype, map[string]*IPtype) {
ipt = "IPv6"
}
if (t.IsReal()) {
- log("\tIP is Real ", ipt, i.Index, i.Name, s)
+ log.Println("\tIP is Real ", ipt, i.Index, i.Name, s)
if (t.ipv6) {
ipv6s[s] = t
} else {
ipv4s[s] = t
}
} else {
- log("\tIP is not Real", ipt, i.Index, i.Name, s)
+ log.Println("\tIP is not Real", ipt, i.Index, i.Name, s)
}
}
return ipv6s, ipv4s
@@ -140,14 +141,14 @@ func checkDNS() (map[string]*IPtype, map[string]*IPtype) {
// Will figure out if an IP address is new
func checkIP(ip *net.IPNet, i net.Interface) bool {
- log(args.VerboseNet, "\t\taddr.(type) = *net.IPNet")
- log(args.VerboseNet, "\t\taddr.(type) =", ip)
+ log.Println(args.VerboseNet, "\t\taddr.(type) = *net.IPNet")
+ log.Println(args.VerboseNet, "\t\taddr.(type) =", ip)
var realip string
realip = ip.IP.String()
val, ok := me.ipmap[realip]
if ok {
- log(args.VerboseNet, val.ipnet.IP.String(), "is already a defined IP address")
+ log.Println(args.VerboseNet, val.ipnet.IP.String(), "is already a defined IP address")
me.ipmap[realip].gone = false
return false
}
@@ -174,14 +175,14 @@ func checkIP(ip *net.IPNet, i net.Interface) bool {
}
}
if (IsReal(&ip.IP)) {
- log("\tIP is Real ", t, i.Index, i.Name, realip)
+ log.Println("\tIP is Real ", t, i.Index, i.Name, realip)
} else {
- log("\tIP is not Real", t, i.Index, i.Name, realip)
+ log.Println("\tIP is not Real", t, i.Index, i.Name, realip)
}
- log(args.VerboseNet, "\t\tIP is IsPrivate() =", ip.IP.IsPrivate())
- log(args.VerboseNet, "\t\tIP is IsLoopback() =", ip.IP.IsLoopback())
- log(args.VerboseNet, "\t\tIP is IsLinkLocalUnicast() =", ip.IP.IsLinkLocalUnicast())
- // log("HERE HERE", "realip =", realip, "me.ip[realip]=", me.ipmap[realip])
+ log.Println(args.VerboseNet, "\t\tIP is IsPrivate() =", ip.IP.IsPrivate())
+ log.Println(args.VerboseNet, "\t\tIP is IsLoopback() =", ip.IP.IsLoopback())
+ log.Println(args.VerboseNet, "\t\tIP is IsLinkLocalUnicast() =", ip.IP.IsLinkLocalUnicast())
+ // log.Println("HERE HERE", "realip =", realip, "me.ip[realip]=", me.ipmap[realip])
return true
}
@@ -189,25 +190,25 @@ func scanInterfaces() {
me.changed = false
ifaces, _ := net.Interfaces()
// me.ifnew = ifaces
- log(DEBUGNET, SPEW, ifaces)
+ log.Println(DEBUGNET, SPEW, ifaces)
for _, i := range ifaces {
addrs, _ := i.Addrs()
- // log("range ifaces = ", i)
+ // log.Println("range ifaces = ", i)
checkInterface(i)
- log(args.VerboseNet, "*net.Interface.Name = ", i.Name, i.Index)
- log(args.VerboseNet, SPEW, i)
- log(DEBUGNET, SPEW, addrs)
+ log.Println(args.VerboseNet, "*net.Interface.Name = ", i.Name, i.Index)
+ log.Println(args.VerboseNet, SPEW, i)
+ log.Println(DEBUGNET, SPEW, addrs)
for _, addr := range addrs {
- log(DEBUGNET, "\taddr =", addr)
- log(DEBUGNET, SPEW, addrs)
+ log.Println(DEBUGNET, "\taddr =", addr)
+ log.Println(DEBUGNET, SPEW, addrs)
ips, _ := net.LookupIP(addr.String())
- log(DEBUGNET, "\tLookupIP(addr) =", ips)
+ log.Println(DEBUGNET, "\tLookupIP(addr) =", ips)
switch v := addr.(type) {
case *net.IPNet:
checkIP(v, i)
- // log("\t\tIP is () =", ip.())
+ // log.Println("\t\tIP is () =", ip.())
default:
- log(DEBUGNET, "\t\taddr.(type) = NO IDEA WHAT TO DO HERE v =", v)
+ log.Println(DEBUGNET, "\t\taddr.(type) = NO IDEA WHAT TO DO HERE v =", v)
}
}
}
@@ -217,12 +218,12 @@ func scanInterfaces() {
for s, t := range me.ipmap {
if (t.ipv4) {
all4 += s + "\n"
- log("IPv4 =", s)
+ log.Println("IPv4 =", s)
} else if (t.ipv6) {
all6 += s + "\n"
- log("IPv6 =", s)
+ log.Println("IPv6 =", s)
} else {
- log("???? =", s)
+ log.Println("???? =", s)
}
}
all4 = strings.TrimSpace(all4)
@@ -235,7 +236,7 @@ func scanInterfaces() {
func deleteChanges() {
for i, t := range me.ifmap {
if (t.gone) {
- log("DELETE int =", i, "name =", t.name, t.iface)
+ log.Println("DELETE int =", i, "name =", t.name, t.iface)
delete(me.ifmap, i)
me.changed = true
}
@@ -243,10 +244,10 @@ func deleteChanges() {
}
for s, t := range me.ipmap {
if (t.gone) {
- log("DELETE name =", s, "IPv4 =", t.ipv4)
- log("DELETE name =", s, "IPv6 =", t.ipv6)
- log("DELETE name =", s, "iface =", t.iface)
- log("DELETE name =", s, "ip =", t.ip)
+ log.Println("DELETE name =", s, "IPv4 =", t.ipv4)
+ log.Println("DELETE name =", s, "IPv6 =", t.ipv6)
+ log.Println("DELETE name =", s, "iface =", t.iface)
+ log.Println("DELETE name =", s, "ip =", t.ip)
delete(me.ipmap, s)
me.changed = true
}
diff --git a/nsupdate.go b/nsupdate.go
index af873a2..84f607d 100644
--- a/nsupdate.go
+++ b/nsupdate.go
@@ -6,6 +6,7 @@
package main
import (
+ "log"
"os"
)
@@ -16,17 +17,17 @@ import (
func nsupdate() {
var tsigSecret string
- log(true, "nsupdate() START")
+ log.Println(true, "nsupdate() START")
cmd := "go-nsupdate --tsig-algorithm=hmac-sha512"
tsigSecret = os.Getenv("TIG_SECRET")
cmd += " --tig-secret=\"" + tsigSecret + "\""
cmd += " -i wlo1 " + me.hostname
- log(true, "nsupdate() RUN:", cmd)
+ log.Println(true, "nsupdate() RUN:", cmd)
for s, t := range me.ipmap {
if (t.IsReal()) {
if (t.ipv6) {
- log(true, "nsupdate() found real AAAA =", s, "on iface", t.iface.Name)
+ log.Println(true, "nsupdate() found real AAAA =", s, "on iface", t.iface.Name)
}
}
}
diff --git a/rtnetlink.go b/rtnetlink.go
index 4185c99..46898b5 100644
--- a/rtnetlink.go
+++ b/rtnetlink.go
@@ -1,6 +1,7 @@
package main
import (
+ "log"
"github.com/jsimonetti/rtnetlink"
)
@@ -9,7 +10,7 @@ func Example_listLink() {
// Dial a connection to the rtnetlink socket
conn, err := rtnetlink.Dial(nil)
if err != nil {
- log(logError, "Example_listLink() failed", err)
+ log.Println(logError, "Example_listLink() failed", err)
return
}
defer conn.Close()
@@ -17,9 +18,9 @@ func Example_listLink() {
// Request a list of interfaces
msg, err := conn.Link.List()
if err != nil {
- log(err)
+ log.Println(err)
}
- log("%#v", msg)
- log(SPEW, msg)
+ log.Println("%#v", msg)
+ log.Println(SPEW, msg)
}
diff --git a/unix.go b/unix.go
index 3660095..c9b5cc0 100644
--- a/unix.go
+++ b/unix.go
@@ -5,6 +5,7 @@
package main
import (
+ "log"
"os"
"os/exec"
"net"
@@ -22,7 +23,7 @@ func Escalate() {
cmd.Stderr = os.Stderr
err := cmd.Run()
if err != nil {
- log(logError, "exit in Escalate()")
+ log.Println(logError, "exit in Escalate()")
exit(err)
}
}
@@ -37,17 +38,17 @@ func DumpPublicDNSZone(zone string) {
panic(err)
}
for _, entry := range entries {
- log(entry)
+ log.Println(entry)
}
}
func dumpIPs(host string) {
ips, err := net.LookupIP(host)
if err != nil {
- log(logError, "dumpIPs() failed:", err)
+ log.Println(logError, "dumpIPs() failed:", err)
}
for _, ip := range ips {
- log(host, ip)
+ log.Println(host, ip)
}
}