I have it working now.&nbsp; I have attached a working programme below.&nbsp; (Note: the RRHeader&#39;s name should be gathered from one of the queries, rather than being hard-coded, as in my example below.&nbsp; I did it this way, as it more obviously illustrates RRHeader&#39;s constructor.)<br>
<br>Thanks for your help, <br><br>Chris.<br><br><br>#!/usr/bin/python<br><br>from twisted.internet.protocol import Protocol, Factory<br>from twisted.internet import reactor<br>from twisted.names.server import DNSServerFactory<br>
from twisted.names.dns import Query, DNSDatagramProtocol, RRHeader, Record_CNAME, Record_A, Message<br>from twisted.names import dns<br>from twisted.internet.interfaces import IAddress<br><br>class Controller(object):<br>
&nbsp;&nbsp;&nbsp; def messageReceived(self, m, protocol, addr):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print m, dir(m), m.queries, m.answers<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # this should always answer <a href="http://10.11.12.13">10.11.12.13</a>, regardless of the query<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.answer = 1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m.answers.append(RRHeader(name=&quot;foo.bar&quot;, payload=Record_A(address=&quot;<a href="http://10.11.12.13">10.11.12.13</a>&quot;)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protocol.transport.write(m.toStr(), addr)<br><br>controller = Controller()<br>
<br>if __name__ == &quot;__main__&quot;:<br>&nbsp;&nbsp;&nbsp; reactor.listenUDP(53, DNSDatagramProtocol(controller))<br>&nbsp;&nbsp;&nbsp; reactor.run()<br><br> <br><div><span class="gmail_quote">On 13/03/2008, <b class="gmail_sendername">Jean-Paul Calderone</b> &lt;<a href="mailto:exarkun@divmod.com">exarkun@divmod.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Thu, 13 Mar 2008 07:52:24 +0000, Chris Dew &lt;<a href="mailto:chris@sidwells.com">chris@sidwells.com</a>&gt; wrote:<br> &gt;Thanks for your reply.&nbsp;&nbsp;I have tried setting answer to 1.&nbsp;&nbsp;I have included<br> &gt;an amended version of my programme at the end of this email.<br>
 &gt;<br> &gt;When I run this, the server reports no error.&nbsp;&nbsp;When I&nbsp;&nbsp;&#39;dig @localhost<br> &gt;foo.bar&#39; I get the response:<br> &gt;<br> <br>&gt; [snip]<br> <br>&gt;<br> &gt;Could you point out my mistake?&nbsp;&nbsp;If it&#39;s a bug in twisted.names, I&#39;m happy<br>
 &gt;to look at fixing it (I&#39;ve worked with the dns protocol at packet level<br> &gt;before), but I first want to make sure that I am using the API correctly.<br> <br> <br>See below.&nbsp;&nbsp;I think it&#39;s a documentation deficiency, but probably not a<br>
 bug in the code.<br> <br> &gt; [snip]<br> <br>&gt;<br> &gt;#!/usr/bin/python<br> &gt;<br> &gt;from twisted.internet.protocol import Protocol, Factory<br> &gt;from twisted.internet import reactor<br> &gt;from twisted.names.server import DNSServerFactory<br>
 &gt;from twisted.names.dns import Query, DNSDatagramProtocol, RRHeader,<br> &gt;Record_CNAME, Record_A, Message<br> &gt;from twisted.names import dns<br> &gt;from twisted.internet.interfaces import IAddress<br> &gt;<br> &gt;class Controller(object):<br>
 &gt;&nbsp;&nbsp;&nbsp;&nbsp;def messageReceived(self, m, protocol, addr):<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print m, dir(m), m.queries, m.answers<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# this should always answer <a href="http://10.11.12.13">10.11.12.13</a>, regardless of the query<br>
 &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.answer = 1<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.answers.append(Record_A(address=&quot;<a href="http://10.11.12.13">10.11.12.13</a>&quot;))<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;protocol.transport.write(m.toStr(), addr)<br> <br> <br>Answers should be a list of RRHeaders, not bare Record_As.<br>
 <br><br> &gt;<br> &gt;controller = Controller()<br> &gt;<br> &gt;if __name__ == &quot;__main__&quot;:<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;reactor.listenUDP(53, DNSDatagramProtocol(controller))<br> &gt;&nbsp;&nbsp;&nbsp;&nbsp;reactor.run()<br> &gt;<br> <br> <br>Jean-Paul<br>
 <br> _______________________________________________<br> Twisted-Python mailing list<br> <a href="mailto:Twisted-Python@twistedmatrix.com">Twisted-Python@twistedmatrix.com</a><br> <a href="http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python">http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python</a><br>
 </blockquote></div><br>