Package dns :: Module message
[show private | hide private]
[frames | no frames]

Module dns.message

DNS Messages
Classes
Message A DNS message.

Exceptions
BadEDNS Raised if an OPT record occurs somewhere other than the start of the additional data section.
BadTSIG Raised if a TSIG record occurs somewhere other than the end of the additional data section.
ShortHeader Raised if the DNS packet passed to from_wire() is too short.
TrailingJunk Raised if the DNS packet passed to from_wire() has extra junk at the end of it.
UnknownHeaderField Raised if a header field name is not recognized when converting from text into a message.
UnknownTSIGKey Raised if we got a TSIG but don't know the key.

Function Summary
dns.message.Message object from_file(f)
Read the next text format message from the specified file.
dns.message.Message object from_text(text)
Convert the text format message into a message object.
dns.message.Message object from_wire(wire, keyring, request_mac, xfr, origin, tsig_ctx, multi, first, question_only)
Convert a DNS wire format message into a message object.
dns.message.Message object make_query(qname, rdtype, rdclass, use_edns, want_dnssec)
Make a query message.
dns.message.Message object make_response(query, recursion_available, our_payload)
Make a message which is a response for the specified query.

Function Details

from_file(f)

Read the next text format message from the specified file.
Parameters:
f - file or string. If f is a string, it is treated as the name of a file to open.
Returns:
dns.message.Message object
Raises:
UnknownHeaderField -
dns.exception.SyntaxError -

from_text(text)

Convert the text format message into a message object.
Parameters:
text - The text format message.
           (type=string)
Returns:
dns.message.Message object
Raises:
UnknownHeaderField -
dns.exception.SyntaxError -

from_wire(wire, keyring=None, request_mac='', xfr=False, origin=None, tsig_ctx=None, multi=False, first=True, question_only=False)

Convert a DNS wire format message into a message object.
Parameters:
keyring - The keyring to use if the message is signed.
           (type=dict)
request_mac - If the message is a response to a TSIG-signed request, request_mac should be set to the MAC of that request.
           (type=string)
xfr - Is this message part of a zone transfer?
           (type=bool)
origin - If the message is part of a zone transfer, origin should be the origin name of the zone.
           (type=dns.name.Name object)
tsig_ctx - The ongoing TSIG context, used when validating zone transfers.
           (type=hmac.HMAC object)
multi - Is this message part of a multiple message sequence?
           (type=bool)
first - Is this message standalone, or the first of a multi message sequence?
           (type=bool)
question_only - Read only up to the end of the question section?
           (type=bool)
Returns:
dns.message.Message object
Raises:
ShortHeader - The message is less than 12 octets long.
TrailingJunk - There were octets in the message past the end of the proper DNS message.
BadEDNS - An OPT record was in the wrong section, or occurred more than once.
BadTSIG - A TSIG record was not the last record of the additional data section.

make_query(qname, rdtype, rdclass=1, use_edns=None, want_dnssec=False)

Make a query message.

The query name, type, and class may all be specified either as objects of the appropriate type, or as strings.

The query will have a randomly choosen query id, and its DNS flags will be set to dns.flags.RD.
Parameters:
qname - The query name.
           (type=dns.name.Name object or string)
rdtype - The desired rdata type.
           (type=int)
rdclass - The desired rdata class; the default is class IN.
           (type=int)
use_edns - The EDNS level to use; the default is None (no EDNS). See the description of dns.message.Message.use_edns() for the possible values for use_edns and their meanings.
           (type=int or bool or None)
want_dnssec - Should the query indicate that DNSSEC is desired?
           (type=bool)
Returns:
dns.message.Message object

make_response(query, recursion_available=False, our_payload=8192)

Make a message which is a response for the specified query. The message returned is really a response skeleton; it has all of the infrastructure required of a response, but none of the content.

The response's question section is a shallow copy of the query's question section, so the query's question RRsets should not be changed.
Parameters:
query - the query to respond to
           (type=dns.message.Message object)
recursion_available - should RA be set in the response?
           (type=bool)
our_payload - payload size to advertise in EDNS responses; default is 8192.
           (type=int)
Returns:
dns.message.Message object

Generated by Epydoc 2.1 on Sun Nov 25 17:43:04 2007 http://epydoc.sf.net