Compare commits

...

3 Commits

3 changed files with 7 additions and 12 deletions

View File

@ -14,6 +14,7 @@ builds:
- linux
- windows
- darwin
mod_timestamp: "{{ .CommitTimestamp }}"
archives:
- replacements:
darwin: Darwin
@ -21,6 +22,8 @@ archives:
windows: Windows
386: i386
amd64: x86_64
format: binary
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
checksum:
name_template: 'checksums.txt'
snapshot:

View File

@ -1,7 +1,7 @@
# mullvad-best-server
![Build](https://github.com/bastiandoetsch/mullvad-best-server/actions/workflows/go.yml/badge.svg)
Determines the mullvat.net wireguard server with the lowest latency.
Determines the mullvad.net server with the lowest latency.
## Installation

14
main.go
View File

@ -24,7 +24,7 @@ func main() {
flag.Parse()
servers := getServers(*typeFlag)
bestIndex := selectBestServerIndex(servers, countryFlag)
bestIndex := selectBestServerIndex(servers, *countryFlag)
best := servers[bestIndex]
log.Debug().Interface("server", best).Msg("Best latency server found.")
hostname := strings.TrimSuffix(best.Hostname, "-wireguard")
@ -39,19 +39,11 @@ func main() {
}
}
func selectBestServerIndex(servers []server, country *string) int {
func selectBestServerIndex(servers []server, country string) int {
best := servers[0].Hostname
bestIndex := -1
allowedCountries := map[string]string{}
if *country == "" {
allowedCountries["de"] = "1"
allowedCountries["ch"] = "1"
allowedCountries["at"] = "1"
} else {
allowedCountries[*country] = "1"
}
for i, server := range servers {
if server.Active && allowedCountries[server.CountryCode] != "" {
if server.Active && server.CountryCode == country {
duration, err := serverLatency(server)
if err == nil {
pings[server.Hostname] = duration