]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker/udp/server/server.go
Add get peers limits
[btrtrc.git] / tracker / udp / server / server.go
index 95e7a5e7a44d5bc8fe03e8838757578d251a1d45..dfcc6500a0e12776c865b49a0eb1c195c7cb8001 100644 (file)
@@ -11,6 +11,7 @@ import (
        "net/netip"
 
        "github.com/anacrolix/dht/v2/krpc"
+       "github.com/anacrolix/generics"
        "github.com/anacrolix/log"
 
        "github.com/anacrolix/torrent/tracker"
@@ -94,7 +95,11 @@ func (me *Server) handleAnnounce(
                err = fmt.Errorf("converting source net.Addr to AnnounceAddr: %w", err)
                return err
        }
-       peers, err := me.Announce.Serve(ctx, req, announceAddr)
+       opts := tracker.GetPeersOpts{MaxCount: generics.Some[uint](50)}
+       if addrFamily == udp.AddrFamilyIpv4 {
+               opts.MaxCount = generics.Some[uint](150)
+       }
+       peers, err := me.Announce.Serve(ctx, req, announceAddr, opts)
        if err != nil {
                return err
        }