5
0
mirror of https://github.com/cwinfo/yggdrasil-go.git synced 2024-11-22 08:20:28 +00:00

panic if tcp startup fails, since otherwise a nil pointer occurs in multicast. make udp do the same thing.

This commit is contained in:
Arceliar 2018-05-27 12:56:33 -05:00
parent e62cfa8c84
commit 7b12493417
2 changed files with 12 additions and 9 deletions

View File

@ -284,9 +284,10 @@ func (c *Core) DEBUG_init(bpub []byte,
////////////////////////////////////////////////////////////////////////////////
func (c *Core) DEBUG_setupAndStartGlobalUDPInterface(addrport string) {
iface := udpInterface{}
iface.init(c, addrport)
c.udp = &iface
if err := c.udp.init(c, addrport); err != nil {
c.log.Println("Failed to start UDP interface:", err)
panic(err)
}
}
func (c *Core) DEBUG_getGlobalUDPAddr() *net.UDPAddr {
@ -337,9 +338,10 @@ func (c *Core) DEBUG_addSOCKSConn(socksaddr, peeraddr string) {
//*
func (c *Core) DEBUG_setupAndStartGlobalTCPInterface(addrport string) {
iface := tcpInterface{}
iface.init(c, addrport)
c.tcp = &iface
if err := c.tcp.init(c, addrport); err != nil {
c.log.Println("Failed to start TCP interface:", err)
panic(err)
}
}
func (c *Core) DEBUG_getGlobalTCPAddr() *net.TCPAddr {

View File

@ -65,18 +65,19 @@ type udpKeys struct {
sig sigPubKey
}
func (iface *udpInterface) init(core *Core, addr string) {
func (iface *udpInterface) init(core *Core, addr string) (err error) {
iface.core = core
udpAddr, err := net.ResolveUDPAddr("udp", addr)
if err != nil {
panic(err)
return
}
iface.sock, err = net.ListenUDP("udp", udpAddr)
if err != nil {
panic(err)
return
}
iface.conns = make(map[connAddr]*connInfo)
go iface.reader()
return
}
func (iface *udpInterface) sendKeys(addr connAddr) {