diff --git a/etcd.go b/etcd.go index b167a0576..dc373fff3 100644 --- a/etcd.go +++ b/etcd.go @@ -180,11 +180,11 @@ func main() { // Run peer server in separate thread while the client server blocks. go func() { log.Infof("raft server [name %s, listen on %s, advertised url %s]", ps.Config.Name, psListener.Addr(), ps.Config.URL) - sHTTP := &ehttp.CORSHandler{ps, corsInfo} + sHTTP := &ehttp.CORSHandler{ps.HTTPHandler(), corsInfo} log.Fatal(http.Serve(psListener, sHTTP)) }() log.Infof("etcd server [name %s, listen on %s, advertised url %s]", s.Name, sListener.Addr(), s.URL()) - sHTTP := &ehttp.CORSHandler{s, corsInfo} + sHTTP := &ehttp.CORSHandler{s.HTTPHandler(), corsInfo} log.Fatal(http.Serve(sListener, sHTTP)) } diff --git a/server/peer_server.go b/server/peer_server.go index 924d09fda..4fc880334 100644 --- a/server/peer_server.go +++ b/server/peer_server.go @@ -35,7 +35,6 @@ type PeerServerConfig struct { type PeerServer struct { Config PeerServerConfig - handler http.Handler raftServer raft.Server server *Server joinIndex uint64 @@ -77,8 +76,6 @@ func NewPeerServer(psConfig PeerServerConfig, registry *Registry, store store.St metrics: mb, } - s.handler = s.buildHTTPHandler() - return s } @@ -164,7 +161,7 @@ func (s *PeerServer) Stop() { } } -func (s *PeerServer) buildHTTPHandler() http.Handler { +func (s *PeerServer) HTTPHandler() http.Handler { router := mux.NewRouter() // internal commands @@ -184,10 +181,6 @@ func (s *PeerServer) buildHTTPHandler() http.Handler { return router } -func (s *PeerServer) ServeHTTP(w http.ResponseWriter, r *http.Request) { - s.handler.ServeHTTP(w, r) -} - // Retrieves the underlying Raft server. func (s *PeerServer) RaftServer() raft.Server { return s.raftServer diff --git a/server/server.go b/server/server.go index de0801679..6a55ca2f2 100644 --- a/server/server.go +++ b/server/server.go @@ -45,8 +45,6 @@ func New(name, url string, peerServer *PeerServer, registry *Registry, store sto metrics: mb, } - s.handler = s.buildHTTPHandler() - return s } @@ -169,7 +167,7 @@ func (s *Server) handleFunc(r *mux.Router, path string, f func(http.ResponseWrit }) } -func (s *Server) buildHTTPHandler() http.Handler { +func (s *Server) HTTPHandler() http.Handler { router := mux.NewRouter() // Install the routes. @@ -185,10 +183,6 @@ func (s *Server) buildHTTPHandler() http.Handler { return router } -func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { - s.handler.ServeHTTP(w, r) -} - // Dispatch command to the current leader func (s *Server) Dispatch(c raft.Command, w http.ResponseWriter, req *http.Request) error { ps := s.peerServer diff --git a/tests/server_utils.go b/tests/server_utils.go index 143ccd7c4..f3dc05af6 100644 --- a/tests/server_utils.go +++ b/tests/server_utils.go @@ -70,14 +70,14 @@ func RunServer(f func(*server.Server)) { go func() { c <- true ps.Start(false, []string{}) - http.Serve(psListener, ps) + http.Serve(psListener, ps.HTTPHandler()) }() <-c // Start up etcd server. go func() { c <- true - http.Serve(sListener, s) + http.Serve(sListener, s.HTTPHandler()) }() <-c