From f4183c68cca8368fb9ca4a6c672c46bcc9be07d9 Mon Sep 17 00:00:00 2001 From: Anthony Romano Date: Thu, 17 Aug 2017 10:25:00 -0700 Subject: [PATCH] embed: associate peer serve() listener with corresponding peer Fixes #8383 --- embed/etcd.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/embed/etcd.go b/embed/etcd.go index 90179f462..e69adbfd6 100644 --- a/embed/etcd.go +++ b/embed/etcd.go @@ -154,16 +154,16 @@ func StartEtcd(inCfg *Config) (e *Etcd, err error) { // configure peer handlers after rafthttp.Transport started ph := etcdhttp.NewPeerHandler(e.Server) - for i := range e.Peers { + for _, p := range e.Peers { srv := &http.Server{ Handler: ph, ReadTimeout: 5 * time.Minute, ErrorLog: defaultLog.New(ioutil.Discard, "", 0), // do not log user error } - e.Peers[i].serve = func() error { - return srv.Serve(e.Peers[i].Listener) - } - e.Peers[i].close = func(ctx context.Context) error { + + l := p.Listener + p.serve = func() error { return srv.Serve(l) } + p.close = func(ctx context.Context) error { // gracefully shutdown http.Server // close open listeners, idle connections // until context cancel or time-out