diff --git a/unix.go b/unix.go new file mode 100644 index 0000000..b953c60 --- /dev/null +++ b/unix.go @@ -0,0 +1,41 @@ +// This creates a simple hello world window +package main + +import ( + "os" + "os/exec" + "log" + "net" +// "git.wit.org/wit/gui" +// "github.com/davecgh/go-spew/spew" +) + +func CheckSuperuser() bool { + return os.Getuid() == 0 +} + +func Escalate() { + if os.Getuid() != 0 { + cmd := exec.Command("sudo", "./control-panel-dns") + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + err := cmd.Run() + if err != nil { + log.Fatal(err) + } + } +} + +// You need permission to do a zone transfer. Otherwise: +// dig +noall +answer +multiline lab.wit.org any +// dig +all +multiline fire.lab.wit.org # gives the zonefile header (ttl vals) +func DumpPublicDNSZone(zone string) { + entries, err := net.LookupHost(zone) + if err != nil { + panic(err) + } + for _, entry := range entries { + log.Println(entry) + } +}