func NewETCDMetrics(logger lager.Logger, etcdOptions *ETCDOptions) (*ETCDMetrics, error) { var tlsConfig *tls.Config if etcdOptions.CertFile != "" && etcdOptions.KeyFile != "" { var err error tlsConfig, err = cfhttp.NewTLSConfig(etcdOptions.CertFile, etcdOptions.KeyFile, etcdOptions.CAFile) if err != nil { return nil, err } tlsConfig.ClientSessionCache = tls.NewLRUClientSessionCache(etcdOptions.ClientSessionCacheSize) } client := cfhttp.NewClient() client.CheckRedirect = func(*http.Request, []*http.Request) error { return errRedirected } if tr, ok := client.Transport.(*http.Transport); ok { tr.TLSClientConfig = tlsConfig } else { return nil, errors.New("Invalid transport") } return &ETCDMetrics{ logger: logger, etcdCluster: etcdOptions.ClusterUrls, client: client, }, nil }
func (l *TLSLog) initConfig(config *tls.Config) { l.log = "" l.logRand = newLogRand(config.Rand) config.Rand = l.logRand config.SessionTicketsDisabled = false if config.ClientSessionCache == nil { config.ClientSessionCache = tls.NewLRUClientSessionCache(1) } }