gocui mode works again
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
7317b3d124
commit
a33eca708a
|
@ -2,3 +2,4 @@ control-panel-dns
|
||||||
/files/*
|
/files/*
|
||||||
/*.deb
|
/*.deb
|
||||||
*.swp
|
*.swp
|
||||||
|
/plugins/*
|
||||||
|
|
5
bash.go
5
bash.go
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
|
@ -29,7 +30,7 @@ func test() error {
|
||||||
go func() {
|
go func() {
|
||||||
for range ch {
|
for range ch {
|
||||||
if err := pty.InheritSize(os.Stdin, ptmx); err != nil {
|
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() {
|
func mainBash() {
|
||||||
if err := test(); err != nil {
|
if err := test(); err != nil {
|
||||||
log(logError, "exit in mainBash()")
|
log.Println(logError, "exit in mainBash()")
|
||||||
exit(err)
|
exit(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
15
fsnotify.go
15
fsnotify.go
|
@ -3,6 +3,7 @@ package main
|
||||||
// Watches for changes to a directory. Works cross-platform
|
// Watches for changes to a directory. Works cross-platform
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"github.com/fsnotify/fsnotify"
|
"github.com/fsnotify/fsnotify"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -13,7 +14,7 @@ func watchSysClassNet() {
|
||||||
// Create new watcher.
|
// Create new watcher.
|
||||||
watcher, err := fsnotify.NewWatcher()
|
watcher, err := fsnotify.NewWatcher()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(logError, "watchSysClassNet() failed:", err)
|
log.Println(logError, "watchSysClassNet() failed:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer watcher.Close()
|
defer watcher.Close()
|
||||||
|
@ -26,15 +27,15 @@ func watchSysClassNet() {
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log("event:", event)
|
log.Println("event:", event)
|
||||||
if event.Has(fsnotify.Write) {
|
if event.Has(fsnotify.Write) {
|
||||||
log("modified file:", event.Name)
|
log.Println("modified file:", event.Name)
|
||||||
}
|
}
|
||||||
case err, ok := <-watcher.Errors:
|
case err, ok := <-watcher.Errors:
|
||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log("error:", err)
|
log.Println("error:", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
@ -42,7 +43,7 @@ func watchSysClassNet() {
|
||||||
// Add a path.
|
// Add a path.
|
||||||
err = watcher.Add("/tmp")
|
err = watcher.Add("/tmp")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(logError, "watchSysClassNet() watcher.Add() failed:", err)
|
log.Println(logError, "watchSysClassNet() watcher.Add() failed:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,12 +66,12 @@ func fsnotifyNetworkInterfaceChanges() error {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case event := <-watcher.Events:
|
case event := <-watcher.Events:
|
||||||
log("fsnotifyNetworkInterfaceChanges() event =", event)
|
log.Println("fsnotifyNetworkInterfaceChanges() event =", event)
|
||||||
if event.Op&fsnotify.Create == fsnotify.Create {
|
if event.Op&fsnotify.Create == fsnotify.Create {
|
||||||
// Do something on network interface creation
|
// Do something on network interface creation
|
||||||
}
|
}
|
||||||
case err := <-watcher.Errors:
|
case err := <-watcher.Errors:
|
||||||
log("fsnotifyNetworkInterfaceChanges() event err =", err)
|
log.Println("fsnotifyNetworkInterfaceChanges() event err =", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
26
hostname.go
26
hostname.go
|
@ -5,7 +5,10 @@
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
// import "net"
|
import (
|
||||||
|
"log"
|
||||||
|
"git.wit.org/wit/shell"
|
||||||
|
)
|
||||||
|
|
||||||
// will try to get this hosts FQDN
|
// will try to get this hosts FQDN
|
||||||
import "github.com/Showmax/go-fqdn"
|
import "github.com/Showmax/go-fqdn"
|
||||||
|
@ -21,7 +24,7 @@ func getHostname() {
|
||||||
var s string = "gui.Label == nil"
|
var s string = "gui.Label == nil"
|
||||||
s, err = fqdn.FqdnHostname()
|
s, err = fqdn.FqdnHostname()
|
||||||
if (err != nil) {
|
if (err != nil) {
|
||||||
log("FQDN hostname error =", err)
|
log.Println("FQDN hostname error =", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (me.fqdn != nil) {
|
if (me.fqdn != nil) {
|
||||||
|
@ -31,19 +34,30 @@ func getHostname() {
|
||||||
me.changed = true
|
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 {
|
func dnsAAAA(s string) []string {
|
||||||
var aaaa []string
|
var aaaa []string
|
||||||
// lookup the IP address from DNS
|
// lookup the IP address from DNS
|
||||||
rrset := dnssecsocket.Dnstrace(s, "AAAA")
|
rrset := dnssecsocket.Dnstrace(s, "AAAA")
|
||||||
log(args.VerboseDNS, SPEW, rrset)
|
log.Println(args.VerboseDNS, SPEW, rrset)
|
||||||
for i, rr := range 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)
|
ipaddr := dns.Field(rr, 1)
|
||||||
aaaa = append(aaaa, ipaddr)
|
aaaa = append(aaaa, ipaddr)
|
||||||
}
|
}
|
||||||
log(args.VerboseDNS, "aaaa =", aaaa)
|
log.Println(args.VerboseDNS, "aaaa =", aaaa)
|
||||||
return aaaa
|
return aaaa
|
||||||
}
|
}
|
||||||
|
|
5
log.go
5
log.go
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
witlog "git.wit.org/wit/gui/log"
|
witlog "git.wit.org/wit/gui/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,16 +16,18 @@ var SPEW witlog.Spewt
|
||||||
|
|
||||||
// var log interface{}
|
// var log interface{}
|
||||||
|
|
||||||
|
/*
|
||||||
func log(a ...any) {
|
func log(a ...any) {
|
||||||
witlog.Where = "wit/gui"
|
witlog.Where = "wit/gui"
|
||||||
witlog.Log(a...)
|
witlog.Log(a...)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
func sleep(a ...any) {
|
func sleep(a ...any) {
|
||||||
witlog.Sleep(a...)
|
witlog.Sleep(a...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func exit(a ...any) {
|
func exit(a ...any) {
|
||||||
log(logError, "got to log() exit")
|
log.Println(logError, "got to log() exit")
|
||||||
witlog.Exit(a...)
|
witlog.Exit(a...)
|
||||||
}
|
}
|
||||||
|
|
85
net.go
85
net.go
|
@ -2,6 +2,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -17,21 +18,21 @@ func watchNetworkInterfaces() {
|
||||||
// Set up a notification channel
|
// Set up a notification channel
|
||||||
notification := make(chan net.Interface)
|
notification := make(chan net.Interface)
|
||||||
|
|
||||||
log(DEBUGNET, "watchNet()")
|
log.Println(DEBUGNET, "watchNet()")
|
||||||
// Start goroutine to watch for changes
|
// Start goroutine to watch for changes
|
||||||
go func() {
|
go func() {
|
||||||
log(DEBUGNET, "watchNet() func")
|
log.Println(DEBUGNET, "watchNet() func")
|
||||||
for {
|
for {
|
||||||
log(DEBUGNET, "forever loop start")
|
log.Println(DEBUGNET, "forever loop start")
|
||||||
// Check for changes in each interface
|
// Check for changes in each interface
|
||||||
for _, i := range interfaces {
|
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 {
|
if status := i.Flags & net.FlagUp; status != 0 {
|
||||||
notification <- i
|
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 {
|
func (t *IPtype) IsReal() bool {
|
||||||
if (t.ip.IsPrivate() || t.ip.IsLoopback() || t.ip.IsLinkLocalUnicast()) {
|
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
|
return false
|
||||||
} else {
|
} else {
|
||||||
log(DEBUGNET, "\t\tIP is Real = true")
|
log.Println(DEBUGNET, "\t\tIP is Real = true")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func IsReal(ip *net.IP) bool {
|
func IsReal(ip *net.IP) bool {
|
||||||
if (ip.IsPrivate() || ip.IsLoopback() || ip.IsLinkLocalUnicast()) {
|
if (ip.IsPrivate() || ip.IsLoopback() || ip.IsLinkLocalUnicast()) {
|
||||||
log(DEBUGNET, "\t\tIP is Real = false")
|
log.Println(DEBUGNET, "\t\tIP is Real = false")
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
log(DEBUGNET, "\t\tIP is Real = true")
|
log.Println(DEBUGNET, "\t\tIP is Real = true")
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,7 +74,7 @@ func renameInterface(i *net.Interface) {
|
||||||
func checkInterface(i net.Interface) {
|
func checkInterface(i net.Interface) {
|
||||||
val, ok := me.ifmap[i.Index]
|
val, ok := me.ifmap[i.Index]
|
||||||
if ! ok {
|
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] = new(IFtype)
|
||||||
me.ifmap[i.Index].gone = false
|
me.ifmap[i.Index].gone = false
|
||||||
me.ifmap[i.Index].iface = &i
|
me.ifmap[i.Index].iface = &i
|
||||||
|
@ -85,9 +86,9 @@ func checkInterface(i net.Interface) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
me.ifmap[i.Index].gone = false
|
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) {
|
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.ifmap[i.Index].iface = &i
|
||||||
me.changed = true
|
me.changed = true
|
||||||
if (me.Interfaces != nil) {
|
if (me.Interfaces != nil) {
|
||||||
|
@ -125,14 +126,14 @@ func checkDNS() (map[string]*IPtype, map[string]*IPtype) {
|
||||||
ipt = "IPv6"
|
ipt = "IPv6"
|
||||||
}
|
}
|
||||||
if (t.IsReal()) {
|
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) {
|
if (t.ipv6) {
|
||||||
ipv6s[s] = t
|
ipv6s[s] = t
|
||||||
} else {
|
} else {
|
||||||
ipv4s[s] = t
|
ipv4s[s] = t
|
||||||
}
|
}
|
||||||
} else {
|
} 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
|
return ipv6s, ipv4s
|
||||||
|
@ -140,14 +141,14 @@ func checkDNS() (map[string]*IPtype, map[string]*IPtype) {
|
||||||
|
|
||||||
// Will figure out if an IP address is new
|
// Will figure out if an IP address is new
|
||||||
func checkIP(ip *net.IPNet, i net.Interface) bool {
|
func checkIP(ip *net.IPNet, i net.Interface) bool {
|
||||||
log(args.VerboseNet, "\t\taddr.(type) = *net.IPNet")
|
log.Println(args.VerboseNet, "\t\taddr.(type) = *net.IPNet")
|
||||||
log(args.VerboseNet, "\t\taddr.(type) =", ip)
|
log.Println(args.VerboseNet, "\t\taddr.(type) =", ip)
|
||||||
var realip string
|
var realip string
|
||||||
realip = ip.IP.String()
|
realip = ip.IP.String()
|
||||||
|
|
||||||
val, ok := me.ipmap[realip]
|
val, ok := me.ipmap[realip]
|
||||||
if ok {
|
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
|
me.ipmap[realip].gone = false
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
@ -174,14 +175,14 @@ func checkIP(ip *net.IPNet, i net.Interface) bool {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (IsReal(&ip.IP)) {
|
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 {
|
} 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.Println(args.VerboseNet, "\t\tIP is IsPrivate() =", ip.IP.IsPrivate())
|
||||||
log(args.VerboseNet, "\t\tIP is IsLoopback() =", ip.IP.IsLoopback())
|
log.Println(args.VerboseNet, "\t\tIP is IsLoopback() =", ip.IP.IsLoopback())
|
||||||
log(args.VerboseNet, "\t\tIP is IsLinkLocalUnicast() =", ip.IP.IsLinkLocalUnicast())
|
log.Println(args.VerboseNet, "\t\tIP is IsLinkLocalUnicast() =", ip.IP.IsLinkLocalUnicast())
|
||||||
// log("HERE HERE", "realip =", realip, "me.ip[realip]=", me.ipmap[realip])
|
// log.Println("HERE HERE", "realip =", realip, "me.ip[realip]=", me.ipmap[realip])
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,25 +190,25 @@ func scanInterfaces() {
|
||||||
me.changed = false
|
me.changed = false
|
||||||
ifaces, _ := net.Interfaces()
|
ifaces, _ := net.Interfaces()
|
||||||
// me.ifnew = ifaces
|
// me.ifnew = ifaces
|
||||||
log(DEBUGNET, SPEW, ifaces)
|
log.Println(DEBUGNET, SPEW, ifaces)
|
||||||
for _, i := range ifaces {
|
for _, i := range ifaces {
|
||||||
addrs, _ := i.Addrs()
|
addrs, _ := i.Addrs()
|
||||||
// log("range ifaces = ", i)
|
// log.Println("range ifaces = ", i)
|
||||||
checkInterface(i)
|
checkInterface(i)
|
||||||
log(args.VerboseNet, "*net.Interface.Name = ", i.Name, i.Index)
|
log.Println(args.VerboseNet, "*net.Interface.Name = ", i.Name, i.Index)
|
||||||
log(args.VerboseNet, SPEW, i)
|
log.Println(args.VerboseNet, SPEW, i)
|
||||||
log(DEBUGNET, SPEW, addrs)
|
log.Println(DEBUGNET, SPEW, addrs)
|
||||||
for _, addr := range addrs {
|
for _, addr := range addrs {
|
||||||
log(DEBUGNET, "\taddr =", addr)
|
log.Println(DEBUGNET, "\taddr =", addr)
|
||||||
log(DEBUGNET, SPEW, addrs)
|
log.Println(DEBUGNET, SPEW, addrs)
|
||||||
ips, _ := net.LookupIP(addr.String())
|
ips, _ := net.LookupIP(addr.String())
|
||||||
log(DEBUGNET, "\tLookupIP(addr) =", ips)
|
log.Println(DEBUGNET, "\tLookupIP(addr) =", ips)
|
||||||
switch v := addr.(type) {
|
switch v := addr.(type) {
|
||||||
case *net.IPNet:
|
case *net.IPNet:
|
||||||
checkIP(v, i)
|
checkIP(v, i)
|
||||||
// log("\t\tIP is () =", ip.())
|
// log.Println("\t\tIP is () =", ip.())
|
||||||
default:
|
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 {
|
for s, t := range me.ipmap {
|
||||||
if (t.ipv4) {
|
if (t.ipv4) {
|
||||||
all4 += s + "\n"
|
all4 += s + "\n"
|
||||||
log("IPv4 =", s)
|
log.Println("IPv4 =", s)
|
||||||
} else if (t.ipv6) {
|
} else if (t.ipv6) {
|
||||||
all6 += s + "\n"
|
all6 += s + "\n"
|
||||||
log("IPv6 =", s)
|
log.Println("IPv6 =", s)
|
||||||
} else {
|
} else {
|
||||||
log("???? =", s)
|
log.Println("???? =", s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
all4 = strings.TrimSpace(all4)
|
all4 = strings.TrimSpace(all4)
|
||||||
|
@ -235,7 +236,7 @@ func scanInterfaces() {
|
||||||
func deleteChanges() {
|
func deleteChanges() {
|
||||||
for i, t := range me.ifmap {
|
for i, t := range me.ifmap {
|
||||||
if (t.gone) {
|
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)
|
delete(me.ifmap, i)
|
||||||
me.changed = true
|
me.changed = true
|
||||||
}
|
}
|
||||||
|
@ -243,10 +244,10 @@ func deleteChanges() {
|
||||||
}
|
}
|
||||||
for s, t := range me.ipmap {
|
for s, t := range me.ipmap {
|
||||||
if (t.gone) {
|
if (t.gone) {
|
||||||
log("DELETE name =", s, "IPv4 =", t.ipv4)
|
log.Println("DELETE name =", s, "IPv4 =", t.ipv4)
|
||||||
log("DELETE name =", s, "IPv6 =", t.ipv6)
|
log.Println("DELETE name =", s, "IPv6 =", t.ipv6)
|
||||||
log("DELETE name =", s, "iface =", t.iface)
|
log.Println("DELETE name =", s, "iface =", t.iface)
|
||||||
log("DELETE name =", s, "ip =", t.ip)
|
log.Println("DELETE name =", s, "ip =", t.ip)
|
||||||
delete(me.ipmap, s)
|
delete(me.ipmap, s)
|
||||||
me.changed = true
|
me.changed = true
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -16,17 +17,17 @@ import (
|
||||||
|
|
||||||
func nsupdate() {
|
func nsupdate() {
|
||||||
var tsigSecret string
|
var tsigSecret string
|
||||||
log(true, "nsupdate() START")
|
log.Println(true, "nsupdate() START")
|
||||||
cmd := "go-nsupdate --tsig-algorithm=hmac-sha512"
|
cmd := "go-nsupdate --tsig-algorithm=hmac-sha512"
|
||||||
tsigSecret = os.Getenv("TIG_SECRET")
|
tsigSecret = os.Getenv("TIG_SECRET")
|
||||||
cmd += " --tig-secret=\"" + tsigSecret + "\""
|
cmd += " --tig-secret=\"" + tsigSecret + "\""
|
||||||
cmd += " -i wlo1 " + me.hostname
|
cmd += " -i wlo1 " + me.hostname
|
||||||
log(true, "nsupdate() RUN:", cmd)
|
log.Println(true, "nsupdate() RUN:", cmd)
|
||||||
|
|
||||||
for s, t := range me.ipmap {
|
for s, t := range me.ipmap {
|
||||||
if (t.IsReal()) {
|
if (t.IsReal()) {
|
||||||
if (t.ipv6) {
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"github.com/jsimonetti/rtnetlink"
|
"github.com/jsimonetti/rtnetlink"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@ func Example_listLink() {
|
||||||
// Dial a connection to the rtnetlink socket
|
// Dial a connection to the rtnetlink socket
|
||||||
conn, err := rtnetlink.Dial(nil)
|
conn, err := rtnetlink.Dial(nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(logError, "Example_listLink() failed", err)
|
log.Println(logError, "Example_listLink() failed", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer conn.Close()
|
defer conn.Close()
|
||||||
|
@ -17,9 +18,9 @@ func Example_listLink() {
|
||||||
// Request a list of interfaces
|
// Request a list of interfaces
|
||||||
msg, err := conn.Link.List()
|
msg, err := conn.Link.List()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log("%#v", msg)
|
log.Println("%#v", msg)
|
||||||
log(SPEW, msg)
|
log.Println(SPEW, msg)
|
||||||
}
|
}
|
||||||
|
|
9
unix.go
9
unix.go
|
@ -5,6 +5,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"net"
|
"net"
|
||||||
|
@ -22,7 +23,7 @@ func Escalate() {
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(logError, "exit in Escalate()")
|
log.Println(logError, "exit in Escalate()")
|
||||||
exit(err)
|
exit(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,17 +38,17 @@ func DumpPublicDNSZone(zone string) {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
for _, entry := range entries {
|
for _, entry := range entries {
|
||||||
log(entry)
|
log.Println(entry)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func dumpIPs(host string) {
|
func dumpIPs(host string) {
|
||||||
ips, err := net.LookupIP(host)
|
ips, err := net.LookupIP(host)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log(logError, "dumpIPs() failed:", err)
|
log.Println(logError, "dumpIPs() failed:", err)
|
||||||
}
|
}
|
||||||
for _, ip := range ips {
|
for _, ip := range ips {
|
||||||
log(host, ip)
|
log.Println(host, ip)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue