[#193] network/cache: Support client options in ClientCache.Get

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-11-23 15:58:39 +03:00 committed by Alex Vanin
parent a1b3da88c6
commit 27fc4d6e01

View file

@ -27,10 +27,8 @@ func NewSDKClientCache() *ClientCache {
}
}
// Get function returns existing client or creates a new one. Consider passing
// connection options to specify details for client, but don't forget that two
// different set of options should provide two different clients.
func (c *ClientCache) Get(key *ecdsa.PrivateKey, address string) (*client.Client, error) {
// Get function returns existing client or creates a new one.
func (c *ClientCache) Get(key *ecdsa.PrivateKey, address string, opts ...client.Option) (*client.Client, error) {
id := uniqueID(key, address)
c.mu.RLock()
@ -52,7 +50,7 @@ func (c *ClientCache) Get(key *ecdsa.PrivateKey, address string) (*client.Client
return cli, nil
}
cli, err := client.New(key, client.WithAddress(address))
cli, err := client.New(key, append(opts, client.WithAddress(address))...)
if err != nil {
return nil, err
}