mirror of https://github.com/jetkvm/kvm.git
Restart mDNS every time the connection information changes (#155)
This commit is contained in:
parent
2a99c2db9d
commit
951173ba19
21
network.go
21
network.go
|
@ -13,6 +13,8 @@ import (
|
|||
"github.com/vishvananda/netlink/nl"
|
||||
)
|
||||
|
||||
var mDNSConn *mdns.Conn
|
||||
|
||||
var networkState struct {
|
||||
Up bool
|
||||
IPv4 string
|
||||
|
@ -91,13 +93,26 @@ func checkNetworkState() {
|
|||
}
|
||||
|
||||
if newState != networkState {
|
||||
networkState = newState
|
||||
fmt.Println("network state changed")
|
||||
//restart MDNS
|
||||
startMDNS()
|
||||
networkState = newState
|
||||
requestDisplayUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
func startMDNS() error {
|
||||
//If server was previously running, stop it
|
||||
if mDNSConn != nil {
|
||||
fmt.Printf("Stopping mDNS server\n")
|
||||
err := mDNSConn.Close()
|
||||
if err != nil {
|
||||
fmt.Printf("failed to stop mDNS server: %v\n", err)
|
||||
}
|
||||
}
|
||||
|
||||
//Start a new server
|
||||
fmt.Printf("Starting mDNS server on jetkvm.local\n")
|
||||
addr4, err := net.ResolveUDPAddr("udp4", mdns.DefaultAddressIPv4)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -118,10 +133,11 @@ func startMDNS() error {
|
|||
return err
|
||||
}
|
||||
|
||||
_, err = mdns.Server(ipv4.NewPacketConn(l4), ipv6.NewPacketConn(l6), &mdns.Config{
|
||||
mDNSConn, err = mdns.Server(ipv4.NewPacketConn(l4), ipv6.NewPacketConn(l6), &mdns.Config{
|
||||
LocalNames: []string{"jetkvm.local"}, //TODO: make it configurable
|
||||
})
|
||||
if err != nil {
|
||||
mDNSConn = nil
|
||||
return err
|
||||
}
|
||||
//defer server.Close()
|
||||
|
@ -157,7 +173,6 @@ func init() {
|
|||
}
|
||||
}
|
||||
}()
|
||||
fmt.Println("Starting mDNS server")
|
||||
err := startMDNS()
|
||||
if err != nil {
|
||||
fmt.Println("failed to run mDNS: %v", err)
|
||||
|
|
Loading…
Reference in New Issue