143 lines
3.5 KiB
Go
143 lines
3.5 KiB
Go
package models
|
|
|
|
import (
|
|
"net"
|
|
)
|
|
|
|
func (a AllServers) GetCopy() (servers AllServers) {
|
|
servers = a // copy versions and timestamps
|
|
servers.Cyberghost.Servers = a.GetCyberghost()
|
|
servers.Expressvpn.Servers = a.GetExpressvpn()
|
|
servers.Fastestvpn.Servers = a.GetFastestvpn()
|
|
servers.HideMyAss.Servers = a.GetHideMyAss()
|
|
servers.Ipvanish.Servers = a.GetIpvanish()
|
|
servers.Ivpn.Servers = a.GetIvpn()
|
|
servers.Mullvad.Servers = a.GetMullvad()
|
|
servers.Nordvpn.Servers = a.GetNordvpn()
|
|
servers.Perfectprivacy.Servers = a.GetPerfectprivacy()
|
|
servers.Privado.Servers = a.GetPrivado()
|
|
servers.Pia.Servers = a.GetPia()
|
|
servers.Privatevpn.Servers = a.GetPrivatevpn()
|
|
servers.Protonvpn.Servers = a.GetProtonvpn()
|
|
servers.Purevpn.Servers = a.GetPurevpn()
|
|
servers.Surfshark.Servers = a.GetSurfshark()
|
|
servers.Torguard.Servers = a.GetTorguard()
|
|
servers.VPNUnlimited.Servers = a.GetVPNUnlimited()
|
|
servers.Vyprvpn.Servers = a.GetVyprvpn()
|
|
servers.Windscribe.Servers = a.GetWindscribe()
|
|
return servers
|
|
}
|
|
|
|
func (a *AllServers) GetCyberghost() (servers []Server) {
|
|
return copyServers(a.Cyberghost.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetExpressvpn() (servers []Server) {
|
|
return copyServers(a.Expressvpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetFastestvpn() (servers []Server) {
|
|
return copyServers(a.Fastestvpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetHideMyAss() (servers []Server) {
|
|
return copyServers(a.HideMyAss.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetIpvanish() (servers []Server) {
|
|
return copyServers(a.Ipvanish.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetIvpn() (servers []Server) {
|
|
return copyServers(a.Ivpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetMullvad() (servers []Server) {
|
|
return copyServers(a.Mullvad.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetNordvpn() (servers []Server) {
|
|
return copyServers(a.Nordvpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetPerfectprivacy() (servers []Server) {
|
|
return copyServers(a.Perfectprivacy.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetPia() (servers []Server) {
|
|
return copyServers(a.Pia.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetPrivado() (servers []Server) {
|
|
return copyServers(a.Privado.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetPrivatevpn() (servers []Server) {
|
|
return copyServers(a.Privatevpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetProtonvpn() (servers []Server) {
|
|
return copyServers(a.Protonvpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetPurevpn() (servers []Server) {
|
|
return copyServers(a.Purevpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetSurfshark() (servers []Server) {
|
|
return copyServers(a.Surfshark.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetTorguard() (servers []Server) {
|
|
return copyServers(a.Torguard.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetVPNUnlimited() (servers []Server) {
|
|
return copyServers(a.VPNUnlimited.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetVyprvpn() (servers []Server) {
|
|
return copyServers(a.Vyprvpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetWevpn() (servers []Server) {
|
|
return copyServers(a.Wevpn.Servers)
|
|
}
|
|
|
|
func (a *AllServers) GetWindscribe() (servers []Server) {
|
|
return copyServers(a.Windscribe.Servers)
|
|
}
|
|
|
|
func copyServers(servers []Server) (serversCopy []Server) {
|
|
if servers == nil {
|
|
return nil
|
|
}
|
|
|
|
serversCopy = make([]Server, len(servers))
|
|
for i, server := range servers {
|
|
serversCopy[i] = server
|
|
serversCopy[i].IPs = copyIPs(server.IPs)
|
|
}
|
|
|
|
return serversCopy
|
|
}
|
|
|
|
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
|
|
}
|