mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-23 20:37:35 +02:00
Maint: deduplicate ProtonVPN servers by entry IP
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package protonvpn
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
)
|
||||
|
||||
type ipToServer map[string]models.ProtonvpnServer
|
||||
|
||||
func (its ipToServer) add(country, region, city, name, hostname string,
|
||||
entryIP, exitIP net.IP) {
|
||||
key := entryIP.String()
|
||||
|
||||
server, ok := its[key]
|
||||
if !ok {
|
||||
server.Country = country
|
||||
server.Region = region
|
||||
server.City = city
|
||||
server.Name = name
|
||||
server.Hostname = hostname
|
||||
server.EntryIP = entryIP
|
||||
server.ExitIPs = []net.IP{exitIP}
|
||||
} else {
|
||||
server.ExitIPs = append(server.ExitIPs, exitIP)
|
||||
}
|
||||
|
||||
its[key] = server
|
||||
}
|
||||
|
||||
func (its ipToServer) toServersSlice() (servers []models.ProtonvpnServer) {
|
||||
servers = make([]models.ProtonvpnServer, 0, len(its))
|
||||
for _, server := range its {
|
||||
servers = append(servers, server)
|
||||
}
|
||||
return servers
|
||||
}
|
||||
Reference in New Issue
Block a user