diff --git a/src/yggdrasil/debug.go b/src/yggdrasil/debug.go index a86f2225..40cc5c4f 100644 --- a/src/yggdrasil/debug.go +++ b/src/yggdrasil/debug.go @@ -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 { diff --git a/src/yggdrasil/udp.go b/src/yggdrasil/udp.go index 81f5d38b..02fb9d6d 100644 --- a/src/yggdrasil/udp.go +++ b/src/yggdrasil/udp.go @@ -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) {