From a510b96fd1fc7b29eaa0ea8b1746d24564ad7d40 Mon Sep 17 00:00:00 2001 From: Tyler Davis Date: Wed, 20 Oct 2021 00:58:40 +0000 Subject: [PATCH] geoip2: add active-checks to queries Add checks for the DB to be active before making a query. This was only enabled on ASN, now enabled for City and Country queries. --- targeting/geoip2/geoip2.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/targeting/geoip2/geoip2.go b/targeting/geoip2/geoip2.go index 195374d7..43428181 100644 --- a/targeting/geoip2/geoip2.go +++ b/targeting/geoip2/geoip2.go @@ -188,6 +188,10 @@ func (g *GeoIP2) GetCountry(ip net.IP) (country, continent string, netmask int) g.country.l.RLock() defer g.country.l.RUnlock() + if !g.country.active { + return "", "", 0 + } + c, err := g.country.db.Country(ip) if err != nil { log.Printf("Could not lookup country for '%s': %s", ip.String(), err) @@ -215,6 +219,10 @@ func (g *GeoIP2) GetLocation(ip net.IP) (l *geo.Location, err error) { g.city.l.RLock() defer g.city.l.RUnlock() + if !g.city.active { + return nil, fmt.Errorf("city db not active") + } + c, err := g.city.db.City(ip) if err != nil { log.Printf("Could not lookup CountryRegion for '%s': %s", ip.String(), err)