]> Sergey Matveev's repositories - btrtrc.git/blobdiff - config.go
Add ClientConfig.WebTransport
[btrtrc.git] / config.go
index 1764168972e59fb4e6adad67d33cf23d2566245e..0c029a7e2c3e4ba0b2bf98008ebaaad1e9225fb0 100644 (file)
--- a/config.go
+++ b/config.go
@@ -107,6 +107,8 @@ type ClientConfig struct {
        Debug  bool `help:"enable debugging"`
        Logger log.Logger
 
+       // Used for torrent sources and webseeding if set.
+       WebTransport http.RoundTripper
        // Defines proxy for HTTP requests, such as for trackers. It's commonly set from the result of
        // "net/http".ProxyURL(HTTPProxy).
        HTTPProxy func(*http.Request) (*url.URL, error)
@@ -180,6 +182,12 @@ type ClientConfig struct {
        DisableWebseeds   bool
 
        Callbacks Callbacks
+
+       // ICEServers defines a slice describing servers available to be used by
+       // ICE, such as STUN and TURN servers.
+       ICEServers []string
+
+       DialRateLimiter *rate.Limiter
 }
 
 func (cfg *ClientConfig) SetListenAddr(addr string) *ClientConfig {
@@ -223,6 +231,7 @@ func NewDefaultClientConfig() *ClientConfig {
                Extensions:            defaultPeerExtensionBytes(),
                AcceptPeerConnections: true,
                MaxUnverifiedBytes:    64 << 20,
+               DialRateLimiter:       rate.NewLimiter(10, 10),
        }
        cc.DhtStartingNodes = func(network string) dht.StartingNodesGetter {
                return func() ([]dht.Addr, error) { return dht.GlobalBootstrapAddrs(network) }