summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui.go16
-rw-r--r--main.go5
-rw-r--r--nsupdate.go33
3 files changed, 45 insertions, 9 deletions
diff --git a/gui.go b/gui.go
index 8bd4012..9393d03 100644
--- a/gui.go
+++ b/gui.go
@@ -38,7 +38,7 @@ func addDNSTab(title string) {
g2.NewButton("Load 'gocui'", func () {
// this set the xterm and mate-terminal window title. maybe works generally?
fmt.Println("\033]0;" + title + "blah \007")
- gui.LoadPlugin("gocui")
+ myGui.LoadToolkit("gocui")
})
g2.NewButton("Network Interfaces", func () {
@@ -59,6 +59,11 @@ func addDNSTab(title string) {
}
})
+ g2.NewButton("Update DNS", func () {
+ log("updateDNS()")
+ updateDNS()
+ })
+
g2.NewButton("checkDNS()", func () {
checkDNS()
})
@@ -139,12 +144,8 @@ func nsupdateGroup(w *gui.Node) {
grid.NewLabel("DNS Status =")
me.DnsStatus = grid.NewLabel("unknown")
- g.NewButton("Update DNS", func () {
- log("updateDNS()")
- updateDNS()
- me.tab.Margin()
- me.tab.Pad()
- grid.Pad()
+ g.NewButton("go-nsupdate", func () {
+ nsupdate()
})
}
@@ -194,6 +195,7 @@ func updateDNS() {
} else {
me.DnsStatus.SetText("BROKEN")
log("Need to run go-nsupdate here")
+ nsupdate()
}
user, _ := user.Current()
diff --git a/main.go b/main.go
index 977956c..de326c9 100644
--- a/main.go
+++ b/main.go
@@ -39,13 +39,13 @@ func main() {
log("Toolkit = ", args.Toolkit)
for i, t := range args.Toolkit {
log("trying to load plugin", i, t)
- gui.LoadPlugin(t)
+ myGui.LoadToolkit(t)
}
// will set all debugging flags
gui.SetDebug(true)
- myGui = gui.New()
+ myGui = gui.New().LoadToolkit("gocui")
sleep(1)
setupControlPanelWindow()
sleep(1)
@@ -54,6 +54,7 @@ func main() {
gui.DebugWindow()
}
gui.ShowDebugValues()
+ go gui.Watchdog()
// forever monitor for network and dns changes
checkNetworkChanges()
diff --git a/nsupdate.go b/nsupdate.go
new file mode 100644
index 0000000..af873a2
--- /dev/null
+++ b/nsupdate.go
@@ -0,0 +1,33 @@
+// inspired from:
+// https://github.com/mactsouk/opensource.com.git
+// and
+// https://coderwall.com/p/wohavg/creating-a-simple-tcp-server-in-go
+
+package main
+
+import (
+ "os"
+)
+
+// ./go-nsupdate \
+// --tsig-algorithm=hmac-sha512 \
+// --tsig-secret="OWh5/ZHIyaz7B8J9m9ZDqZ8448Pke0PTpkYbZmFcOf5a6rEzgmcwrG91u1BHi1/4us+mKKEobDPLw1x6sD+ZJw==" \
+// -i eno2 farm001.lab.wit.org
+
+func nsupdate() {
+ var tsigSecret string
+ log(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)
+
+ for s, t := range me.ipmap {
+ if (t.IsReal()) {
+ if (t.ipv6) {
+ log(true, "nsupdate() found real AAAA =", s, "on iface", t.iface.Name)
+ }
+ }
+ }
+}