Browse Source

agent: clone partial consul config

The agent configuration for the consul server is a partial configuration
which needs to be cloned to avoid data races.

This is a stop-gap measure before moving the configuration into
a separate package.
pull/3241/head
Frank Schroeder 8 years ago committed by Frank Schröder
parent
commit
7f7c0ad65e
  1. 7
      agent/agent.go

7
agent/agent.go

@ -551,8 +551,13 @@ func (a *Agent) reloadWatches(cfg *Config) error {
func (a *Agent) consulConfig() (*consul.Config, error) {
// Start with the provided config or default config
base := consul.DefaultConfig()
// a.config.ConsulConfig, if set, is a partial configuration for the
// consul server or client. Therefore, clone and augment it but
// don't use it as base directly.
if a.config.ConsulConfig != nil {
base = a.config.ConsulConfig
base = new(consul.Config)
*base = *a.config.ConsulConfig
}
// This is set when the agent starts up

Loading…
Cancel
Save