]> granicus.if.org Git - pdns/commitdiff
fix strict mode autoptr
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Sun, 21 Feb 2016 21:17:00 +0000 (22:17 +0100)
committerPieter Lexis <pieter.lexis@powerdns.com>
Mon, 13 Nov 2017 15:23:32 +0000 (16:23 +0100)
(cherry picked from commit c7478be41df2089f0eff0ddec4bbcee14b900301)

modules/ldapbackend/ldapbackend.cc
modules/ldapbackend/ldapbackend.hh

index b33adbe23f060aae549a84c80935f7d91a6285a7..efe87970526c603404d86b43d92bca083cb22ed3 100644 (file)
@@ -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;
index d2fb3bb4ccadbf4a0a44bca076c12035ae57c62c..beddf34ad6ab43447da729ba04044c56a6c3366f 100644 (file)
@@ -113,6 +113,7 @@ class LdapBackend : public DNSBackend
         vector<string>::iterator m_value;
         vector<DNSName>::iterator m_adomain;
         vector<DNSName> m_adomains;
+        QType m_qtype;
 
         bool (LdapBackend::*m_list_fcnt)( const DNSName&, int );
         void (LdapBackend::*m_lookup_fcnt)( const QType&, const DNSName&, DNSPacket*, int );