diff --git a/client.go b/client.go index e7683016..ae40f458 100644 --- a/client.go +++ b/client.go @@ -451,6 +451,9 @@ func (cl *Client) ipIsBlocked(ip net.IP) bool { } func (cl *Client) wantConns() bool { + if cl.config.AlwaysWantConns { + return true + } for _, t := range cl.torrents { if t.wantConns() { return true diff --git a/config.go b/config.go index 1895f3c3..0e3cd2c2 100644 --- a/config.go +++ b/config.go @@ -139,6 +139,9 @@ type ClientConfig struct { DropMutuallyCompletePeers bool // Whether to accept peer connections at all. AcceptPeerConnections bool + // Whether a Client should want conns without delegating to any attached Torrents. This is + // useful when torrents might be added dynmically in callbacks for example. + AlwaysWantConns bool // OnQuery hook func DHTOnQuery func(query *krpc.Msg, source net.Addr) (propagate bool)