]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker/udp/server/server.go
Propagate announce interval, particularly for UDP
[btrtrc.git] / tracker / udp / server / server.go
index 716c3916a106e8b44575705fcb86640c7bdb5142..c8c9bec364c65a180caa30c6459e21f58d9a27f0 100644 (file)
@@ -104,12 +104,12 @@ func (me *Server) handleAnnounce(
        if addrFamily == udp.AddrFamilyIpv4 {
                opts.MaxCount = generics.Some[uint](150)
        }
-       peers, err := me.Announce.Serve(ctx, req, announceAddr, opts)
-       if err != nil {
-               return err
+       res := me.Announce.Serve(ctx, req, announceAddr, opts)
+       if res.Err != nil {
+               return res.Err
        }
-       nodeAddrs := make([]krpc.NodeAddr, 0, len(peers))
-       for _, p := range peers {
+       nodeAddrs := make([]krpc.NodeAddr, 0, len(res.Peers))
+       for _, p := range res.Peers {
                var ip net.IP
                switch addrFamily {
                default:
@@ -137,7 +137,9 @@ func (me *Server) handleAnnounce(
        if err != nil {
                return err
        }
-       err = udp.Write(&buf, udp.AnnounceResponseHeader{})
+       err = udp.Write(&buf, udp.AnnounceResponseHeader{
+               Interval: res.Interval.UnwrapOr(5 * 60),
+       })
        if err != nil {
                return err
        }