From: Matt Joiner Date: Thu, 20 Mar 2014 13:12:53 +0000 (+1100) Subject: Send port on announces when possible X-Git-Tag: v1.0.0~1766 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=a1b95d499dffa5e8dc7917b2d70c1dc6ddc5cac5;p=btrtrc.git Send port on announces when possible --- diff --git a/client.go b/client.go index 1c02c25f..8d2ff066 100644 --- a/client.go +++ b/client.go @@ -976,10 +976,28 @@ func (me *Client) AddTorrent(metaInfo *metainfo.MetaInfo) error { return nil } +func (cl *Client) listenerAnnouncePort() (port int16) { + l := cl.Listener + if l == nil { + return + } + addr := l.Addr() + switch data := addr.(type) { + case *net.TCPAddr: + return int16(data.Port) + case *net.UDPAddr: + return int16(data.Port) + default: + log.Printf("unknown listener addr type: %T", addr) + } + return +} + func (cl *Client) announceTorrent(t *Torrent) { req := tracker.AnnounceRequest{ Event: tracker.Started, NumWant: -1, + Port: cl.listenerAnnouncePort(), } req.PeerId = cl.PeerId req.InfoHash = t.InfoHash