Thanks Ruben, Also if I am serving only A records from my backend, and if my backend is a bit slow, then is there some place I can set a timeout before PowerDNS calls my lookup.
As from the example in Writer's guide, suppose I am only serving A records, but if my backend is slow, PDNS queries again for the A record, that means my else part will hit again if my backend is slow, so is there any timeout I can set before PDNS queries back to my backend. Thanks, Nikhil void lookup(const QType &type, const string &qdomain, DNSPacket *p, int zoneId) { if(type.getCode()!=QType::A || qdomain!="random.powerdns.com") // we only know about random.powerdns.com A d_answer=""; // no answer else { ostringstream os; os<<random()%256<<"."<<random()%256<<"."<<random()%256<<"."<<random()%256; d_answer=os.str(); // our random ip address } } On Fri, Nov 16, 2012 at 4:29 PM, Ruben d'Arco <cycl...@prof-x.net> wrote: > Hi Nikhil, > > This is by design. PowerDNS will try to get the soa record to see if it is > authorative for the domain. It will also try to move up to the root to see > if a backend is authorative for that. If it is, it will continue with the > actual records it needs. > Also, for things like CNAME and MX, it will try to resolve those as well. > > So, it is normal and canot be avoided. Just implement the fuctions as > described in the backend writers guide and powerdns does the rest for you! > > Regards, > Ruben > > Nikhil Bose <nikhilbos...@gmail.com> wrote: > > >Hi All, > > > >First of all thanks for the help provided. As Peter in one of my > >earlier > >queries gave me a pointer and following that it is quite trivial to > >create > >our own Backend in PowerDNS and using getRemote(), I was able to > >retrieve > >the Client's resolver IP. > > > >PowerDNS is indeed quite simple to extend. Thanks for this > >architecture. > > > >I have one problem though. My backend is getting called multiple times. > >Even though I just send a single query using the host command. > >Just to show I put some output statements and these are printed after I > >sent the client query > > > >Here's the console output: > > > > >*************************************************************************************** > >Nov 16 11:20:26 Creating backend connection for TCP > >Constructor called > >% Nov 16 11:20:26 [bindbackend] Parsing 1 domain(s), will report when > >done > >Nov 16 11:20:26 [bindbackend] parsing 'example.com' from file > >'/etc/bind/example.com.zone' > >Nov 16 11:20:26 [bindbackend] Done parsing domains, 0 rejected, 1 new, > >0 > >removed > >Constructor called > >Nov 16 11:20:26 About to create 3 backend threads for UDP > >Constructor called > >Constructor called > >Constructor called > >Constructor called > >Constructor called > >Constructor called > >Nov 16 11:20:26 Done launching threads, ready to distribute questions > >Nov 16 11:20:35 Distributor misses a thread (4<5), spawning new one > >looked up > >looked up > >looked up > >looked up > >Constructor called > >Constructor called > > >*************************************************************************************** > > > >How I can reduce this to a single lookup() call from the PowerDNS to my > >Backend?. Even constructor is called many times. Can this be configured > >anywhere? > > > >Thanks, > >Nikhil. > > > > > >------------------------------------------------------------------------ > > > >_______________________________________________ > >Pdns-dev mailing list > >Pdns-dev@mailman.powerdns.com > >http://mailman.powerdns.com/mailman/listinfo/pdns-dev > > -- > Regards, > Ruben >
_______________________________________________ Pdns-dev mailing list Pdns-dev@mailman.powerdns.com http://mailman.powerdns.com/mailman/listinfo/pdns-dev