cmd/tracker-announce/main.go | 6 +++++- tracker/http.go | 1 + diff --git a/cmd/tracker-announce/main.go b/cmd/tracker-announce/main.go index a0085de79c5786567828c50e20cad40b20f23709..f6bede88d02db917c3a47271ad6af2821d472730 100644 --- a/cmd/tracker-announce/main.go +++ b/cmd/tracker-announce/main.go @@ -30,13 +30,17 @@ } func main() { flags := struct { + Port uint16 tagflag.StartPos Torrents []string `arity:"+"` - }{} + }{ + Port: 50007, + } tagflag.Parse(&flags) ar := tracker.AnnounceRequest{ NumWant: -1, Left: math.MaxUint64, + Port: flags.Port, } var wg sync.WaitGroup for _, arg := range flags.Torrents { diff --git a/tracker/http.go b/tracker/http.go index fbe17b694a75eaceb401b6c59159ab6fab5c3085..2d58017998c5d128fdbba0b53c3c171427146a2c 100644 --- a/tracker/http.go +++ b/tracker/http.go @@ -69,6 +69,7 @@ q := _url.Query() q.Set("info_hash", string(ar.InfoHash[:])) q.Set("peer_id", string(ar.PeerId[:])) + // AFAICT, port is mandatory, and there's no implied port key. q.Set("port", fmt.Sprintf("%d", ar.Port)) q.Set("uploaded", strconv.FormatInt(ar.Uploaded, 10)) q.Set("downloaded", strconv.FormatInt(ar.Downloaded, 10))