[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.15.211.252: ~ $
�
;�>Sc@sGdZddlZddlZddlZddlZddlZddlZddlZddl	Zddl
ZddlZddlZddl
ZddlZddlZddlZddlZddlZddlZddlZdejjfd��YZdejjfd��YZdejjfd��YZd	ejjfd
��YZdejjfd��YZd
ejjfd��YZdefd��YZdefd��YZ e!de"e!e!e"e#e"e"e"d�
Z$defd��YZ%d�Z&d�Z'ej(j)e!e"dde!e!d�Z*e"ddd�Z+dS(sDNS Messagesi����NtShortHeadercBseZdZRS(s<Raised if the DNS packet passed to from_wire() is too short.(t__name__t
__module__t__doc__(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR'stTrailingJunkcBseZdZRS(sSRaised if the DNS packet passed to from_wire() has extra junk
    at the end of it.(RRR(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR+stUnknownHeaderFieldcBseZdZRS(s]Raised if a header field name is not recognized when converting from
    text into a message.(RRR(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR0stBadEDNScBseZdZRS(saRaised if an OPT record occurs somewhere other than the start of
    the additional data section.(RRR(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR5stBadTSIGcBseZdZRS(s_Raised if a TSIG record occurs somewhere other than the end of
    the additional data section.(RRR(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR:stUnknownTSIGKeycBseZdZRS(s/Raised if we got a TSIG but don't know the key.(RRR(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR?stMessagecBs
eZdZdd�Zd�Zd�Zded�Zd�Z	d�Z
d�Zd�Ze
jjdeed	�Ze
jjdeed
�Zddd�Zdd
ddde
jjd�Zdddddd�Zed�Zd�Zd�Zd�Zd�ZRS(s,
A DNS message.

    @ivar id: The query id; the default is a randomly chosen id.
    @type id: int
    @ivar flags: The DNS flags of the message.  @see: RFC 1035 for an
    explanation of these flags.
    @type flags: int
    @ivar question: The question section.
    @type question: list of dns.rrset.RRset objects
    @ivar answer: The answer section.
    @type answer: list of dns.rrset.RRset objects
    @ivar authority: The authority section.
    @type authority: list of dns.rrset.RRset objects
    @ivar additional: The additional data section.
    @type additional: list of dns.rrset.RRset objects
    @ivar edns: The EDNS level to use.  The default is -1, no Edns.
    @type edns: int
    @ivar ednsflags: The EDNS flags
    @type ednsflags: long
    @ivar payload: The EDNS payload size.  The default is 0.
    @type payload: int
    @ivar options: The EDNS options
    @type options: list of dns.edns.Option objects
    @ivar request_payload: The associated request's EDNS payload size.
    @type request_payload: int
    @ivar keyring: The TSIG keyring to use.  The default is None.
    @type keyring: dict
    @ivar keyname: The TSIG keyname to use.  The default is None.
    @type keyname: dns.name.Name object
    @ivar keyalgorithm: The TSIG algorithm to use; defaults to
    dns.tsig.default_algorithm.  Constants for TSIG algorithms are defined
    in dns.tsig, and the currently implemented algorithms are
    HMAC_MD5, HMAC_SHA1, HMAC_SHA224, HMAC_SHA256, HMAC_SHA384, and
    HMAC_SHA512.
    @type keyalgorithm: string
    @ivar request_mac: The TSIG MAC of the request message associated with
    this message; used when validating TSIG signatures.   @see: RFC 2845 for
    more information on TSIG fields.
    @type request_mac: string
    @ivar fudge: TSIG time fudge; default is 300 seconds.
    @type fudge: int
    @ivar original_id: TSIG original id; defaults to the message's id
    @type original_id: int
    @ivar tsig_error: TSIG error code; default is 0.
    @type tsig_error: int
    @ivar other_data: TSIG other data.
    @type other_data: string
    @ivar mac: The TSIG MAC for this message.
    @type mac: string
    @ivar xfr: Is the message being used to contain the results of a DNS
    zone transfer?  The default is False.
    @type xfr: bool
    @ivar origin: The origin of the zone in messages which are used for
    zone transfers or for DNS dynamic updates.  The default is None.
    @type origin: dns.name.Name object
    @ivar tsig_ctx: The TSIG signature context associated with this
    message.  The default is None.
    @type tsig_ctx: hmac.HMAC object
    @ivar had_tsig: Did the message decoded from wire format have a TSIG
    signature?
    @type had_tsig: bool
    @ivar multi: Is this message part of a multi-message sequence?  The
    default is false.  This variable is used when validating TSIG signatures
    on messages which are part of a zone transfer.
    @type multi: bool
    @ivar first: Is this message standalone, or the first of a multi
    message sequence?  This variable is used when validating TSIG signatures
    on messages which are part of a zone transfer.
    @type first: bool
    @ivar index: An index of rrsets in the message.  The index key is
    (section, name, rdclass, rdtype, covers, deleting).  Indexing can be
    disabled by setting the index to None.
    @type index: dict
    cCs!|dkr!tjj�|_n	||_d|_g|_g|_g|_g|_	d|_
d|_d|_g|_
d|_d|_d|_tjj|_d|_d|_d|_d|_|j|_d|_t|_d|_d|_t|_t|_t |_!i|_"dS(Nii����ti,(#tNonetdnstentropyt	random_16tidtflagstquestiontanswert	authorityt
additionaltednst	ednsflagstpayloadtoptionstrequest_payloadtkeyringtkeynamettsigtdefault_algorithmtkeyalgorithmtrequest_mact
other_datat
tsig_errortfudgetoriginal_idtmactFalsetxfrtoriginttsig_ctxthad_tsigtmultitTruetfirsttindex(tselfR((s1/usr/lib64/python2.7/site-packages/dns/message.pyt__init__�s:																								cCsd|j
dS(Ns<DNS message, ID t>(R(R.((s1/usr/lib64/python2.7/site-packages/dns/message.pyt__repr__�scCs
|j�S(N(tto_text(R.((s1/usr/lib64/python2.7/site-packages/dns/message.pyt__str__�scKs5tj�}|d|jIJ|dtjjtjj|j��IJtjj|j|j	�}|dtjj|�IJ|dtjj|j�IJ|j
dkr�|d|j
IJ|j	dkr�|dtjj|j	�IJn|dI|jIJntjj
|j�}|r%|d	IJn
|d
IJx*|jD]}||j|||�IJq9W|ro|dIJn
|dIJx*|jD]}||j|||�IJq�W|r�|d
IJn
|dIJx*|jD]}||j|||�IJq�W|dIJx*|jD]}||j|||�IJqW|j�d S(s�Convert the message to text.

        The I{origin}, I{relativize}, and any other keyword
        arguments are passed to the rrset to_wire() method.

        @rtype: string
        sid %ds	opcode %ssrcode %ssflags %sisedns %ss	eflags %sRs;ZONEs	;QUESTIONs;PREREQs;ANSWERs;UPDATEs
;AUTHORITYs;ADDITIONALi����(t	cStringIOtStringIORRtopcodeR2t
from_flagsRtrcodeRRtedns_to_textRt	is_updateRRRRtgetvalue(R.R't
relativizetkwtstrcR:trrset((s1/usr/lib64/python2.7/site-packages/dns/message.pyR2�sB	"






cCs-t|t�stS|j|jkr)tS|j|jkr?tSx$|jD]}||jkrItSqIWx$|jD]}||jkrptSqpWx$|jD]}||jkr�tSq�Wx$|jD]}||jkr�tSq�Wx$|jD]}||jkr�tSq�Wx$|jD]}||jkrtSqWtS(s�Two messages are equal if they have the same content in the
        header, question, answer, and authority sections.
        @rtype: bool(	t
isinstanceR	R%RRRRRR+(R.tothertn((s1/usr/lib64/python2.7/site-packages/dns/message.pyt__eq__�s2cCs|j|�S(s0Are two messages not equal?
        @rtype: bool(RD(R.RB((s1/usr/lib64/python2.7/site-packages/dns/message.pyt__ne__scCs�|jtjj@dksU|j|jksUtjj|j�tjj|j�krYtStjj|j|j�tjj	kr�t
Stjj|j�r�t
Sx$|jD]}||jkr�tSq�Wx$|jD]}||jkr�tSq�Wt
S(s1Is other a response to self?
        @rtype: booli(
RRtQRRR6R7R%R8RtNOERRORR+R:R(R.RBRC((s1/usr/lib64/python2.7/site-packages/dns/message.pytis_responses"cCs\||jkrdS||jkr&dS||jkr9dS||jkrLdStd��dS(Niiiisunknown section(RRRRt
ValueError(R.tsection((s1/usr/lib64/python2.7/site-packages/dns/message.pytsection_number sc	Cs�|j|�|||||f}	|s�|jdk	r[|jj|	�}
|
dk	r�|
Sq�x0|D]%}
|
j|||||�rb|
SqbWn|s�t�ntjj|||||�}
|j	|
�|jdk	r�|
|j|	<n|
S(sFind the RRset with the given attributes in the specified section.

        @param section: the section of the message to look in, e.g.
        self.answer.
        @type section: list of dns.rrset.RRset objects
        @param name: the name of the RRset
        @type name: dns.name.Name object
        @param rdclass: the class of the RRset
        @type rdclass: int
        @param rdtype: the type of the RRset
        @type rdtype: int
        @param covers: the covers value of the RRset
        @type covers: int
        @param deleting: the deleting value of the RRset
        @type deleting: int
        @param create: If True, create the RRset if it is not found.
        The created RRset is appended to I{section}.
        @type create: bool
        @param force_unique: If True and create is also True, create a
        new RRset regardless of whether a matching RRset exists already.
        @type force_unique: bool
        @raises KeyError: the RRset was not found and create was False
        @rtype: dns.rrset.RRset objectN(
RKR-RtgettmatchtKeyErrorRR@tRRsettappend(R.RJtnametrdclasstrdtypetcoverstdeletingtcreatetforce_uniquetkeyR@((s1/usr/lib64/python2.7/site-packages/dns/message.pyt
find_rrset,s"
	
c	
	CsFy(|j||||||||�}	Wntk
rAd}	nX|	S(sGet the RRset with the given attributes in the specified section.

        If the RRset is not found, None is returned.

        @param section: the section of the message to look in, e.g.
        self.answer.
        @type section: list of dns.rrset.RRset objects
        @param name: the name of the RRset
        @type name: dns.name.Name object
        @param rdclass: the class of the RRset
        @type rdclass: int
        @param rdtype: the type of the RRset
        @type rdtype: int
        @param covers: the covers value of the RRset
        @type covers: int
        @param deleting: the deleting value of the RRset
        @type deleting: int
        @param create: If True, create the RRset if it is not found.
        The created RRset is appended to I{section}.
        @type create: bool
        @param force_unique: If True and create is also True, create a
        new RRset regardless of whether a matching RRset exists already.
        @type force_unique: bool
        @rtype: dns.rrset.RRset object or NoneN(RYRNR(
R.RJRQRRRSRTRURVRWR@((s1/usr/lib64/python2.7/site-packages/dns/message.pyt	get_rrsetZs

ic	Ks�|dkr0|jdkr'|j}q0d}n|dkrEd}n|dkrZd}ntjj|j|j||�}x-|jD]"}|j|j|j	|j
�q�Wx*|jD]}|jtjj
||�q�Wx*|jD]}|jtjj||�q�W|jdkr9|j|j|j|j|j�nx*|jD]}|jtjj||�qCW|j�|jdk	r�|j|j|j|j|j|j|j|j|j |j!�|j"|_"n|j#�S(s7Return a string containing the message in DNS compressed wire
        format.

        Additional keyword arguments are passed to the rrset to_wire()
        method.

        @param origin: The origin to be appended to any relative names.
        @type origin: dns.name.Name object
        @param max_size: The maximum size of the wire format output; default
        is 0, which means 'the message's request payload, if nonzero, or
        65536'.
        @type max_size: int
        @raises dns.exception.TooBig: max_size was exceeded
        @rtype: string
        ii��iN($RRtrenderertRendererRRRtadd_questionRQRSRRRt	add_rrsettANSWERRt	AUTHORITYRtadd_ednsRRRRt
ADDITIONALtwrite_headerRRtadd_tsigRR"R#R!R RRR$tget_wire(R.R'tmax_sizeR=trR@((s1/usr/lib64/python2.7/site-packages/dns/message.pytto_wire}s6			! %

i,R
cCs�||_|dkr.|jj�d|_n3t|ttf�rXtjj	|�}n||_||_
||_|dkr�|j|_
n	||_
||_||_dS(swWhen sending, a TSIG signature using the specified keyring
        and keyname should be added.

        @param keyring: The TSIG keyring to use; defaults to None.
        @type keyring: dict
        @param keyname: The name of the TSIG key to use; defaults to None.
        The key must be defined in the keyring.  If a keyring is specified
        but a keyname is not, then the key used will be the first key in the
        keyring.  Note that the order of keys in a dictionary is not defined,
        so applications should supply a keyname when a keyring is used, unless
        they know the keyring contains only one key.
        @type keyname: dns.name.Name or string
        @param fudge: TSIG time fudge; default is 300 seconds.
        @type fudge: int
        @param original_id: TSIG original id; defaults to the message's id
        @type original_id: int
        @param tsig_error: TSIG error code; default is 0.
        @type tsig_error: int
        @param other_data: TSIG other data.
        @type other_data: string
        @param algorithm: The TSIG algorithm to use; defaults to
        dns.tsig.default_algorithm
        iN(RRtkeysRRAtstrtunicodeRRQt	from_textRR"RR#R!R (R.RRR"R#R!R t	algorithm((s1/usr/lib64/python2.7/site-packages/dns/message.pytuse_tsig�s						icCs�|dks|tkr!d}n|tkr6d}n|dkrK|}n|dkrrd}d}d}g}n-|dM}||d>O}|dkr�g}n||_||_||_||_||_dS(s_Configure EDNS behavior.
        @param edns: The EDNS level to use.  Specifying None, False, or -1
        means 'do not use EDNS', and in this case the other parameters are
        ignored.  Specifying True is equivalent to specifying 0, i.e. 'use
        EDNS0'.
        @type edns: int or bool or None
        @param ednsflags: EDNS flag values.
        @type ednsflags: int
        @param payload: The EDNS sender's payload field, which is the maximum
        size of UDP datagram the sender can handle.
        @type payload: int
        @param request_payload: The EDNS payload size to use when sending
        this message.  If not specified, defaults to the value of payload.
        @type request_payload: int or None
        @param options: The EDNS options
        @type options: None or list of dns.edns.Option objects
        @see: RFC 2671
        i����il�~iN(RR%R+RRRRR(R.RRRRR((s1/usr/lib64/python2.7/site-packages/dns/message.pytuse_edns�s(				
					cCsf|r:|jdkr"|j�n|jtjjO_n(|jdkrb|jtjjM_ndS(s
Enable or disable 'DNSSEC desired' flag in requests.
        @param wanted: Is DNSSEC desired?  If True, EDNS is enabled if
        required, and then the DO bit is set.  If False, the DO bit is
        cleared if EDNS is enabled.
        @type wanted: bool
        iN(RRoRRRtDO(R.twanted((s1/usr/lib64/python2.7/site-packages/dns/message.pytwant_dnssecs
cCstjj|j|j�S(s.Return the rcode.
        @rtype: int
        (RR8R7RR(R.((s1/usr/lib64/python2.7/site-packages/dns/message.pyR8scCs�tjj|�\}}|jdM_|j|O_|jdM_|j|O_|jdkr~|jdkr~d|_ndS(sPSet the rcode.
        @param rcode: the rcode
        @type rcode: int
        i�l��iN(RR8tto_flagsRRR(R.R8tvaluetevalue((s1/usr/lib64/python2.7/site-packages/dns/message.pyt	set_rcodescCstjj|j�S(s/Return the opcode.
        @rtype: int
        (RR6R7R(R.((s1/usr/lib64/python2.7/site-packages/dns/message.pyR6!scCs.|jdM_|jtjj|�O_dS(sTSet the opcode.
        @param opcode: the opcode
        @type opcode: int
        i��N(RRR6Rs(R.R6((s1/usr/lib64/python2.7/site-packages/dns/message.pyt
set_opcode'sN(RRRRR/R1R3R+R2RDRERHRKRt	rdatatypetNONER%RYRZRhRRRnRoRrR8RvR6Rw(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR	Cs.J 		3				
-!.	)*		
	t_WireReadercBs;eZdZeeed�Zd�Zd�Zd�ZRS(s�Wire format reader.

    @ivar wire: the wire-format message.
    @type wire: string
    @ivar message: The message object being built
    @type message: dns.message.Message object
    @ivar current: When building a message object from wire format, this
    variable contains the offset from the beginning of wire of the next octet
    to be read.
    @type current: int
    @ivar updating: Is the message a dynamic update?
    @type updating: bool
    @ivar one_rr_per_rrset: Put each RR into its own RRset?
    @type one_rr_per_rrset: bool
    @ivar ignore_trailing: Ignore trailing junk at end of request?
    @type ignore_trailing: bool
    @ivar zone_rdclass: The class of the zone in messages which are
    DNS dynamic updates.
    @type zone_rdclass: int
    cCs^tjj|�|_||_d|_t|_tjj	|_
||_||_||_
dS(Ni(Rtwiredatat
maybe_wraptwiretmessagetcurrentR%tupdatingt
rdataclasstINtzone_rdclasst
question_onlytone_rr_per_rrsettignore_trailing(R.R}R~R�R�R�((s1/usr/lib64/python2.7/site-packages/dns/message.pyR/Es					cCs|jr$|dkr$tjj�nx�td|�D]�}tjj|j|j�\}}|j	j
dk	r�|j|j	j
�}n|j||_t
jd|j|j|jd!�\}}|jd|_|j	j|j	j|||dtdt�|jr4||_q4q4WdS(s�Read the next I{qcount} records from the wire data and add them to
        the question section.
        @param qcount: the number of questions in the message
        @type qcount: intiis!HHiRVRWN(R�Rt	exceptiont	FormErrortxrangeRQt	from_wireR}RR~R'RR<tstructtunpackRYRR+R�(R.tqcounttitqnametusedRSRR((s1/usr/lib64/python2.7/site-packages/dns/message.pyt
_get_questionPs!	#	cCs�|js|jrt}nt}t}xjtd|�D]Y}|j}tjj|j	|j�\}}|}	|j
jdk	r�|j
|j
j�}n|j||_tjd|j	|j|jd!�\}
}}}
|jd|_|
tjjkr�||j
jk	s|rt�n||j
_||j
_|d@d?|j
_g|j
_|j}|
}x�|dkr�tjd|j	||d!�\}}|d}tjj||j	||�}|j
jj|�||}|d|}qfWt}n�|
tjjkr5||j
jko)||dks5t�n|j
jdkrVtd	��n|j
jj|	�}|dkr�td
|��n|	|j
_tj j!|j	|j|
�\|j
_"|j
_#tj j$|j	|	|t%t&j&��|j
j'||j|
|j
j(|j
j)|j
j*�|j
_(t|j
_+nK|dkrJd}n|jr�|tj,j-ksw|tj,j.kr�|}|j/}nd}|tj,j-ks�|tj,j.kr�||j
j0kr�tjj.}d}n9tj1j||
|j	|j|
|j
j�}|j2�}|j
j3r:|
tjj4kr:t}n|j
j5||||
||t|�}|dk	r�|j6||�n|j|
|_q7WdS(s/Read the next I{count} records from the wire data and add them to
        the specified section.
        @param section: the section of the message to which to add records
        @type section: list of dns.rrset.RRset objects
        @param count: the number of records to read
        @type count: intis!HHIHi
i�is!HHiis"got signed message without keyringskey '%s' unknownN(7R�R�R+R%R�RRRQR�R}R~R'RR<R�R�RxtOPTRRRRRRtoption_from_wireRPtTSIGRRRRLRRtget_algorithm_and_macRR$tvalidatetintttimeRR(R*R,R)R�tANYRyR�RtrdataRTR&tSOARYtadd(R.RJtcountRWtseen_optR�trr_startRQR�t
absolute_nameRSRRtttltrdlenRtoptslentotypetolentopttsecretRURTtrdR@((s1/usr/lib64/python2.7/site-packages/dns/message.pyt_get_sectionhs�		!	)			

											cCsHt|j�}|dkr$t�ntjd|jd �\|j_|j_}}}}d|_t	j
j|jj�r�t|_
n|j|�|jr�dS|j|jj|�|j|jj|�|j|jj|�|jr|j|krt�n|jjrD|jjrD|jjrD|jjj|j�ndS(sNRead a wire format DNS message and build a dns.message.Message
        object.is!HHHHHHN(tlenR}RR�R�R~RRRRR6R:R+R�R�R�R�RRRR�RR*R(R)tupdate(R.tlR�tancounttaucounttadcount((s1/usr/lib64/python2.7/site-packages/dns/message.pytread�s$	7	
		
(RRRR%R/R�R�R�(((s1/usr/lib64/python2.7/site-packages/dns/message.pyRz/s
		bR
c
Csttdd�}||_||_||_||_||_||_||_t||||	|
�}|j	�|S(s)Convert a DNS wire format message into a message
    object.

    @param keyring: The keyring to use if the message is signed.
    @type keyring: dict
    @param request_mac: If the message is a response to a TSIG-signed request,
    I{request_mac} should be set to the MAC of that request.
    @type request_mac: string
    @param xfr: Is this message part of a zone transfer?
    @type xfr: bool
    @param origin: If the message is part of a zone transfer, I{origin}
    should be the origin name of the zone.
    @type origin: dns.name.Name object
    @param tsig_ctx: The ongoing TSIG context, used when validating zone
    transfers.
    @type tsig_ctx: hmac.HMAC object
    @param multi: Is this message part of a multiple message sequence?
    @type multi: bool
    @param first: Is this message standalone, or the first of a multi
    message sequence?
    @type first: bool
    @param question_only: Read only up to the end of the question section?
    @type question_only: bool
    @param one_rr_per_rrset: Put each RR into its own RRset
    @type one_rr_per_rrset: bool
    @param ignore_trailing: Ignore trailing junk at end of request?
    @type ignore_trailing: bool
    @raises ShortHeader: The message is less than 12 octets long.
    @raises TrailingJunk: There were octets in the message past the end
    of the proper DNS message.
    @raises BadEDNS: An OPT record was in the wrong section, or occurred more
    than once.
    @raises BadTSIG: A TSIG record was not the last record of the additional
    data section.
    @rtype: dns.message.Message objectRi(
R	RRR&R'R(R*R,RzR�(
R}RRR&R'R(R*R,R�R�R�tmtreader((s1/usr/lib64/python2.7/site-packages/dns/message.pyR��s(								
t_TextReadercBs;eZdZd�Zd�Zd�Zd�Zd�ZRS(sText format reader.

    @ivar tok: the tokenizer
    @type tok: dns.tokenizer.Tokenizer object
    @ivar message: The message object being built
    @type message: dns.message.Message object
    @ivar updating: Is the message a dynamic update?
    @type updating: bool
    @ivar zone_rdclass: The class of the zone in messages which are
    DNS dynamic updates.
    @type zone_rdclass: int
    @ivar last_name: The most recently read name when building a message object
    from text format.
    @type last_name: dns.name.Name object
    cCsC||_tjj|�|_d|_tjj|_	t
|_dS(N(R~Rt	tokenizert	TokenizerttokRt	last_nameR�R�R�R%R�(R.ttextR~((s1/usr/lib64/python2.7/site-packages/dns/message.pyR/,s
		cCs�|jj�}|j}|dkr<|jj�|j_n:|dkr�x^tr�|jj�}|j�s�|jj|�Pn|jj	t
j	j|j�B|j_	qKWt
jj
|jj	�rvt|_qvn�|dkr|jj�|j_|jj|jjd>B|j_nb|dkr�|jjdkrAd|j_nx2tr�|jj�}|j�sy|jj|�Pn|jjt
j	j|j�B|j_qDWn�|dkr�|jj�|j_|jjdkrvd|j_qvn�|dkr6|jj�}|jj	t
jjt
jj|��B|j_	n@|d	krp|jj�}|jjt
jj|��nt�|jj�d
S(s5Process one line from the text format header section.RRRiteflagsiRR6R8N(R�RLRttget_intR~RR+t
is_identifiertungetRRRlR6R:R�RRtedns_from_textRt
get_stringRsRvR8Rtget_eol(R.RJttokentwhatR�((s1/usr/lib64/python2.7/site-packages/dns/message.pyt_header_line3sR			 			#	(c	CsS|jjdt�}|j�s?tjj|jd�|_	n|j	}|jj�}|j
�srtjj�nyCtj
j|j�}|jj�}|j
�s�tjj�nWn5tjjk
r�tjj�ntj
j}nXtjj|j�}|jj|jj|||dtdt�|jrB||_n|jj�dS(s7Process one line from the text format question section.twant_leadingRVRWN(R�RLR+t
is_whitespaceRRQRlRtRR�R�R�tSyntaxErrorR�R�RxR~RYRR�R�R�(R.RJR�RQRRRS((s1/usr/lib64/python2.7/site-packages/dns/message.pyt_question_lineas.		c
Csgd}|jjdt�}|j�sEtjj|jd�|_	n|j	}|jj�}|j
�sxtjj�ny@t
|jd�}|jj�}|j
�s�tjj�nWn/tjjk
r�tjj�n
d}nXyytjj|j�}|jj�}|j
�s,tjj�n|tjjksP|tjjkrb|}|j}nWn5tjjk
r�tjj�ntjj}nXtjj|j�}|jj�}|j�s|jj|�tjj|||jd�}|j�}	nd}tjj}	|jj|||||	|t|j�}
|dk	rc|
j||�ndS(sfProcess one line from the text format answer, authority, or
        additional data sections.
        R�iN(RR�RLR+R�RRQRlRtR�R�R�R�R�R�R�RyR�R�Rxt
is_eol_or_eofR�R�RTR~RYR�R�(R.RJRUR�RQR�RRRSR�RTR@((s1/usr/lib64/python2.7/site-packages/dns/message.pyt_rr_line~sT	
$	cCsR|j}d	}x<|jjtt�}|j�r7Pn|j�r1|jj�}|dkrj|j}n�|dks�|dkr�|j	}|j
j}n�|dks�|dkr�|j}|j
j
}nT|dks�|dkr�|j}|j
j}n$|dkr|j}|j
j}n|jj�qn|jj|�||�qd	S(
sNRead a text format DNS message and build a dns.message.Message
        object.tHEADERtQUESTIONtZONER_tPREREQR`tUPDATERbN(R�RR�RLR+R�t
is_commentRttupperR�R~RR�RRRR�R�(R.tline_methodRJR�tu((s1/usr/lib64/python2.7/site-packages/dns/message.pyR��s4					
(RRRR/R�R�R�R�(((s1/usr/lib64/python2.7/site-packages/dns/message.pyR�s		.		5cCs&t�}t||�}|j�|S(s�Convert the text format message into a message object.

    @param text: The text format message.
    @type text: string
    @raises UnknownHeaderField:
    @raises dns.exception.SyntaxError:
    @rtype: dns.message.Message object(R	R�R�(R�R�R�((s1/usr/lib64/python2.7/site-packages/dns/message.pyRl�s
	
cCs�tjdkrt}d}nt}d}t||�rQt||�}t}nt}zt|�}Wd|r}|j	�nX|S(sRead the next text format message from the specified file.

    @param f: file or string.  If I{f} is a string, it is treated
    as the name of a file to open.
    @raises UnknownHeaderField:
    @raises dns.exception.SyntaxError:
    @rtype: dns.message.Message objectitrURgN(
tsyst
hexversiont
basestringRjRAtfileR+R%Rltclose(tftstr_typetoptst
want_closeR�((s1/usr/lib64/python2.7/site-packages/dns/message.pyt	from_file�s			iic	
	Cs�t|ttf�r*tjj|�}nt|ttf�rTtjj|�}nt|ttf�r~tjj|�}nt�}	|	j	tj	j
O_	|	j|	j|||dt
dt
�|	j|||||�|	j|�|	S(sWMake 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.

    @param qname: The query name.
    @type qname: dns.name.Name object or string
    @param rdtype: The desired rdata type.
    @type rdtype: int
    @param rdclass: The desired rdata class; the default is class IN.
    @type rdclass: int
    @param 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 use_edns: int or bool or None
    @param want_dnssec: Should the query indicate that DNSSEC is desired?
    @type want_dnssec: bool
    @param ednsflags: EDNS flag values.
    @type ednsflags: int
    @param payload: The EDNS sender's payload field, which is the maximum
    size of UDP datagram the sender can handle.
    @type payload: int
    @param request_payload: The EDNS payload size to use when sending
    this message.  If not specified, defaults to the value of payload.
    @type request_payload: int or None
    @param options: The EDNS options
    @type options: None or list of dns.edns.Option objects
    @see: RFC 2671
    @rtype: dns.message.Message objectRVRW(RARjRkRRQRlRxR�R	RtRDRYRR+RoRr(
R�RSRRRoRrRRRRR�((s1/usr/lib64/python2.7/site-packages/dns/message.pyt
make_querys$	
i i,cCs|jtjj@r(tjjd��ntjj|j�}tjj|jtjj@B|_|r{|jtjj	O_n|j
|j��t|j
�|_
|jdkr�|jdd||j�n|jr|j|j|j|ddd|j�|j|_n|S(s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.

    @param query: the query to respond to
    @type query: dns.message.Message object
    @param recursion_available: should RA be set in the response?
    @type recursion_available: bool
    @param our_payload: payload size to advertise in EDNS responses; default
    is 8192.
    @type our_payload: int
    @param fudge: TSIG time fudge; default is 300 seconds.
    @type fudge: int
    @rtype: dns.message.Message objects&specified query message is not a queryiR
N(RRRFR�R�R~R	RR�tRARwR6tlistRRRoRR)RnRRRRR$R(tquerytrecursion_availabletour_payloadR"tresponse((s1/usr/lib64/python2.7/site-packages/dns/message.pyt
make_response6s 	
(,RR4trandomR�R�R�tdns.ednsRt
dns.exceptiont	dns.flagstdns.namet
dns.opcodetdns.entropyt	dns.rcodet	dns.rdatatdns.rdataclasst
dns.rdatatypet	dns.rrsettdns.renderertdns.tsigtdns.wiredataR�R�RRtDNSExceptionRRRRtobjectR	RzRR%R+R�R�RlR�R�R�R�R�(((s1/usr/lib64/python2.7/site-packages/dns/message.pyt<module>sP���	5�			0

Filemanager

Name Type Size Permission Actions
rdtypes Folder 0755
.__init__.pyo.40009 File 765 B 0644
.e164.pyo.40009 File 2.76 KB 0644
.edns.pyo.40009 File 5.2 KB 0644
.entropy.pyo.40009 File 3.7 KB 0644
.exception.pyo.40009 File 1.56 KB 0644
.flags.pyo.40009 File 2.58 KB 0644
.hash.pyo.40009 File 2.11 KB 0644
.inet.pyo.40009 File 2.61 KB 0644
.ipv4.pyo.40009 File 1.37 KB 0644
.ipv6.pyo.40009 File 3.44 KB 0644
.message.pyo.40009 File 36.39 KB 0644
.name.pyo.40009 File 23 KB 0644
.namedict.pyo.40009 File 1.92 KB 0644
.node.pyo.40009 File 6.15 KB 0644
.opcode.pyo.40009 File 2.49 KB 0644
.query.pyo.40009 File 15.31 KB 0644
.rcode.pyo.40009 File 2.92 KB 0644
.rdata.pyo.40009 File 16.59 KB 0644
.rdataclass.pyo.40009 File 2.96 KB 0644
.rdatatype.pyo.40009 File 5.29 KB 0644
.resolver.pyo.40009 File 37.16 KB 0644
.reversename.pyo.40009 File 2.4 KB 0644
.rrset.pyo.40009 File 6.17 KB 0644
.set.pyo.40009 File 9.81 KB 0644
.tokenizer.pyo.40009 File 16.92 KB 0644
.tsig.pyo.40009 File 8.08 KB 0644
.tsigkeyring.pyo.40009 File 1.16 KB 0644
.ttl.pyo.40009 File 1.48 KB 0644
.update.pyo.40009 File 8.27 KB 0644
.version.pyo.40009 File 560 B 0644
.wiredata.pyo.40009 File 2.19 KB 0644
.zone.pyo.40009 File 33.52 KB 0644
__init__.py File 1.3 KB 0644
__init__.pyc File 765 B 0644
__init__.pyo File 765 B 0644
dnssec.py File 14.37 KB 0644
dnssec.pyc File 13.46 KB 0644
dnssec.pyo File 13.38 KB 0644
e164.py File 3.01 KB 0644
e164.pyc File 2.76 KB 0644
e164.pyo File 2.76 KB 0644
edns.py File 4.21 KB 0644
edns.pyc File 5.2 KB 0644
edns.pyo File 5.2 KB 0644
entropy.py File 3.79 KB 0644
entropy.pyc File 3.7 KB 0644
entropy.pyo File 3.7 KB 0644
exception.py File 1.29 KB 0644
exception.pyc File 1.56 KB 0644
exception.pyo File 1.56 KB 0644
flags.py File 2.62 KB 0644
flags.pyc File 2.58 KB 0644
flags.pyo File 2.58 KB 0644
grange.py File 1.83 KB 0644
grange.pyc File 1.15 KB 0644
grange.pyo File 1.08 KB 0644
hash.py File 2.34 KB 0644
hash.pyc File 2.11 KB 0644
hash.pyo File 2.11 KB 0644
inet.py File 3.16 KB 0644
inet.pyc File 2.61 KB 0644
inet.pyo File 2.61 KB 0644
ipv4.py File 1.81 KB 0644
ipv4.pyc File 1.37 KB 0644
ipv4.pyo File 1.37 KB 0644
ipv6.py File 4.97 KB 0644
ipv6.pyc File 3.44 KB 0644
ipv6.pyo File 3.44 KB 0644
message.py File 41.63 KB 0644
message.pyc File 36.39 KB 0644
message.pyo File 36.39 KB 0644
name.py File 21.82 KB 0644
name.pyc File 23 KB 0644
name.pyo File 23 KB 0644
namedict.py File 2.06 KB 0644
namedict.pyc File 1.92 KB 0644
namedict.pyo File 1.92 KB 0644
node.py File 5.89 KB 0644
node.pyc File 6.15 KB 0644
node.pyo File 6.15 KB 0644
opcode.py File 2.55 KB 0644
opcode.pyc File 2.49 KB 0644
opcode.pyo File 2.49 KB 0644
query.py File 17.89 KB 0644
query.pyc File 15.31 KB 0644
query.pyo File 15.31 KB 0644
rcode.py File 3.03 KB 0644
rcode.pyc File 2.92 KB 0644
rcode.pyo File 2.92 KB 0644
rdata.py File 15.34 KB 0644
rdata.pyc File 16.59 KB 0644
rdata.pyo File 16.59 KB 0644
rdataclass.py File 3.22 KB 0644
rdataclass.pyc File 2.96 KB 0644
rdataclass.pyo File 2.96 KB 0644
rdataset.py File 11.28 KB 0644
rdataset.pyc File 11.08 KB 0644
rdataset.pyo File 11.03 KB 0644
rdatatype.py File 5.07 KB 0644
rdatatype.pyc File 5.29 KB 0644
rdatatype.pyo File 5.29 KB 0644
renderer.py File 11.63 KB 0644
renderer.pyc File 10.85 KB 0644
renderer.pyo File 10.75 KB 0644
resolver.py File 45.35 KB 0644
resolver.pyc File 37.16 KB 0644
resolver.pyo File 37.16 KB 0644
reversename.py File 3.03 KB 0644
reversename.pyc File 2.4 KB 0644
reversename.pyo File 2.4 KB 0644
rrset.py File 5.76 KB 0644
rrset.pyc File 6.17 KB 0644
rrset.pyo File 6.17 KB 0644
set.py File 7.66 KB 0644
set.pyc File 9.81 KB 0644
set.pyo File 9.81 KB 0644
tokenizer.py File 17.54 KB 0644
tokenizer.pyc File 16.92 KB 0644
tokenizer.pyo File 16.92 KB 0644
tsig.py File 8.1 KB 0644
tsig.pyc File 8.08 KB 0644
tsig.pyo File 8.08 KB 0644
tsigkeyring.py File 1.61 KB 0644
tsigkeyring.pyc File 1.16 KB 0644
tsigkeyring.pyo File 1.16 KB 0644
ttl.py File 2.13 KB 0644
ttl.pyc File 1.48 KB 0644
ttl.pyo File 1.48 KB 0644
update.py File 9.92 KB 0644
update.pyc File 8.27 KB 0644
update.pyo File 8.27 KB 0644
version.py File 1.24 KB 0644
version.pyc File 560 B 0644
version.pyo File 560 B 0644
wiredata.py File 2.53 KB 0644
wiredata.pyc File 2.19 KB 0644
wiredata.pyo File 2.19 KB 0644
zone.py File 37.94 KB 0644
zone.pyc File 33.52 KB 0644
zone.pyo File 33.52 KB 0644