1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-08-10 21:52:01 +02:00

Access tls config

This commit is contained in:
Asim
2016-01-16 23:39:47 +00:00
parent f7c4304ac3
commit ae2ab911ed
4 changed files with 39 additions and 12 deletions

View File

@@ -19,7 +19,13 @@ type consulRegistry struct {
Options Options
}
func newTransport() *http.Transport {
func newTransport(config *tls.Config) *http.Transport {
if config == nil {
config = &tls.Config{
InsecureSkipVerify: true,
}
}
t := &http.Transport{
Proxy: http.ProxyFromEnvironment,
Dial: (&net.Dialer{
@@ -27,9 +33,7 @@ func newTransport() *http.Transport {
KeepAlive: 30 * time.Second,
}).Dial,
TLSHandshakeTimeout: 10 * time.Second,
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
TLSClientConfig: config,
}
runtime.SetFinalizer(&t, func(tr **http.Transport) {
(*tr).CloseIdleConnections()
@@ -120,7 +124,7 @@ func newConsulRegistry(addrs []string, opts ...Option) Registry {
if opt.Secure {
config.Scheme = "https"
// We're going to support InsecureSkipVerify
config.HttpClient.Transport = newTransport()
config.HttpClient.Transport = newTransport(opt.TLSConfig)
}
// create the client

View File

@@ -1,14 +1,16 @@
package registry
import (
"crypto/tls"
"time"
"golang.org/x/net/context"
)
type Options struct {
Timeout time.Duration
Secure bool
Timeout time.Duration
Secure bool
TLSConfig *tls.Config
// Other options for implementations of the interface
// can be stored in a context
@@ -27,3 +29,10 @@ func Secure(b bool) Option {
o.Secure = b
}
}
// Specify TLS Config
func TLSConfig(t *tls.Config) Option {
return func(o *Options) {
o.TLSConfig = t
}
}