From: Peter van Dijk Date: Mon, 17 Aug 2020 11:09:10 +0000 (+0200) Subject: Merge pull request #8565 from criteo-forks/stop_weighted X-Git-Tag: rec-4.4.0-beta1~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c55848958195b6067497e975f0c83265a6e1fdfc;p=thirdparty%2Fpdns.git Merge pull request #8565 from criteo-forks/stop_weighted geoipbackend: stop looking after first weighted match --- c55848958195b6067497e975f0c83265a6e1fdfc diff --cc modules/geoipbackend/geoipbackend.cc index 7b66211810,de4fc00286..21ddd990f5 --- a/modules/geoipbackend/geoipbackend.cc +++ b/modules/geoipbackend/geoipbackend.cc @@@ -318,10 -319,11 +319,11 @@@ bool GeoIPBackend::lookup_static(const if (i != dom.records.end()) { // return static value for(const auto& rr : i->second) { - if (qtype != QType::ANY && rr.qtype != qtype) continue; + if ((qtype != QType::ANY && rr.qtype != qtype) || weighted_match[rr.qtype.getCode()]) + continue; if (rr.has_weight) { - gl.netmask = (addr.isIpv6()?128:32); + gl.netmask = (addr.isIPv6()?128:32); int comp = cumul_probabilities[rr.qtype.getCode()]; cumul_probabilities[rr.qtype.getCode()] += rr.weight; if (rr.weight == 0 || probability_rnd < comp || probability_rnd > (comp + rr.weight))