1
0
Эх сурвалжийг харах

Make Server-Location configurable

etenzy 5 жил өмнө
parent
commit
044b913bd5
3 өөрчлөгдсөн 15 нэмэгдсэн , 3 устгасан
  1. 5 3
      config/config.go
  2. 3 0
      settings.toml
  3. 7 0
      web/helpers.go

+ 5 - 3
config/config.go

@@ -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"`

+ 3 - 0
settings.toml

@@ -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=""
 

+ 7 - 0
web/helpers.go

@@ -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 {