Merge pull request #308 from etenzy/go

Make Server-Location configurable
This commit is contained in:
maddie 2020-04-20 09:10:13 +08:00 committed by GitHub
commit a5960daecf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 3 deletions

View file

@ -6,9 +6,11 @@ import (
)
type Config struct {
BindAddress string `mapstructure:"bind_address"`
Port string `mapstructure:"listen_port"`
IPInfoAPIKey string `mapstructure:"ipinfo_api_key"`
BindAddress string `mapstructure:"bind_address"`
Port string `mapstructure:"listen_port"`
ServerLat float64 `mapstructure:"server_lat"`
ServerLng float64 `mapstructure:"server_lng"`
IPInfoAPIKey string `mapstructure:"ipinfo_api_key"`
StatsPassword string `mapstructure:"statistics_password"`
RedactIP bool `mapstructure:"redact_ip_addresses"`

View file

@ -2,6 +2,9 @@
bind_address=""
# backend listen port
listen_port=8989
# Server location
server_lat=0
server_lng=0
# ipinfo.io API key, if applicable
ipinfo_api_key=""

View file

@ -72,6 +72,13 @@ func getIPInfo(addr string) results.IPInfoResponse {
}
func getServerLocation() (float64, float64) {
conf := config.LoadedConfig()
if conf.ServerLat > 0 && conf.ServerLng > 0 {
log.Infof("Configured server coordinates: %.6f, %.6f", conf.ServerLat, conf.ServerLng)
return conf.ServerLat, conf.ServerLng
}
var ret results.IPInfoResponse
resp, err := http.DefaultClient.Get(getIPInfoURL(""))
if err != nil {