clientv3: return copy of endpoints, not pointer

Fix https://github.com/coreos/etcd/issues/6892.
This commit is contained in:
Gyu-Ho Lee 2016-11-23 11:27:37 -08:00
parent aea9c6668f
commit a08103c088

View File

@ -97,7 +97,12 @@ func (c *Client) Close() error {
func (c *Client) Ctx() context.Context { return c.ctx }
// Endpoints lists the registered endpoints for the client.
func (c *Client) Endpoints() []string { return c.cfg.Endpoints }
func (c *Client) Endpoints() (eps []string) {
// copy the slice; protect original endpoints from being changed
eps = make([]string, len(c.cfg.Endpoints))
copy(eps, c.cfg.Endpoints)
return
}
// SetEndpoints updates client's endpoints.
func (c *Client) SetEndpoints(eps ...string) {