diff --git a/lib/config/folderconfiguration.go b/lib/config/folderconfiguration.go index 23562717..512708d7 100644 --- a/lib/config/folderconfiguration.go +++ b/lib/config/folderconfiguration.go @@ -47,6 +47,7 @@ func (f FolderConfiguration) Copy() FolderConfiguration { c := f c.Devices = make([]FolderDeviceConfiguration, len(f.Devices)) copy(c.Devices, f.Devices) + c.Versioning = f.Versioning.Copy() return c } diff --git a/lib/config/optionsconfiguration.go b/lib/config/optionsconfiguration.go index 317bda5d..1a992634 100644 --- a/lib/config/optionsconfiguration.go +++ b/lib/config/optionsconfiguration.go @@ -49,5 +49,9 @@ func (orig OptionsConfiguration) Copy() OptionsConfiguration { copy(c.ListenAddress, orig.ListenAddress) c.GlobalAnnServers = make([]string, len(orig.GlobalAnnServers)) copy(c.GlobalAnnServers, orig.GlobalAnnServers) + c.RelayServers = make([]string, len(orig.RelayServers)) + copy(c.RelayServers, orig.RelayServers) + c.AlwaysLocalNets = make([]string, len(orig.AlwaysLocalNets)) + copy(c.AlwaysLocalNets, orig.AlwaysLocalNets) return c } diff --git a/lib/config/versioningconfiguration.go b/lib/config/versioningconfiguration.go index a8a886c9..4a517a99 100644 --- a/lib/config/versioningconfiguration.go +++ b/lib/config/versioningconfiguration.go @@ -23,6 +23,15 @@ type InternalParam struct { Val string `xml:"val,attr"` } +func (c VersioningConfiguration) Copy() VersioningConfiguration { + cp := c + cp.Params = make(map[string]string, len(c.Params)) + for k, v := range c.Params { + cp.Params[k] = v + } + return cp +} + func (c *VersioningConfiguration) MarshalXML(e *xml.Encoder, start xml.StartElement) error { var tmp InternalVersioningConfiguration tmp.Type = c.Type