]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Use port from announce request, not packet source
authorMatt Joiner <anacrolix@gmail.com>
Fri, 16 Dec 2022 04:39:02 +0000 (15:39 +1100)
committerMatt Joiner <anacrolix@gmail.com>
Fri, 16 Dec 2022 04:39:02 +0000 (15:39 +1100)
tracker/server.go

index 6ef4ec4eec3266190ef85bb55e31a5d77a149faf..22f54da512734356a196c09c30d6d3bbce075f88 100644 (file)
@@ -3,6 +3,7 @@ package tracker
 import (
        "context"
        "encoding/hex"
+       "fmt"
        "net/netip"
        "sync"
        "time"
@@ -123,8 +124,12 @@ func (me *AnnounceHandler) Serve(
                }
        }()
 
+       if req.Port != 0 {
+               addr = netip.AddrPortFrom(addr.Addr(), req.Port)
+       }
        ret.Err = me.AnnounceTracker.TrackAnnounce(ctx, req, addr)
        if ret.Err != nil {
+               ret.Err = fmt.Errorf("tracking announce: %w", ret.Err)
                return
        }
        infoHash := req.InfoHash