diff --git a/backend/smb/connpool.go b/backend/smb/connpool.go index e040881d9..aa2b0a178 100644 --- a/backend/smb/connpool.go +++ b/backend/smb/connpool.go @@ -38,7 +38,7 @@ func (f *Fs) dial(ctx context.Context, network, addr string) (*conn, error) { d := &smb2.Dialer{} if f.opt.UseKerberos { - cl, err := NewKerberosFactory().GetClient(f.opt.KerberosCCache) + cl, err := kerberosFactory.GetClient(f.opt.KerberosCCache) if err != nil { return nil, err } diff --git a/backend/smb/kerberos.go b/backend/smb/kerberos.go index fdbb19ddd..eaebce931 100644 --- a/backend/smb/kerberos.go +++ b/backend/smb/kerberos.go @@ -33,6 +33,9 @@ type KerberosFactory struct { loadConfig func() (*config.Config, error) } +// kerberosFactory is the shared KerberosFactory used to cache all connections +var kerberosFactory = NewKerberosFactory() + // NewKerberosFactory creates a new instance of KerberosFactory with default dependencies. func NewKerberosFactory() *KerberosFactory { return &KerberosFactory{