'Send a response C{message} to a given C{address} via the supplied
C{protocol}.
Message payload will be logged if C{DNSServerFactory.verbose} is C{>1}.
@param protocol: The DNS protocol instance to which to send the message.
@type protocol: L{dns.DNSDatagramProtocol} or L{dns.DNSProtocol}
@param message: The DNS message to be sent.
@type message: L{dns.Message}
@param address: The address to which the message will be sent or L{None}
if C{protocol} is a stream protocol.
@type address: L{tuple} or L{None}'

def sendReply(self, protocol, message, address):

    if (self.verbose > 1):
        s = '    '.join([str(a.payload) for a in message.answers])
        auth = '    '.join([str(a.payload) for a in message.authority])
        add = '    '.join([str(a.payload) for a in message.additional])
        if (not s):
            log.msg('Replying    with    no    answers')
        else:
            log.msg(('Answers    are    ' + s))
            log.msg(('Authority    is    ' + auth))
            log.msg(('Additional    is    ' + add))
    if (address is None):
        protocol.writeMessage(message)
    else:
        protocol.writeMessage(message, address)
    self._verboseLog(('Processed    query    in    %0.3f    seconds' % (time.time() - message.timeReceived)))
