2021-08-27 19:10:03 +00:00
|
|
|
package models
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"net"
|
|
|
|
|
)
|
|
|
|
|
|
2022-05-27 00:59:47 +00:00
|
|
|
func (a AllServers) GetCopy() (allServersCopy AllServers) {
|
|
|
|
|
allServersCopy.Version = a.Version
|
|
|
|
|
allServersCopy.ProviderToServers = make(map[string]Servers, len(a.ProviderToServers))
|
|
|
|
|
for provider, servers := range a.ProviderToServers {
|
|
|
|
|
allServersCopy.ProviderToServers[provider] = Servers{
|
|
|
|
|
Version: servers.Version,
|
|
|
|
|
Timestamp: servers.Timestamp,
|
|
|
|
|
Servers: copyServers(servers.Servers),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return allServersCopy
|
2022-04-16 22:25:36 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func copyServers(servers []Server) (serversCopy []Server) {
|
|
|
|
|
if servers == nil {
|
2021-08-27 19:10:03 +00:00
|
|
|
return nil
|
|
|
|
|
}
|
2022-04-16 22:25:36 +02:00
|
|
|
|
|
|
|
|
serversCopy = make([]Server, len(servers))
|
|
|
|
|
for i, server := range servers {
|
|
|
|
|
serversCopy[i] = server
|
|
|
|
|
serversCopy[i].IPs = copyIPs(server.IPs)
|
2021-08-27 19:10:03 +00:00
|
|
|
}
|
2022-04-16 22:25:36 +02:00
|
|
|
|
|
|
|
|
return serversCopy
|
2021-08-27 19:10:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func copyIPs(toCopy []net.IP) (copied []net.IP) {
|
|
|
|
|
if toCopy == nil {
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
copied = make([]net.IP, len(toCopy))
|
|
|
|
|
for i := range toCopy {
|
|
|
|
|
copied[i] = copyIP(toCopy[i])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return copied
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func copyIP(toCopy net.IP) (copied net.IP) {
|
|
|
|
|
copied = make(net.IP, len(toCopy))
|
|
|
|
|
copy(copied, toCopy)
|
|
|
|
|
return copied
|
|
|
|
|
}
|