client.go | 13 +++++++++---- diff --git a/client.go b/client.go index 24af34da4f8c636e92ac1a654fae409e525c9dc4..6ac5a2298571190d5502d7092e1f7fe70892bffe 100644 --- a/client.go +++ b/client.go @@ -426,9 +426,15 @@ } cl.listeners = append(cl.listeners, l) go cl.acceptConnections(l, false) } - var utpL *utp.UTPListener + var utpL *utp.Listener if !cfg.DisableUTP { - utpL, err = utp.Listen("utp", listenAddr()) + var utpAddr *utp.Addr + utpAddr, err = utp.ResolveAddr("utp", listenAddr()) + if err != nil { + err = fmt.Errorf("error resolving utp listen addr: %s", err) + return + } + utpL, err = utp.Listen("utp", utpAddr) if err != nil { return } @@ -881,10 +887,9 @@ Bitfield: torrent.bitfield(), }) } if conn.PeerExtensionBytes[7]&0x01 != 0 && me.dHT != nil { - addr, _ := me.dHT.LocalAddr().(*net.UDPAddr) conn.Post(pp.Message{ Type: pp.Port, - Port: uint16(addr.Port), + Port: uint16(AddrPort(me.dHT.LocalAddr())), }) } if torrent.haveInfo() {