'Create a L{Message} suitable for use as a response to a query.
@param answers: A C{list} of two-tuples giving data for the answers
section of the message.  The first element of each tuple is a name
for the L{RRHeader}.  The second element is the payload.
@param authority: A C{list} like C{answers}, but for the authority
section of the response.
@param additional: A C{list} like C{answers}, but for the
additional section of the response.
@param rCode: The response code the message will be created with.
@return: A new L{Message} initialized with the given values.'

def _respond(self, answers=[], authority=[], additional=[], rCode=OK):

    response = Message(rCode=rCode)
    for (section, data) in [(response.answers, answers), (response.authority, authority), (response.additional, additional)]:
        section.extend([RRHeader(name, record.TYPE, getattr(record, 'CLASS', IN), payload=record) for (name, record) in data])
    return response
