Browse Source

etcd: use TLS in proxy transport

Brian Waldon 11 years ago
parent
commit
b94d0281d4
2 changed files with 9 additions and 15 deletions
  1. 7 1
      main.go
  2. 2 14
      proxy/proxy.go

+ 7 - 1
main.go

@@ -212,10 +212,16 @@ func startEtcd() {
 
 // startProxy launches an HTTP proxy for client communication which proxies to other etcd nodes.
 func startProxy() {
-	ph, err := proxy.NewHandler((*peers).Endpoints())
+	pt, err := transport.NewTransport(clientTLSInfo)
 	if err != nil {
 		log.Fatal(err)
 	}
+
+	ph, err := proxy.NewHandler(pt, (*peers).Endpoints())
+	if err != nil {
+		log.Fatal(err)
+	}
+
 	ph = &CORSHandler{
 		Handler: ph,
 		Info:    cors,

+ 2 - 14
proxy/proxy.go

@@ -6,27 +6,15 @@ import (
 	"time"
 )
 
-const (
-	dialTimeout           = 30 * time.Second
-	responseHeaderTimeout = 30 * time.Second
-)
-
-func NewHandler(endpoints []string) (http.Handler, error) {
+func NewHandler(t *http.Transport, endpoints []string) (http.Handler, error) {
 	d, err := newDirector(endpoints)
 	if err != nil {
 		return nil, err
 	}
 
-	tr := http.Transport{
-		Dial: func(network, address string) (net.Conn, error) {
-			return net.DialTimeout(network, address, dialTimeout)
-		},
-		ResponseHeaderTimeout: responseHeaderTimeout,
-	}
-
 	rp := reverseProxy{
 		director:  d,
-		transport: &tr,
+		transport: t,
 	}
 
 	return &rp, nil