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) nameserversloopkwargsreturncKsV|p t|_|ddtjfd|ji||_|r<||_t |_ t |_ d|_ dS)NZ sock_state_cb) asyncioZget_event_looprpoppycaresChannel_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_dSrr )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#cbrrrr5Ms  zDNSResolver.query)r)familyrcCs0tj|jd}t|j|}|j||||SNr,)rr2rr3r4r(r gethostbyname)rr)r7r#r6rrrr9]szDNSResolver.gethostbyname)namercCs.tj|jd}t|j|}|j|||Sr8)rr2rr3r4r(r gethostbyaddr)rr:r#r6rrrr;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_BADrBrDr process_fd)rr=rHZread_fdZwrite_fdrrrrAszDNSResolver._handle_eventcCs<|js |jr2|jtjtj|jd|j|_ nd|_ dSr@) rrrrJrrIrrErFrr!rrrrFs zDNSResolver._timer_cb)NN)N)__name__ __module__ __qualname__rrstrrZAbstractEventLooprrpropertyrrr setter staticmethodr2intr(r5socketZ AddressFamilyr9r;r<boolrrArFrrrrr.s(   r)#rr3rrStypingrrrrr __version____all__rBrDZ 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_ANYr1rrrrrs: