U 9` @sddlZddlZddlZddlZddlmZmZmZmZddl m Z dZ dZ dZ dZejejejejejejejejejejejejd Zejejejejej d Z!Gd d d Z"dS) N)AnyListOptionalSet)errorz3.0.0) DNSResolverr) AZAAAAANYZCAAZCNAMEZMXZNAPTRZNSZPTRZSOAZSRVZTXT)INZCHAOSZHSZNONEr c@seZdZd eeeeejeddddZ e e j dddZ e jeeddd dZ eejeedd d d Zd!eeeejd ddZeejejdddZeejdddZddddZeeeddddZeeddddZddddZdS)"rN) nameserversloopkwargsreturncKsd|p t|_|jdk st|ddtjfd|ji||_|rJ||_ t |_ t |_ d|_ dS)NZ sock_state_cb)asyncioZget_event_looprAssertionErrorpoppycaresChannel_sock_state_cb_channelr set _read_fds _write_fds_timer)selfr rrr@/opt/alt/python38/lib/python3.8/site-packages/aiodns/__init__.py__init__/s zDNSResolver.__init__)rcCs|jjSNrZserversrrrrr <szDNSResolver.nameservers)valuercCs ||j_dSr r!)rr#rrrr @s)futresulterrornorcCs>|r dS|dk r0|t|tj|n ||dSr )Z cancelledZ set_exceptionrZDNSErrorrerrnostrerrorZ set_result)r$r%r&rrr _callbackDs zDNSResolver._callback)hostqtypeqclassrcCsz t|}Wn"tk r.td|YnX|dk rhz t|}Wn"tk rftd|YnXtj|jd}t |j |}|j j ||||d|S)Nzinvalid query type: {}zinvalid query class: {}r)Z query_class) query_type_mapKeyError ValueErrorformatquery_class_maprFuturer functoolspartialr)rquery)rr*r+r,r$cbrrrr6Ms  zDNSResolver.query)r*familyrcCs0tj|jd}t|j|}|j||||SNr-)rr3rr4r5r)r gethostbyname)rr*r8r$r7rrrr:]szDNSResolver.gethostbyname)namercCs.tj|jd}t|j|}|j|||Sr9)rr3rr4r5r)r gethostbyaddr)rr;r$r7rrrr<cszDNSResolver.gethostbyaddrcCs|jdSr )rcancelr"rrrr=iszDNSResolver.cancel)fdreadablewritablercCs|s|rn|r,|j||j|t|j||rP|j||j|t|j||j dkr|j d|j |_ nj||jkr|j ||j |||jkr|j ||j||js|js|j dk r|j d|_ dSNg?)rZ add_reader _handle_eventREADraddZ add_writerWRITErr call_later _timer_cbdiscardZ remove_readerZ remove_writerr=)rr>r?r@rrrrls$          zDNSResolver._sock_state_cb)r>eventrcCs8tj}tj}|tkr|}n |tkr&|}|j||dSr )rARES_SOCKET_BADrCrEr process_fd)rr>rIZread_fdZwrite_fdrrrrBszDNSResolver._handle_eventcCs<|js |jr2|jtjtj|jd|j|_ nd|_ dSrA) rrrrKrrJrrFrGrr"rrrrGs zDNSResolver._timer_cb)NN)N)__name__ __module__ __qualname__rrstrrZAbstractEventLooprrpropertyrrr setter staticmethodr3intr)r6socketZ AddressFamilyr:r<r=boolrrBrGrrrrr.s(   r)#rr4rrTtypingrrrrr __version____all__rCrEZ QUERY_TYPE_AZQUERY_TYPE_AAAAZQUERY_TYPE_ANYZQUERY_TYPE_CAAZQUERY_TYPE_CNAMEZ QUERY_TYPE_MXZQUERY_TYPE_NAPTRZ QUERY_TYPE_NSZQUERY_TYPE_PTRZQUERY_TYPE_SOAZQUERY_TYPE_SRVZQUERY_TYPE_TXTr.ZQUERY_CLASS_INZQUERY_CLASS_CHAOSZQUERY_CLASS_HSZQUERY_CLASS_NONEZQUERY_CLASS_ANYr2rrrrrs: