need a netlink function to trigger on changes
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
9179af8289
commit
32f47de62a
3
gui.go
3
gui.go
|
@ -49,7 +49,10 @@ func addDNSTab(window *gui.Node, title string) {
|
||||||
dd.OnChanged = func(*gui.Node) {
|
dd.OnChanged = func(*gui.Node) {
|
||||||
s := dd.GetText()
|
s := dd.GetText()
|
||||||
tb.SetText("hello world " + args.User + "\n" + s)
|
tb.SetText("hello world " + args.User + "\n" + s)
|
||||||
|
log.Println("text =", s)
|
||||||
}
|
}
|
||||||
|
g.NewLabel("UID =")
|
||||||
|
|
||||||
|
|
||||||
g2 = newNode.NewGroup("group 2")
|
g2 = newNode.NewGroup("group 2")
|
||||||
tb = g2.NewTextbox("tb")
|
tb = g2.NewTextbox("tb")
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
/*
|
||||||
|
import (
|
||||||
|
// "os"
|
||||||
|
// "os/exec"
|
||||||
|
// "log"
|
||||||
|
// "net"
|
||||||
|
// "unix"
|
||||||
|
"github.com/vishvananda/netlink"
|
||||||
|
"github.com/jsimonetti/rtnetlink"
|
||||||
|
// "git.wit.org/wit/gui"
|
||||||
|
// "github.com/davecgh/go-spew/spew"
|
||||||
|
)
|
||||||
|
|
||||||
|
// In golang, write a function to register with netlink to detect changes to any network interface Use tab indentation. Do not include example usage.
|
||||||
|
|
||||||
|
func registerNetlink() error {
|
||||||
|
// Create netlink socket
|
||||||
|
sock, err := netlink.Socket(rtnetlink.NETLINK_ROUTE, 0)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Register for interface change events
|
||||||
|
err = netlink.AddMembership(sock, netlink.RTNLGRP_LINK)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Close the socket
|
||||||
|
defer sock.Close()
|
||||||
|
// Handle incoming notifications
|
||||||
|
for {
|
||||||
|
msgs, _, err := sock.Receive()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, msg := range msgs {
|
||||||
|
switch msg.Header.Type {
|
||||||
|
case unix.RTM_NEWLINK:
|
||||||
|
// Do something with new link
|
||||||
|
case unix.RTM_DELLINK:
|
||||||
|
// Do something with deleted link
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
*/
|
2
unix.go
2
unix.go
|
@ -19,7 +19,7 @@ func CheckSuperuser() bool {
|
||||||
|
|
||||||
func Escalate() {
|
func Escalate() {
|
||||||
if os.Getuid() != 0 {
|
if os.Getuid() != 0 {
|
||||||
cmd := exec.Command("sudo", "./control-panel-dns")
|
cmd := exec.Command("sudo", "./control-panel-dns") // TODO: get the actual path
|
||||||
cmd.Stdin = os.Stdin
|
cmd.Stdin = os.Stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
|
|
Loading…
Reference in New Issue