client.go | 7 ++++++- diff --git a/client.go b/client.go index 66667e2be1ef01ff49d09a31b1f1d55225555e02..406f5dde6820694850ae6272bf8c154fa27cf9e1 100644 --- a/client.go +++ b/client.go @@ -964,7 +964,12 @@ addr, _ := c.Socket.RemoteAddr().(*net.TCPAddr) _, err = me.dHT.Ping(&net.UDPAddr{ IP: addr.IP, Zone: addr.Zone, - Port: int(msg.Port), + Port: func() int { + if msg.Port == 0 { + return addr.Port + } + return int(msg.Port) + }(), }) default: err = fmt.Errorf("received unknown message type: %#v", msg.Type)