func newCredCache()

in internal/conn/storage/credcache.go [55:78]


func newCredCache(client getCreder, options ...ccOption) (*credCache, error) {
	cc := &credCache{
		now:     time.Now,
		cli:     client,
		log:     slog.Default(),
		closeCh: make(chan struct{}),
		start:   true,
	}

	for _, o := range options {
		if err := o(cc); err != nil {
			return nil, err
		}
	}

	if cc.start {
		if err := cc.refreshCred(context.Background(), cc.now().UTC()); err != nil {
			return nil, fmt.Errorf("credCache: problem getting credential: %w", err)
		}
		go cc.refresher()
	}

	return cc, nil
}