diff --git a/client.go b/client.go index 26dc55a4..88c6702b 100644 --- a/client.go +++ b/client.go @@ -441,9 +441,15 @@ func NewClient(cfg *Config) (cl *Client, err error) { 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 } @@ -896,10 +902,9 @@ func (me *Client) runConnection(sock net.Conn, torrent *torrent, discovery peerS }) } 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() {