diff --git a/clientv3/client.go b/clientv3/client.go index a0c3f3c24..44494cbed 100644 --- a/clientv3/client.go +++ b/clientv3/client.go @@ -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) {