Feat: rework Surfshark servers data (#575)

- Feat: `MULTIHOP_ONLY` variable
- Feat: `COUNTRY` variable
- Feat: `CITY` variable
- Feat: `REGION` variable, with retro-compatibility
- Feat: merge servers from API, zip and hardcoded hostnames
- Fix: remove outdated and duplicate servers
- Maint: faster update with fully parallel DNS resolutions
This commit is contained in:
Quentin McGaw
2021-08-23 10:25:00 -07:00
committed by GitHub
parent 8b52af0d03
commit f1a82d9d9c
21 changed files with 3023 additions and 1803 deletions
@@ -0,0 +1,22 @@
package surfshark
import (
"errors"
"fmt"
"github.com/qdm12/gluetun/internal/models"
)
var (
errHostnameNotFound = errors.New("hostname not found in hostname to location mapping")
)
func getHostInformation(host string, hostnameToLocation map[string]models.SurfsharkLocationData) (
data models.SurfsharkLocationData, err error) {
locationData, ok := hostnameToLocation[host]
if !ok {
return locationData, fmt.Errorf("%w: %s", errHostnameNotFound, host)
}
return locationData, nil
}