]> Sergey Matveev's repositories - btrtrc.git/blobdiff - tracker/tracker.go
Drop support for go 1.20
[btrtrc.git] / tracker / tracker.go
index 122278b62bd442f0d8bf847f9143083a02af48d9..e96a08a1175e63dc439b4865ae15288b7defbf03 100644 (file)
@@ -35,15 +35,16 @@ type AnnounceEvent = udp.AnnounceEvent
 var ErrBadScheme = errors.New("unknown scheme")
 
 type Announce struct {
-       TrackerUrl   string
-       Request      AnnounceRequest
-       HostHeader   string
-       HTTPProxy    func(*http.Request) (*url.URL, error)
-       DialContext  func(ctx context.Context, network, addr string) (net.Conn, error)
-       ListenPacket func(network, addr string) (net.PacketConn, error)
-       ServerName   string
-       UserAgent    string
-       UdpNetwork   string
+       TrackerUrl          string
+       Request             AnnounceRequest
+       HostHeader          string
+       HttpProxy           func(*http.Request) (*url.URL, error)
+       HttpRequestDirector func(*http.Request) error
+       DialContext         func(ctx context.Context, network, addr string) (net.Conn, error)
+       ListenPacket        func(network, addr string) (net.PacketConn, error)
+       ServerName          string
+       UserAgent           string
+       UdpNetwork          string
        // If the port is zero, it's assumed to be the same as the Request.Port.
        ClientIp4 krpc.NodeAddr
        // If the port is zero, it's assumed to be the same as the Request.Port.
@@ -58,7 +59,7 @@ const DefaultTrackerAnnounceTimeout = 15 * time.Second
 func (me Announce) Do() (res AnnounceResponse, err error) {
        cl, err := NewClient(me.TrackerUrl, NewClientOpts{
                Http: trHttp.NewClientOpts{
-                       Proxy:       me.HTTPProxy,
+                       Proxy:       me.HttpProxy,
                        DialContext: me.DialContext,
                        ServerName:  me.ServerName,
                },
@@ -79,9 +80,10 @@ func (me Announce) Do() (res AnnounceResponse, err error) {
                me.Context = ctx
        }
        return cl.Announce(me.Context, me.Request, trHttp.AnnounceOpt{
-               UserAgent:  me.UserAgent,
-               HostHeader: me.HostHeader,
-               ClientIp4:  me.ClientIp4.IP,
-               ClientIp6:  me.ClientIp6.IP,
+               UserAgent:           me.UserAgent,
+               HostHeader:          me.HostHeader,
+               ClientIp4:           me.ClientIp4.IP,
+               ClientIp6:           me.ClientIp6.IP,
+               HttpRequestDirector: me.HttpRequestDirector,
        })
 }