3 ¢báW ã @s´dZddlZddlmZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZeeeee e e e e eeedœ Zedd„ejƒDƒƒZGdd„dejjƒZdd„Zdd„Zdd„Zdd„ZdS)zDNS Result Codes.éNé)Úlongéééééééé é é) ÚNOERRORÚFORMERRÚSERVFAILÚNXDOMAINÚNOTIMPÚREFUSEDÚYXDOMAINÚYXRRSETÚNXRRSETÚNOTAUTHÚNOTZONEÚBADVERSccs|]\}}||fVqdS)N©)Ú.0ÚxÚyrrú/usr/lib/python3.6/rcode.pyú 6src@seZdZdZdS)Ú UnknownRcodezA DNS rcode is unknown.N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrr 9sr cCsB|jƒr$t|ƒ}|dkr$|dkr$|Stj|jƒƒ}|dkr>t‚|S)zšConvert text into an rcode. @param text: the textual rcode @type text: string @raises UnknownRcode: the rcode is unknown @rtype: int riÿN)ÚisdigitÚintÚ_by_textÚgetÚupperr )ÚtextÚvrrrÚ from_text>s r,cCs0|d@|d?d@B}|dks$|dkr,tdƒ‚|S)zîReturn the rcode value encoded by flags and ednsflags. @param flags: the DNS flags @type flags: int @param ednsflags: the EDNS flags @type ednsflags: int @raises ValueError: rcode is < 0 or > 4095 @rtype: int ééiðriÿzrcode must be >= 0 and <= 4095)Ú ValueError)ÚflagsZ ednsflagsÚvaluerrrÚ from_flagsQs r2cCs8|dks|dkrtdƒ‚|d@}t|d@ƒd>}||fS)z½Return a (flags, ednsflags) tuple which encodes the rcode. @param value: the rcode @type value: int @raises ValueError: rcode is < 0 or > 4095 @rtype: (int, int) tuple riÿzrcode must be >= 0 and <= 4095r-iðr.)r/r)r1r+ZevrrrÚto_flagsbs r3cCstj|ƒ}|dkrt|ƒ}|S)zbConvert rcode into text. @param value: the rcode @type value: int @rtype: string N)Ú _by_valuer(Ústr)r1r*rrrÚto_textrs r6)r$Z dns.exceptionZdnsZ_compatrrrrrrrrrrrrrr'ÚdictÚitemsr4Z exceptionZ DNSExceptionr r,r2r3r6rrrrÚs@