]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth geoip: set netmask on all string formatting types 9813/head
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 3 Dec 2020 08:57:20 +0000 (09:57 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Thu, 3 Dec 2020 08:57:24 +0000 (09:57 +0100)
(via Kees Monshouwer)

modules/geoipbackend/geoipbackend.cc

index eaa99f3c32a2874b7af1e5be42180b5efb1e8566..5aaa06b47a1e31aa458f8aba63ba5164fc9b791b 100644 (file)
@@ -635,6 +635,7 @@ string GeoIPBackend::format2str(string sformat, const Netmask& addr, GeoIPNetmas
       double s1, s2;
       if (!queryGeoLocation(addr, gl, lat, lon, alt, prec)) {
         rep = "";
+        tmp_gl.netmask = (addr.isIPv6()?128:32);
       } else {
         ns = (lat>0) ? 'N' : 'S';
         ew = (lon>0) ? 'E' : 'W';
@@ -660,6 +661,7 @@ string GeoIPBackend::format2str(string sformat, const Netmask& addr, GeoIPNetmas
     } else if (!sformat.compare(cur,4,"%lat")) {
       if (!queryGeoLocation(addr, gl, lat, lon, alt, prec)) {
         rep = "";
+        tmp_gl.netmask = (addr.isIPv6()?128:32);
       } else {
         rep = str(boost::format("%lf") % lat);
       }
@@ -667,6 +669,7 @@ string GeoIPBackend::format2str(string sformat, const Netmask& addr, GeoIPNetmas
     } else if (!sformat.compare(cur,4,"%lon")) {
       if (!queryGeoLocation(addr, gl, lat, lon, alt, prec)) {
         rep = "";
+        tmp_gl.netmask = (addr.isIPv6()?128:32);
       } else {
         rep = str(boost::format("%lf") % lon);
       }