// Copyright (c) HashiCorp, Inc. // SPDX-License-Identifier: MPL-2.0 package configutil func (c *SharedConfig) Merge(c2 *SharedConfig) *SharedConfig { if c2 == nil { return c } result := new(SharedConfig) for _, l := range c.Listeners { result.Listeners = append(result.Listeners, l) } for _, l := range c2.Listeners { result.Listeners = append(result.Listeners, l) } for _, userlockout := range c.UserLockouts { result.UserLockouts = append(result.UserLockouts, userlockout) } for _, userlockout := range c2.UserLockouts { result.UserLockouts = append(result.UserLockouts, userlockout) } result.HCPLinkConf = c.HCPLinkConf if c2.HCPLinkConf != nil { result.HCPLinkConf = c2.HCPLinkConf } result.Entropy = c.Entropy if c2.Entropy != nil { result.Entropy = c2.Entropy } for _, s := range c.Seals { result.Seals = append(result.Seals, s) } for _, s := range c2.Seals { result.Seals = append(result.Seals, s) } result.Telemetry = c.Telemetry if c2.Telemetry != nil { result.Telemetry = c2.Telemetry } result.DisableMlock = c.DisableMlock if c2.DisableMlock { result.DisableMlock = c2.DisableMlock } result.DefaultMaxRequestDuration = c.DefaultMaxRequestDuration if c2.DefaultMaxRequestDuration > result.DefaultMaxRequestDuration { result.DefaultMaxRequestDuration = c2.DefaultMaxRequestDuration } result.LogLevel = c.LogLevel if c2.LogLevel != "" { result.LogLevel = c2.LogLevel } result.LogFormat = c.LogFormat if c2.LogFormat != "" { result.LogFormat = c2.LogFormat } result.LogFile = c.LogFile if c2.LogFile != "" { result.LogFile = c2.LogFile } result.LogRotateBytes = c.LogRotateBytes if c2.LogRotateBytesRaw != nil { result.LogRotateBytes = c2.LogRotateBytes result.LogRotateBytesRaw = c2.LogRotateBytesRaw } result.LogRotateMaxFiles = c.LogRotateMaxFiles if c2.LogRotateMaxFilesRaw != nil { result.LogRotateMaxFiles = c2.LogRotateMaxFiles result.LogRotateMaxFilesRaw = c2.LogRotateMaxFilesRaw } result.LogRotateDuration = c.LogRotateDuration if c2.LogRotateDuration != "" { result.LogRotateDuration = c2.LogRotateDuration } result.PidFile = c.PidFile if c2.PidFile != "" { result.PidFile = c2.PidFile } result.ClusterName = c.ClusterName if c2.ClusterName != "" { result.ClusterName = c2.ClusterName } return result }