MOON
Server: Apache/2.2.34 (Unix) mod_ssl/2.2.34 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 FrontPage/5.0.2.2635
System: Linux server.asjudinet.com 2.6.32-042stab141.3 #1 SMP Fri Nov 15 22:45:34 MSK 2019 i686
User: asjudine (504)
PHP: 5.2.17
Disabled: NONE
Upload Files
File: //usr/local/ssl/local/ssl/lib/python2.4/site-packages/dns/update.pyc
mò
!`Nc@sedZdkZdkZdkZdkZdkZdkZdkZdei	i
fd„ƒYZdS(sDNS Dynamic Update SupportNtUpdatecBs€tZeiiddeiid„Zddd„Z	d„Z
d„Zd„Zd„Z
d„Zdd„Zdd	d
„ZRS(Nc	Csñtt|ƒiƒ|itiitiiƒO_t	|ttfƒoti
i|ƒ}n||_t	|tƒotii|ƒ}n||_|i|i|i|tiidtdtƒ|dj	o|i||d|ƒndS(säInitialize a new DNS Update object.

        @param zone: The zone which is being updated.
        @type zone: A dns.name.Name or string
        @param rdclass: The class of the zone; defaults to dns.rdataclass.IN.
        @type rdclass: An int designating the class, or a string whose value
        is the name of a class.
        @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 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
        tcreatetforce_uniquet	algorithmN(tsuperRtselft__init__tflagstdnstopcodetto_flagstUPDATEt
isinstancetzonetstrtunicodetnamet	from_texttorigintrdclasst
rdataclasstzone_rdclasst
find_rrsettquestiont	rdatatypetSOAtTruetkeyringtNonetuse_tsigtkeynametkeyalgorithm(RR
RRRR((t./usr/lib/python2.4/site-packages/dns/update.pyRs!		
c	Csd|djo
|i}n|iƒ}|i|||i|i	||ttƒ}|i
||ƒdS(s&Add a single RR to the update section.N(tsectionRRt	authoritytrdtcoversRRRtrdtypetdeletingRtrrsettaddtttl(RRR)R#R&R!R$R'((R t_add_rrAs

c
GsÓt|ttfƒotii|dƒ}nt|dtii	ƒo`xƒ|D]Q}|o|i
||iƒnx*|D]"}|i||i|d|ƒq{WqPWn't|ƒ}t|idƒƒ}	t|dtiiƒoP|o|i
||diƒnxÆ|D]}|i||	|d|ƒq
Wnœ|idƒ}t|tƒotii|ƒ}n|o|i
||ƒnxH|D]@}tii|i|||iƒ}|i||	|d|ƒq‹WdS(sœAdd records.  The first argument is the replace mode.  If
        false, RRs are added to an existing RRset; if true, the RRset
        is replaced with the specified contents.  The second
        argument is the section to add to.  The third argument
        is always a name.  The other arguments can be:

                - rdataset...

                - ttl, rdata...

                - ttl, rdtype, string...iR!N(RRRRRRRtargstrdatasettRdatasettrdstreplaceRtdeleteR%R#R*R)R!tlisttinttpoptrdatatRdataRtsRR(
RR/R!RR+R%R.R#R6R)((R t_addKs:(!cGs|it|i||ŒdS(sÁAdd records.  The first argument is always a name.  The other
        arguments can be:

                - rdataset...

                - ttl, rdata...

                - ttl, rdtype, string...N(RR7tFalseR"RR+(RRR+((R R(ssc	Gst|ttfƒotii|dƒ}nt|ƒdjoC|i
|i|tii
tii
tiitii
ttƒ}nŠt|dtiiƒoBxl|D]3}x*|D]"}|i|d|tiiƒq³Wq¦Wn.t|ƒ}t|dtiiƒo1x|D]"}|i|d|tiiƒqWn×|idƒ}t|ttfƒotii|ƒ}nt|ƒdjo:|i
|i||i|tiitii
ttƒ}nOxK|D]C}tii|i|||iƒ}|i|d|tiiƒqÇWdS(sÚDelete records.  The first argument is always a name.  The other
        arguments can be:

                - I{nothing}

                - rdataset...

                - rdata...

                - rdtype, [string...]iN(RRRRRRRtlenR+RRR"RtANYRtNONERR'R,R-R.R#R*R1R4R5R3R%RR6R(RRR+R%R.R#R6R'((R R0~s@
($			cGs|it|i||ŒdS(sQReplace records.  The first argument is always a name.  The other
        arguments can be:

                - rdataset...

                - ttl, rdata...

                - ttl, rdtype, string...

        Note that if you want to replace the entire node, you should do
        a delete of the name followed by one or more calls to add.N(RR7RR"RR+(RRR+((R R/©sc	GsŠt|ttfƒotii|dƒ}nt|ƒdjo=|i
|i|tii
tii
tiidttƒ}nt|dtiiƒp-t|dtiiƒpt|ƒdjoWt|dtiiƒp t|ƒ}|iddƒn|it|i||Œnj|d}t|ttfƒotii|ƒ}n|i
|i|tii
|tiidttƒ}dS(sBRequire that an owner name (and optionally an rdata type,
        or specific rdataset) exists as a prerequisite to the
        execution of the update.  The first argument is always a name.
        The other arguments can be:

                - rdataset...

                - rdata...

                - rdtype, string...iiN(RRRRRRRR9R+RRtanswerRR:RR;RR'R,R-R4R5R1tinsertR7R8R%(RRR+R'R%((R tpresent¸s(
G
c	CsÜt|ttfƒotii|dƒ}n|djo=|i	|i
|tiiti
iti
idttƒ}n`t|ttfƒoti
i|ƒ}n|i	|i
|tii|ti
idttƒ}dS(s‚Require that an owner name (and optionally an rdata type) does
        not exist as a prerequisite to the execution of the update.N(RRRRRRRR%RRR<RR;RR:RR'(RRR%R'((R tabsentÜs
iÿÿcCs3|djo
|i}ntt|ƒi||ƒS(scReturn a string containing the update in DNS compressed wire
        format.
        @rtype: stringN(RRRRRtto_wiretmax_size(RRRA((R R@ïs

(t__name__t
__module__RRtINRttsigtdefault_algorithmRR*R7R(R0R/R>R?R@(((R Rs!&
	(		+		$(t__doc__tdns.messageRtdns.namet
dns.opcodet	dns.rdatatdns.rdataclasstdns.rdatasettdns.tsigtmessagetMessageR(RR((R t?s