Files
gluetun/internal/provider/cyberghost/updater/servers.go
Quentin McGaw ebd94723c1 chore(updater): incorporate FetchServers method in Provider interface
- Each provider interface can now fetch updated servers data
- Rename each provider updater subpackage name to `updater`
- Updater constructor does not take a settings struct
- Updater update method takes in a slice of provider strings
2022-06-09 23:47:41 +00:00

30 lines
650 B
Go

// Package updater contains code to obtain the server information
// for the Cyberghost provider.
package updater
import (
"context"
"sort"
"github.com/qdm12/gluetun/internal/models"
)
func (u *Updater) FetchServers(ctx context.Context, minServers int) (
servers []models.Server, err error) {
possibleServers := getPossibleServers()
possibleHosts := possibleServers.hostsSlice()
hostToIPs, _, err := u.presolver.Resolve(ctx, possibleHosts, minServers)
if err != nil {
return nil, err
}
possibleServers.adaptWithIPs(hostToIPs)
servers = possibleServers.toSlice()
sort.Sort(models.SortableServers(servers))
return servers, nil
}