Stop crash with invalid/missing geoip data. Fixes #414

This commit is contained in:
Gabe Kangas 2020-12-05 13:33:15 -08:00
parent 5b22b22308
commit 62d85a8b1d

View File

@ -29,6 +29,14 @@ func GetGeoFromIP(ip string) *GeoDetails {
return &cachedGeoDetails
}
if ip == "::1" || ip == "127.0.0.1" {
return &GeoDetails{
CountryCode: "N/A",
RegionName: "Localhost",
TimeZone: "",
}
}
return nil
}
@ -72,9 +80,16 @@ func FetchGeoForIP(ip string) {
return
}
var regionName = "Unknown"
if len(record.Subdivisions) > 0 {
if region, ok := record.Subdivisions[0].Names["en"]; ok {
regionName = region
}
}
response := GeoDetails{
CountryCode: record.Country.IsoCode,
RegionName: record.Subdivisions[0].Names["en"],
RegionName: regionName,
TimeZone: record.Location.TimeZone,
}