mirror of
https://github.com/qdm12/gluetun.git
synced 2026-05-06 20:10:11 +02:00
fix(slickvpn/updater): only keep 11 servers
- this reverts most of commit e806fe02db.
This commit is contained in:
@@ -92,20 +92,6 @@ func (mr *MockStorageMockRecorder) FilterServers(arg0, arg1 interface{}) *gomock
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FilterServers", reflect.TypeOf((*MockStorage)(nil).FilterServers), arg0, arg1)
|
||||
}
|
||||
|
||||
// HardcodedServers mocks base method.
|
||||
func (m *MockStorage) HardcodedServers() models.AllServers {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "HardcodedServers")
|
||||
ret0, _ := ret[0].(models.AllServers)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// HardcodedServers indicates an expected call of HardcodedServers.
|
||||
func (mr *MockStorageMockRecorder) HardcodedServers() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HardcodedServers", reflect.TypeOf((*MockStorage)(nil).HardcodedServers))
|
||||
}
|
||||
|
||||
// MockUnzipper is a mock of Unzipper interface.
|
||||
type MockUnzipper struct {
|
||||
ctrl *gomock.Controller
|
||||
|
||||
@@ -8,5 +8,4 @@ import (
|
||||
type Storage interface {
|
||||
FilterServers(provider string, selection settings.ServerSelection) (
|
||||
servers []models.Server, err error)
|
||||
HardcodedServers() models.AllServers
|
||||
}
|
||||
|
||||
@@ -43,7 +43,6 @@ type Providers struct {
|
||||
type Storage interface {
|
||||
FilterServers(provider string, selection settings.ServerSelection) (
|
||||
servers []models.Server, err error)
|
||||
HardcodedServers() models.AllServers
|
||||
}
|
||||
|
||||
type Extractor interface {
|
||||
|
||||
@@ -22,7 +22,7 @@ func New(storage common.Storage, randSource rand.Source,
|
||||
return &Provider{
|
||||
storage: storage,
|
||||
randSource: randSource,
|
||||
Fetcher: updater.New(client, updaterWarner, parallelResolver, storage),
|
||||
Fetcher: updater.New(client, updaterWarner, parallelResolver),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"fmt"
|
||||
"sort"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/constants/providers"
|
||||
"github.com/qdm12/gluetun/internal/constants/vpn"
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
"github.com/qdm12/gluetun/internal/provider/common"
|
||||
)
|
||||
@@ -14,20 +14,24 @@ func (u *Updater) FetchServers(ctx context.Context, minServers int) (
|
||||
servers []models.Server, err error,
|
||||
) {
|
||||
// Since SlickVPN website listing VPN servers https://www.slickvpn.com/locations/
|
||||
// went to become a pile of trash, we now use the servers data from our servers.json
|
||||
// to check which servers can be resolved. The previous code was dynamically parsing
|
||||
// their website table of servers and they now list only 11 servers on their website.
|
||||
hardcodedServersData := u.storage.HardcodedServers()
|
||||
slickVPNData, ok := hardcodedServersData.ProviderToServers[providers.SlickVPN]
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("no hardcoded servers for provider %s", providers.SlickVPN)
|
||||
// went to become a pile of trash, we now hardcode the servers data below.
|
||||
servers = []models.Server{
|
||||
{Hostname: "gw2.sin2.slickvpn.com", Region: "Asia", Country: "Singapore", City: "Singapore"},
|
||||
{Hostname: "gw1.bos1.slickvpn.com", Region: "North America", Country: "United States", City: "Boston"},
|
||||
{Hostname: "gw1.cmh1.slickvpn.com", Region: "North America", Country: "United States", City: "Columbus"},
|
||||
{Hostname: "gw1.lax2.slickvpn.com", Region: "North America", Country: "United States", City: "Los Angeles"},
|
||||
{Hostname: "gw1.lga2.slickvpn.com", Region: "North America", Country: "United States", City: "New York"},
|
||||
{Hostname: "gw1.man2.slickvpn.com", Region: "Europe", Country: "United Kingdom", City: "Manchester"},
|
||||
{Hostname: "gw2.ams3.slickvpn.com", Region: "Europe", Country: "Netherlands", City: "Amsterdam"},
|
||||
{Hostname: "gw2.hou1.slickvpn.com", Region: "North America", Country: "United States", City: "Houston"},
|
||||
{Hostname: "gw1.mci2.slickvpn.com", Region: "North America", Country: "United States", City: "Kansas City"},
|
||||
{Hostname: "gw2.slc1.slickvpn.com", Region: "North America", Country: "United States", City: "Salt Lake City"},
|
||||
{Hostname: "gw1.stl1.slickvpn.com", Region: "North America", Country: "United States", City: "St Louis"},
|
||||
}
|
||||
hardcodedServers := make([]models.Server, len(slickVPNData.Servers))
|
||||
copy(hardcodedServers, slickVPNData.Servers)
|
||||
|
||||
hosts := make([]string, len(hardcodedServers))
|
||||
for i := range hardcodedServers {
|
||||
hosts[i] = hardcodedServers[i].Hostname
|
||||
hosts := make([]string, len(servers))
|
||||
for i := range servers {
|
||||
hosts[i] = servers[i].Hostname
|
||||
}
|
||||
|
||||
resolveSettings := parallelResolverSettings(hosts)
|
||||
@@ -44,14 +48,11 @@ func (u *Updater) FetchServers(ctx context.Context, minServers int) (
|
||||
common.ErrNotEnoughServers, len(hosts), minServers)
|
||||
}
|
||||
|
||||
servers = make([]models.Server, 0, len(hostToIPs))
|
||||
for _, server := range hardcodedServers {
|
||||
IPs, ok := hostToIPs[server.Hostname]
|
||||
if !ok || len(IPs) == 0 {
|
||||
continue
|
||||
}
|
||||
server.IPs = IPs
|
||||
servers = append(servers, server)
|
||||
for i := range servers {
|
||||
servers[i].VPN = vpn.OpenVPN
|
||||
servers[i].TCP = true
|
||||
servers[i].UDP = true
|
||||
servers[i].IPs = hostToIPs[servers[i].Hostname]
|
||||
}
|
||||
|
||||
sort.Sort(models.SortableServers(servers))
|
||||
|
||||
@@ -10,16 +10,14 @@ type Updater struct {
|
||||
client *http.Client
|
||||
parallelResolver common.ParallelResolver
|
||||
warner common.Warner
|
||||
storage common.Storage
|
||||
}
|
||||
|
||||
func New(client *http.Client, warner common.Warner,
|
||||
parallelResolver common.ParallelResolver, storage common.Storage,
|
||||
parallelResolver common.ParallelResolver,
|
||||
) *Updater {
|
||||
return &Updater{
|
||||
client: client,
|
||||
parallelResolver: parallelResolver,
|
||||
warner: warner,
|
||||
storage: storage,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user