}
return t.announceRequest(event), nil
},
- Proxy: cl.config.HTTPProxy,
+ Proxy: cl.config.HTTPProxy,
+ DialContext: cl.config.TrackerDialContext,
OnConn: func(dc datachannel.ReadWriteCloser, dcc webtorrent.DataChannelContext) {
cl.lock()
defer cl.unlock()
package torrent
import (
+ "context"
"fmt"
+ "net"
"net/url"
"sync"
mu sync.Mutex
clients map[string]*refCountedWebtorrentTrackerClient
Proxy http.ProxyFunc
+ DialContext func(ctx context.Context, network, addr string) (net.Conn, error)
}
func (me *websocketTrackers) Get(url string, infoHash [20]byte) (*webtorrent.TrackerClient, func()) {
defer me.mu.Unlock()
value, ok := me.clients[url]
if !ok {
- dialer := &websocket.Dialer{Proxy: me.Proxy, HandshakeTimeout: websocket.DefaultDialer.HandshakeTimeout}
+ dialer := &websocket.Dialer{Proxy: me.Proxy, NetDialContext: me.DialContext, HandshakeTimeout: websocket.DefaultDialer.HandshakeTimeout}
value = &refCountedWebtorrentTrackerClient{
TrackerClient: webtorrent.TrackerClient{
Dialer: dialer,