3
>DéW‰Ë ã @ s¶ d Z ddlZddlZddlZddlZyddlZW n ek
rL ddlZY nX ddl Z
ddlZ
ddlZ
ddl
Z
ddlZ
ddlZ
ddlZ
ddlZ
ddlZ
ddlZ
ddlZ
ddlZ
ddlmZmZ ejdkròyddlZW n ek
rð ddlZY nX G dd„ de
jjƒZG dd „ d e
jjƒZe
jj Z G d
d„ de
jjƒZ!G dd
„ d
e
jjƒZ"G dd„ de
jjƒZ#G dd„ de
jjƒZ$G dd„ de
jjƒZ%G dd„ de&ƒZ'G dd„ de&ƒZ(G dd„ de&ƒZ)G dd„ de&ƒZ*G dd„ de&ƒZ+da,dd„ Z-d d!„ Z.e
j/j0e
j1j2d"dd#dfd$d%„Z3e
j1j2d"dfd&d'„Z4ej5ej6gej7ej8giZ9da:ej;Zej?Z@ejAZBejCZDejEZFddejGdddfd(d)„ZHd8d*d+„ZId9d,d-„ZJd.d/„ ZKd0d1„ ZLd2d3„ ZMd:d4d5„ZNd6d7„ ZOdS );z{DNS stub resolver.
@var default_resolver: The default resolver object
@type default_resolver: dns.resolver.Resolver objecté Né )ÚxrangeÚstring_typesÚwin32c sV e Zd ZdZeddgƒZdZddd„Z‡ fdd„Zd d
„ Z e
e dd�Z d
d„ Z‡ ZS )ÚNXDOMAINz"The DNS query name does not exist.ÚqnamesÚ responsesNc C s\ t |tttfƒstdƒ‚t|ƒdkr,tdƒ‚|d kr:i }nt |tƒsLtdƒ‚t||d�}|S )Nz#qnames must be a list, tuple or setr z(qnames must contain at least one elementz(responses must be a dict(qname=response))r r )Ú
isinstanceÚlistÚtupleÚsetÚAttributeErrorÚlenÚdict)Úselfr r Úkwargs© r ú/usr/lib/python3.6/resolver.pyÚ
_check_kwargs9 s
zNXDOMAIN._check_kwargsc s^ d| j krtt| ƒjƒ S | j d }t|ƒdkr4d}n| jd d… }djtt|ƒƒ}d||f S )Nr r zNone of DNS query names existz, z%s: %séÿÿÿÿ) r Úsuperr Ú__str__r Ú__doc__ÚjoinÚmapÚstr)r r Úmsg)Ú __class__r r r E s
zNXDOMAIN.__str__c C s d| j krtdƒ‚tjj}tjj}d }xj| j d D ]\}| j d | }x4|jD ]*}|j|ksL|j |krfqL|j
d jjƒ }qLW |d k r2tj
j|ƒS q2W | j d d S )Nr zparametrized exception requiredr r )r Ú TypeErrorÚdnsÚ
rdataclassÚINÚ rdatatypeÚCNAMEÚanswerÚrdtypeÚrdclassÚitemsÚtargetÚto_textÚnameÚ from_text)r r! r# ÚcnameÚqnameÚresponser$ r r r Úcanonical_nameP s
zNXDOMAIN.canonical_namez%Return the unresolved canonical name.)Údocc C s| t | jjdg ƒƒ}t| jjdi ƒƒ}|jjdi ƒ}x<|jjdg ƒD ]*}||krX|j|ƒ ||krB|| ||<