diff --git a/etcd.go b/etcd.go index bc4731743..5ebac1350 100644 --- a/etcd.go +++ b/etcd.go @@ -250,13 +250,6 @@ func dialTimeout(network, addr string) (net.Conn, error) { return net.DialTimeout(network, addr, HTTPTimeout) } -type Etcd struct { - http.Server - url string - scheme string - tls TLSConfig -} - // Start to listen and response client command func startEtcdTransport(info Info, scheme string, tlsConf tls.Config) { u, err := url.Parse(info.EtcdURL) @@ -265,13 +258,11 @@ func startEtcdTransport(info Info, scheme string, tlsConf tls.Config) { } infof("etcd server [%s:%s]", info.Name, u) - server := &Etcd{ - Server: http.Server{ - Handler: NewEtcdMuxer(), - TLSConfig: &tlsConf, - Addr: u.Host, - }, - } + server := http.Server{ + Handler: NewEtcdMuxer(), + TLSConfig: &tlsConf, + Addr: u.Host, + } if scheme == "http" { fatal(server.ListenAndServe()) diff --git a/etcd_handlers.go b/etcd_handlers.go index e5fbd3c76..418dfaf0b 100644 --- a/etcd_handlers.go +++ b/etcd_handlers.go @@ -165,8 +165,9 @@ func dispatch(c Command, w *http.ResponseWriter, req *http.Request, etcd bool) { return } } else { + leader := raftServer.Leader() // current no leader - if raftServer.Leader() == "" { + if leader == "" { (*w).WriteHeader(http.StatusInternalServerError) (*w).Write(newJsonError(300, "")) return @@ -179,10 +180,10 @@ func dispatch(c Command, w *http.ResponseWriter, req *http.Request, etcd bool) { var url string if etcd { - etcdAddr, _ := nameToEtcdURL(raftServer.Leader()) + etcdAddr, _ := nameToEtcdURL(leader) url = etcdAddr + path } else { - raftAddr, _ := nameToRaftURL(raftServer.Leader()) + raftAddr, _ := nameToRaftURL(leader) url = raftAddr + path }