From: Peter van Dijk Date: Sun, 21 Feb 2016 21:17:00 +0000 (+0100) Subject: fix strict mode autoptr X-Git-Tag: auth-4.0.5~1^2~4^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=94e951f09bd1e9f402511a6f2a319f8c10604f83;p=pdns fix strict mode autoptr (cherry picked from commit c7478be41df2089f0eff0ddec4bbcee14b900301) --- diff --git a/modules/ldapbackend/ldapbackend.cc b/modules/ldapbackend/ldapbackend.cc index b33adbe23..efe879705 100644 --- a/modules/ldapbackend/ldapbackend.cc +++ b/modules/ldapbackend/ldapbackend.cc @@ -199,6 +199,7 @@ void LdapBackend::lookup( const QType &qtype, const DNSName &qname, DNSPacket *d m_axfrqlen = 0; m_qname = qname; m_adomain = m_adomains.end(); // skip loops in get() first time + m_qtype = qtype; if( m_qlog ) { L.log( "Query: '" + qname.toStringRootDot() + "|" + qtype.getName() + "'", Logger::Error ); } (this->*m_lookup_fcnt)( qtype, qname, dnspkt, zoneid ); @@ -441,6 +442,10 @@ bool LdapBackend::get( DNSResourceRecord &rr ) while( m_value != m_attribute->second.end() ) { + if(m_qtype != qt && m_qtype != QType::ANY) { + m_value++; + continue; + } rr.qtype = qt; rr.qname = *m_adomain; diff --git a/modules/ldapbackend/ldapbackend.hh b/modules/ldapbackend/ldapbackend.hh index d2fb3bb4c..beddf34ad 100644 --- a/modules/ldapbackend/ldapbackend.hh +++ b/modules/ldapbackend/ldapbackend.hh @@ -113,6 +113,7 @@ class LdapBackend : public DNSBackend vector::iterator m_value; vector::iterator m_adomain; vector m_adomains; + QType m_qtype; bool (LdapBackend::*m_list_fcnt)( const DNSName&, int ); void (LdapBackend::*m_lookup_fcnt)( const QType&, const DNSName&, DNSPacket*, int );