Browse Source

transport: build TLS config in NewTransport

Brian Waldon 11 years ago
parent
commit
342ea18239
2 changed files with 11 additions and 2 deletions
  1. 1 1
      main.go
  2. 10 1
      transport/listener.go

+ 1 - 1
main.go

@@ -151,7 +151,7 @@ func startEtcd() {
 		n = raft.RestartNode(id, peers.IDs(), 10, 1, snapshot, st, ents)
 		n = raft.RestartNode(id, peers.IDs(), 10, 1, snapshot, st, ents)
 	}
 	}
 
 
-	pt, err := transport.NewTransport()
+	pt, err := transport.NewTransport(transport.TLSInfo{})
 	if err != nil {
 	if err != nil {
 		log.Fatal(err)
 		log.Fatal(err)
 	}
 	}

+ 10 - 1
transport/listener.go

@@ -29,7 +29,7 @@ func NewListener(addr string, info TLSInfo) (net.Listener, error) {
 	return l, nil
 	return l, nil
 }
 }
 
 
-func NewTransport() (*http.Transport, error) {
+func NewTransport(info TLSInfo) (*http.Transport, error) {
 	t := &http.Transport{
 	t := &http.Transport{
 		// timeouts taken from http.DefaultTransport
 		// timeouts taken from http.DefaultTransport
 		Dial: (&net.Dialer{
 		Dial: (&net.Dialer{
@@ -38,6 +38,15 @@ func NewTransport() (*http.Transport, error) {
 		}).Dial,
 		}).Dial,
 		TLSHandshakeTimeout: 10 * time.Second,
 		TLSHandshakeTimeout: 10 * time.Second,
 	}
 	}
+
+	if !info.Empty() {
+		tlsCfg, err := info.ClientConfig()
+		if err != nil {
+			return nil, err
+		}
+		t.TLSClientConfig = tlsCfg
+	}
+
 	return t, nil
 	return t, nil
 }
 }