diff --git a/embed/config.go b/embed/config.go index db35e84cbb74..cc785b9c376b 100644 --- a/embed/config.go +++ b/embed/config.go @@ -371,11 +371,13 @@ func (cfg Config) IsDefaultHost() (string, error) { } // UpdateDefaultClusterFromName updates cluster advertise URLs with default host. +// Empty 'acurl' means that user did not specify the advertise client URL, +// and default host has been used, so there's no need to overwrite cfg.ACURLs. // TODO: check whether fields are set instead of whether fields have default value -func (cfg *Config) UpdateDefaultClusterFromName(defaultInitialCluster string) { +func (cfg *Config) UpdateDefaultClusterFromName(acurl string, defaultInitialCluster string) { defaultHost, defaultHostErr := cfg.IsDefaultHost() defaultHostOverride := defaultHost == "" || defaultHostErr == nil - if (defaultHostOverride || cfg.Name != DefaultName) && cfg.InitialCluster == defaultInitialCluster { + if acurl != "" && (defaultHostOverride || cfg.Name != DefaultName) && cfg.InitialCluster == defaultInitialCluster { cfg.InitialCluster = cfg.InitialClusterFromName(cfg.Name) ip, _, _ := net.SplitHostPort(cfg.LCUrls[0].Host) // if client-listen-url is 0.0.0.0, just use detected default host