Servers updater (#232)

* Support for all VPN providers
* Update all VPN providers servers information
* Remove old tooling binaries
This commit is contained in:
Quentin McGaw
2020-09-05 12:57:16 -04:00
committed by GitHub
parent 9dcc00900e
commit 797fa33971
30 changed files with 4028 additions and 3818 deletions

View File

@@ -11,9 +11,22 @@ import (
"github.com/qdm12/gluetun/internal/models"
)
func (u *updater) findMullvadServers() (servers []models.MullvadServer, err error) {
func (u *updater) updateMullvad() (err error) {
servers, err := findMullvadServers(u.httpGet)
if err != nil {
return fmt.Errorf("cannot update Mullvad servers: %w", err)
}
if u.options.Stdout {
u.println(stringifyMullvadServers(servers))
}
u.servers.Mullvad.Timestamp = u.timeNow().Unix()
u.servers.Mullvad.Servers = servers
return nil
}
func findMullvadServers(httpGet httpGetFunc) (servers []models.MullvadServer, err error) {
const url = "https://api.mullvad.net/www/relays/openvpn/"
response, err := u.httpGet(url)
response, err := httpGet(url)
if err != nil {
return nil, err
}
@@ -66,6 +79,8 @@ func (u *updater) findMullvadServers() (servers []models.MullvadServer, err erro
}
}
for _, server := range serversByKey {
server.IPs = uniqueSortedIPs(server.IPs)
server.IPsV6 = uniqueSortedIPs(server.IPsV6)
servers = append(servers, server)
}
sort.Slice(servers, func(i, j int) bool {