<div dir="ltr">Hi, I think my question is similar to the currently on-going discussion but for the gmysql backend: [Pdns-users] How to send NXDOMAIN using pipe backend?<br><br>I want to be able to return NXDOMAIN for queries where there are no answers, and I don't know how to do this from a stored procedure.<br><br><br>The pdns-3.4.4 servers (running on RHEL 5.8) are configured to be authoritative for '<a href="http://dynamic.example.com">dynamic.example.com</a>', and its only job is returning A records for that single sub-domain. <br>For example: <div>$>  'dig +short <a href="http://abc1.dynamic.example.com">abc1.dynamic.example.com</a>' would return:<br>128.59.152.21<br>128.159.15.22<br>128.29.15.23<br><br><br><div>I am using gmysql backend that calls a stored procedure for 'gmysql-any-id-query'  <br><br>So if you were to query <a href="http://abc1.dynamic.example.com">abc1.dynamic.example.com</a>, you would see the following queries:<br><br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='SOA' and name='<a href="http://abc1.dynamic.example.com">abc1.dynamic.example.com</a>'<br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='SOA' and name='<a href="http://dynamic.example.com">dynamic.example.com</a>'<br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='NS' and name='<a href="http://dynamic.example.com">dynamic.example.com</a>' and domain_id=1<br> Query: call dyn_query('<a href="http://abc1.dynamic.example.com">abc1.dynamic.example.com</a>', 1);<br><br>_________<br>The stored procedure looks like:<br>create procedure dyn_query(in_name VARCHAR(255), in_domain_id INT)<br>begin</div><div>     DECLARE case_condition INT;<br>      --- some processing to set the appropriate value for case_condition<br><br></div><div>     CASE</div><div>             WHEN (case_condition = 1) THEN<br>                  SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and domain_id = 1 and name = 'in_name';<br><br>             WHEN (case_condition = 2) THEN</div><div>                  SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and domain_id = 1 and name = 'in_name' and .....;<br>   <br>              ELSE<br>                   BEGIN</div><div>                   END;<br>       END CASE;<br>end<br>_________<br><br>This works well when the "some processing" sets 'case_condition' to 1 or 2.  If it's anything else, I just want to return NXDOMAIN.  What's happening is the following, and 'dig' just hangs for 6 seconds:<br><br><div>$> dig  <a href="http://dontexist.dynamic.example.com">dontexist.dynamic.example.com</a> @pdnsserver344</div><div><br></div><div>; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.2 <<>> <a href="http://dontexist.dynamic.example.com">dontexist.dynamic.example.com</a> @pdnsserver344</div><div>;; global options:  printcmd</div><div>;; connection timed out; no servers could be reached<br><br><br>There isn't much in the pdns server's /var/log/messages either.  The query looks exactly the same:<br>  <br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='SOA' and name='<a href="http://dontexist.dynamic.example.com">dontexist.dynamic.example.com</a>'<br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='SOA' and name='<a href="http://dynamic.example.com">dynamic.example.com</a>'<br> Query: SELECT content,ttl,prio,type,domain_id,disabled,name,auth FROM records WHERE disabled=0 and type='NS' and name='<a href="http://dontexist.dynamic.example.com">dontexist.dynamic.example.com</a>' and domain_id=1<br> Query: call dyn_query('<a href="http://dontexist.dynamic.example.com">dontexist.dynamic.example.com</a>', 1);<br><br><br>So is there something else that needs to be in ELSE clause for the CASE statement..?  Thanks in advance for the help, and please let me know if I left out any details. <br><br>aldusj</div></div></div></div>