3 ܳjÍ’�@s ddlmZed�kr&dd�Ze�Z[n"ed�kr@dd�Ze�Z[nddlZ[yeZWnek rfYnXy ddlZ Wne k r�ddl Z YnXd�d d �Z d d �Z dd�Z dd�Zy eZd ZWn(e jk r�Gdd�d�ZdZYnXdd�ZejZGdd�de�ZejZee�ejZejZejZejZejZejZejZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&ej'Z'ej(Z(ej)Z)ej*Z*ej+Z+ej,Z,ej-Z-ej.Z.ej/Z/ej0Z0ej1Z1ej2Z2ej3Z3ej4Z4ej5Z5ej6Z6ej7Z7ej8Z8ej9Z9ej:Z:ej;Z;ejZ>ej?Z?ej@Z@ejAZAejBZBejCZCejDZDejEZEejFZFejGZGejHZHejIZIejJZJejKZKejLZLejMZMejNZNejOZOejPZPejQZQejRZRejSZSejTZTejUZUejVZVejWZWejXZXdd�ZYejYZYdd�ZZejZZZdd�Z[ej[Z[Gdd�de�Z\ej]Z]e]e\�d d!�Z^ej^Z^d"d#�Z_ej_Z_d$d%�Z`ej`Z`Gd&d'�d'e�ZaejbZbebea�Gd(d)�d)e�ZcejdZdedec�Gd*d+�d+e�ZeejfZfefee�Gd,d-�d-�ZgGd.d/�d/�ZhGd0d1�d1�Zid2d3�ZjejjZjd4d5�ZkejkZkd6d7�ZlejlZld8d9�ZmejmZmGd:d;�d;e�ZnejoZoeoen�Gdd?�d?e�ZrejsZseser�Gd@dA�dA�ZtGdBdC�dC�ZudDdE�ZvejvZvdFdG�ZwejwZwGdHdI�dIe�ZxejyZyeyex�dJdK�ZzejzZzdLdM�Z{ej{Z{dNdO�Z|ej|Z|dPdQ�Z}ej}Z}dRdS�Z~ej~Z~dTdU�ZejZdVdW�Z�ej�Z�GdXdY�dYe�Z�ej�Z�e�e��GdZd[�d[e�Z�ej�Z�e�e��Gd\d]�d]e�Z�ej�Z�e�e��Gd^d_�d_e�Z�ej�Z�e�e��d`da�Z�ej�Z�dbdc�Z�ej�Z�Gddde�dee�Z�ej�Z�e�e��dfdg�Z�ej�Z�Gdhdi�die�Z�ej�Z�e�e��djdk�Z�ej�Z�Gdldm�dme�Z�ej�Z�e�e��ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�Gdndo�do�Z�Gdpdq�dq�Z�drds�Z�ej�Z�dtdu�Z�ej�Z�dvdw�Z�ej�Z�dxdy�Z�ej�Z�dzd{�Z�ej�Z�d|d}�Z�ej�Z�d~d�Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�Gd�d��d�e�Z�ej�Z�e�e��Gd�d��d�e�Z�ej�Z�e�e��Gd�d��d�e�Z�ej�Z�e�e��Gd�d��d�e�Z�ej�Z�e�e��Gd�d��d�e�Z�ej�Z�e�e��Gd�d��d�e�Z�ej�Z�e�e��d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�ej�Z�d�d��Z�ej�Z�Gd�d��d��Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�d��Z�ej�Z�d�dÄZ�ej�Z�d�dÅ„Z�ej�Z�d�dÇ„Z�ej�Z�d�dɄ�Ze�j�Zd�d˄�Ze�j�Zd�d̈́�Ze�j�Zd�d�dЄ�Zd�d҄�Ze�j�Zd�dԄ�Ze�j�Zd�dք�Ze�j�Zd�d؄�Ze�j�Zd�dڄ�Ze�j�Zd�d܄�Z e�j �Z d�dބ�Z e�j �Z d�d���Z e�j �Z dS)��)� version_info��c CsTddl}tjd�d}dj|df�jd�}y |j|�Stk rN|jd�SXdS)Nr�.�_unboundmodule)� importlib�__name__� rpartition�join�lstrip� import_module� ImportError)rZpkgZmname�r�%/usr/lib64/python3.6/unboundmodule.py�swig_import_helper s r�cCs~ddlm}ddl}d}y|jd|t�g�\}}}Wntk rPddl}|SXz|jd|||�}Wd|dk rx|j�X|S)Nr)�dirnamer) Zos.pathr�imp� find_module�__file__r r� load_module�close)rr�fp�pathname� descriptionrZ_modrrrrs  N�cCs�|dkr|jj|�S|dkr8t|�jdkr8||j|<dS|jj|d�}|rT|||�S|sxtrltj |||�q�||j|<n t d|��dS)N�thisown�thisZ SwigPyObjectzYou cannot add attributes to %s) r�own�typer�__dict__�__swig_setmethods__�get� _newclass�object� __setattr__�AttributeError)�self� class_type�name�valueZstatic�methodrrr�_swig_setattr_nondynamic3s    r,cCst||||d�S)Nr)r,)r'r(r)r*rrr� _swig_setattrFsr-cCsB|dkr|jj�S|jj|d�}|r,||�Std|j|f��dS)Nrz!'%s' object has no attribute '%s')rr�__swig_getmethods__r"r&r)r'r(r)r+rrr� _swig_getattrJs  r/c CsDyd|jj�}Wntjk r,d}YnXd|jj|jj|fS)Nz proxy of �z <%s.%s; %s >)r�__repr__� __builtin__� Exception� __class__� __module__r)r'Zstrthisrrr� _swig_reprSs  r6c@s eZdZdS)�_objectN)rr5� __qualname__rrrrr7^sr7cCs tj||�S)N)r�GetNameAsLabelList)r)�lenrrrr9csr9c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e rhszquery_info.cCs t|t|�S)N)r/r;)r'r)rrrr<js�qtype�qclasscCs t|j�S)N)�sldns_wire2str_typer=)r'rrr�_get_qtype_strsszquery_info._get_qtype_strcCs t|j�S)N)�sldns_wire2str_classr>)r'rrr�_get_qclass_strvszquery_info._get_qclass_strcCs t|j�S)N)� dnameAsStr�qname)r'rrr�_get_qname_str}szquery_info._get_qname_strc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_query_infor�appendr2r3)r'rrrr�__init__�s zquery_info.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.� __getattr__r6r1rZquery_info_qtype_getr#�_swig_propertyr=Zquery_info_qclass_getr>r@�propertyZ qtype_strrBZ qclass_str� _get_qnamerD�_get_qname_componentsZ qname_listrEZ qname_strrGZdelete_query_info�__swig_destroy__�__del__rrrrr;fs,      r;cCs tj|�S)N)rrK)�qrrrrK�srKcCs tj|�S)N)rrL)rOrrrrL�srLcCs tj|�S)N)rrC)�dnamerrrrC�srCc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e rcCs t|t|�S)N)r/rQ)r'r)rrrr<�s�flagsr� rrset_classcCsttj|j��S)N)r?r�ntohsr)r'rrr� _get_type_str�szpacked_rrset_key._get_type_strcCsttj|j��S)N)rArrTrS)r'rrr�_get_class_str�szpacked_rrset_key._get_class_strcCs t|j�S)N)rCrP)r'rrr�_get_dname_str�szpacked_rrset_key._get_dname_strc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_packed_rrset_keyrrFr2r3)r'rrrrrG�s zpacked_rrset_key.__init__cCsdS)Nr)r'rrrr<sN)!rr5r8r!r%r.rHr6r1rZpacked_rrset_key_flags_getr#rIrRZpacked_rrset_key_type_getrZ packed_rrset_key_rrset_class_getrSrUrJZtype_strrVZrrset_class_str� _get_dnamerP�_get_dname_components� dname_listrW� dname_strrGZdelete_packed_rrset_keyrMrNrrrrrQ�s2        rQcCs tj|�S)N)rrT)ZnetshortrrrrTsrTcCs tj|�S)N)rrX)�krrrrX srXcCs tj|�S)N)rrY)r\rrrrY srYc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Zdd�Ze jZd d�Zd S) �ub_packed_rrset_keycCst|t||�S)N)r-r])r'r)r*rrrr<szub_packed_rrset_key.cCs t|t|�S)N)r/r])r'r)rrrr<s�entry�id�rkc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_ub_packed_rrset_keyrrFr2r3)r'rrrrrG#s zub_packed_rrset_key.__init__cCsdS)Nr)r'rrrr<*sN)rr5r8r!r%r.rHr6r1rZub_packed_rrset_key_entry_setZub_packed_rrset_key_entry_getr#rIr^Zub_packed_rrset_key_id_setZub_packed_rrset_key_id_getr_Zub_packed_rrset_key_rk_setZub_packed_rrset_key_rk_getr`rGZdelete_ub_packed_rrset_keyrMrNrrrrr]s(      r]c@sLeZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z d d �Z!e j"Z#d d�Z$dS)� lruhash_entrycCst|t||�S)N)r-ra)r'r)r*rrrr<0szlruhash_entry.cCs t|t|�S)N)r/ra)r'r)rrrr<2s�lock� overflow_next�lru_next�lru_prev�hash�key�datac Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_lruhash_entryrrFr2r3)r'rrrrrGQs zlruhash_entry.__init__cCsdS)Nr)r'rrrr<XsN)%rr5r8r!r%r.rHr6r1rZlruhash_entry_lock_setZlruhash_entry_lock_getr#rIrbZlruhash_entry_overflow_next_setZlruhash_entry_overflow_next_getrcZlruhash_entry_lru_next_setZlruhash_entry_lru_next_getrdZlruhash_entry_lru_prev_setZlruhash_entry_lru_prev_getreZlruhash_entry_hash_setZlruhash_entry_hash_getrfZlruhash_entry_key_setZlruhash_entry_key_getrgZlruhash_entry_data_setZlruhash_entry_data_getrhrGZdelete_lruhash_entryrMrNrrrrra.sH              rac@s,eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Zd d �Zee�Zd d �Zee�Zd d�Z ee �Z!dd�Z"e j#Z$dd�Z%dS)�packed_rrset_datacCst|t||�S)N)r-ri)r'r)r*rrrr<^szpacked_rrset_data.cCs t|t|�S)N)r/ri)r'r)rrrr<`s�ttl�count� rrsig_count�trust�securitycCst|�S)N)�RRSetData_RRLen)r'rrr�_get_data_rr_lenwsz"packed_rrset_data._get_data_rr_lencCst|�S)N)�RRSetData_RRTTL)r'rrr�_get_data_rr_ttlysz"packed_rrset_data._get_data_rr_ttlcCst|�S)N)�RRSetData_RRData)r'rrr�_get_data_rr_data{sz#packed_rrset_data._get_data_rr_datac Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_packed_rrset_datarrFr2r3)r'rrrrrGs zpacked_rrset_data.__init__cCsdS)Nr)r'rrrr<�sN)&rr5r8r!r%r.rHr6r1rZpacked_rrset_data_ttl_setZpacked_rrset_data_ttl_getr#rIrjZpacked_rrset_data_count_setZpacked_rrset_data_count_getrkZ!packed_rrset_data_rrsig_count_setZ!packed_rrset_data_rrsig_count_getrlZpacked_rrset_data_trust_setZpacked_rrset_data_trust_getrmZpacked_rrset_data_security_setZpacked_rrset_data_security_getrnrprJZrr_lenrrZrr_ttlrtZrr_datarGZdelete_packed_rrset_datarMrNrrrrri\sD          ric@s$eZdZdd�Zdd�Zdd�ZdS)rocCs ||_dS)N)�obj)r'rurrrrG�szRRSetData_RRLen.__init__cCstj|j|�S)N)rrpru)r'�indexrrr� __getitem__�szRRSetData_RRLen.__getitem__cCs|jj|jjS)N)rurkrl)r'rrr�__len__�szRRSetData_RRLen.__len__N)rr5r8rGrwrxrrrrro�sroc@s,eZdZdd�Zdd�Zdd�Zdd�Zd S) rqcCs ||_dS)N)ru)r'rurrrrG�szRRSetData_RRTTL.__init__cCstj|j|�S)N)rrrru)r'rvrrrrw�szRRSetData_RRTTL.__getitem__cCstj|j||�dS)N)r�_set_data_rr_ttlru)r'rvr*rrr� __setitem__�szRRSetData_RRTTL.__setitem__cCs|jj|jjS)N)rurkrl)r'rrrrx�szRRSetData_RRTTL.__len__N)rr5r8rGrwrzrxrrrrrq�srqc@s$eZdZdd�Zdd�Zdd�ZdS)rscCs ||_dS)N)ru)r'rurrrrG�szRRSetData_RRData.__init__cCstj|j|�S)N)rrtru)r'rvrrrrw�szRRSetData_RRData.__getitem__cCs|jj|jjS)N)rurkrl)r'rrrrx�szRRSetData_RRData.__len__N)rr5r8rGrwrxrrrrrs�srscCs tj||�S)N)rrp)�d�idxrrrrp�srpcCstj|||�S)N)rry)r{r|rjrrrry�srycCs tj||�S)N)rrr)r{r|rrrrr�srrcCs tj||�S)N)rrt)r{r|rrrrt�srtc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e j$ed <e j%ed <e �r�e e j%e j$�Z&e j'ed <e j(ed <e �r�e e j(e j'�Z)dd�Z*e+e*�Z,dd�Z-e+e-�Z.dd�Z/e j0Z1dd�Z2dS)� reply_infocCst|t||�S)N)r-r})r'r)r*rrrr<�szreply_info.cCs t|t|�S)N)r/r})r'r)rrrr<�srR�qdcountrj� prefetch_ttl� authoritativern� an_numrrsets� ns_numrrsets� ar_numrrsets� rrset_countcCst|�S)N)� ReplyInfo_Ref)r'rrr�_rrset_ref_get�szreply_info._rrset_ref_getcCst|�S)N)�ReplyInfo_RRSet)r'rrr�_rrset_rrsets_get�szreply_info._rrset_rrsets_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_reply_inforrFr2r3)r'rrrrrG�s zreply_info.__init__cCsdS)Nr)r'rrrr<�sN)3rr5r8r!r%r.rHr6r1rZreply_info_flags_setZreply_info_flags_getr#rIrRZreply_info_qdcount_setZreply_info_qdcount_getr~Zreply_info_ttl_setZreply_info_ttl_getrjZreply_info_prefetch_ttl_setZreply_info_prefetch_ttl_getrZreply_info_authoritative_setZreply_info_authoritative_getr�Zreply_info_security_setZreply_info_security_getrnZreply_info_an_numrrsets_setZreply_info_an_numrrsets_getr�Zreply_info_ns_numrrsets_setZreply_info_ns_numrrsets_getr�Zreply_info_ar_numrrsets_setZreply_info_ar_numrrsets_getr�Zreply_info_rrset_count_setZreply_info_rrset_count_getr�r�rJ�refr�ZrrsetsrGZdelete_reply_inforMrNrrrrr}�sh                    r}c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Zdd�Ze jZdd�Zd S) � rrset_refcCst|t||�S)N)r-r�)r'r)r*rrrr<�szrrset_ref.cCs t|t|�S)N)r/r�)r'r)rrrr<�srgr_c Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZ new_rrset_refrrFr2r3)r'rrrrrG�s zrrset_ref.__init__cCsdS)Nr)r'rrrr<sN)rr5r8r!r%r.rHr6r1rZrrset_ref_key_setZrrset_ref_key_getr#rIrgZrrset_ref_id_setZrrset_ref_id_getr_rGZdelete_rrset_refrMrNrrrrr��s     r�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Zdd�Ze jZdd�Zd S) �dns_msgcCst|t||�S)N)r-r�)r'r)r*rrrr<szdns_msg.cCs t|t|�S)N)r/r�)r'r)rrrr<s�qinfo�repc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZ new_dns_msgrrFr2r3)r'rrrrrGs zdns_msg.__init__cCsdS)Nr)r'rrrr<sN)rr5r8r!r%r.rHr6r1rZdns_msg_qinfo_setZdns_msg_qinfo_getr#rIr�Zdns_msg_rep_setZdns_msg_rep_getr�rGZdelete_dns_msgrMrNrrrrr�s     r�c@s$eZdZdd�Zdd�Zdd�ZdS)r�cCs ||_dS)N)ru)r'rurrrrG szReplyInfo_RRSet.__init__cCstj|j|�S)N)rr�ru)r'rvrrrrw!szReplyInfo_RRSet.__getitem__cCs|jjS)N)rur�)r'rrrrx"szReplyInfo_RRSet.__len__N)rr5r8rGrwrxrrrrr�sr�c@s$eZdZdd�Zdd�Zdd�ZdS)r�cCs ||_dS)N)ru)r'rurrrrG%szReplyInfo_Ref.__init__cCstj|j|�S)N)rr�ru)r'rvrrrrw&szReplyInfo_Ref.__getitem__cCs|jjS)N)rur�)r'rrrrx'szReplyInfo_Ref.__len__N)rr5r8rGrwrxrrrrr�$sr�cCs tj||�S)N)rr�)�rr|rrrr�*sr�cCs tj||�S)N)rr�)r�r|rrrr�.sr�c@s�eZdZiZdd�ZiZdd�ZeZdd�Z e e �Z dd�Z e e �Z dd �Ze e�Zd d �Ze e�Zd d �Ze e�Zdd�Ze e�Zdd�ZejZdd�ZdS)�sockaddr_storagecCst|t||�S)N)r-r�)r'r)r*rrrr<3szsockaddr_storage.cCs t|t|�S)N)r/r�)r'r)rrrr<5scCst|�S)N)�_sockaddr_storage_family)r'rrr� _family_get8szsockaddr_storage._family_getcCst|�S)N)�_sockaddr_storage_addr)r'rrr� _addr_get;szsockaddr_storage._addr_getcCst|�S)N)�_sockaddr_storage_raw_addr)r'rrr� _raw_addr_get>szsockaddr_storage._raw_addr_getcCst|�S)N)�_sockaddr_storage_port)r'rrr� _port_getAszsockaddr_storage._port_getcCst|�S)N)�_sockaddr_storage_flowinfo)r'rrr� _flowinfo_getDszsockaddr_storage._flowinfo_getcCst|�S)N)�_sockaddr_storage_scope_id)r'rrr� _scope_id_getGszsockaddr_storage._scope_id_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_sockaddr_storagerrFr2r3)r'rrrrrGKs zsockaddr_storage.__init__cCsdS)Nr)r'rrrr<RsN)rr5r8r!r%r.rHr6r1r�rJ�familyr��addrr�Zraw_addrr��portr�Zflowinfor�Zscope_idrGrZdelete_sockaddr_storagerMrNrrrrr�1s(r�cCs tj|�S)N)r�_sockaddr_storage_len)�ssrrrr�Wsr�cCs tj|�S)N)rr�)r�rrrr�[sr�cCs tj|�S)N)rr�)r�rrrr�_sr�cCs tj|�S)N)rr�)r�rrrr�csr�cCs tj|�S)N)rr�)r�rrrr�gsr�cCs tj|�S)N)rr�)r�rrrr�ksr�cCs tj|�S)N)rr�)r�rrrr�osr�c@sdeZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Zdd�Ze jZdd�ZdS) � mesh_statecCst|t||�S)N)r-r�)r'r)r*rrrr<tszmesh_state.cCs t|t|�S)N)r/r�)r'r)rrrr<vs� reply_listc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_mesh_staterrFr2r3)r'rrrrrG}s zmesh_state.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.rHr6r1rZmesh_state_reply_list_setZmesh_state_reply_list_getr#rIr�rGZdelete_mesh_staterMrNrrrrr�rs  r�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Zdd�Ze jZdd�Zd S) � mesh_replycCst|t||�S)N)r-r�)r'r)r*rrrr<�szmesh_reply.cCs t|t|�S)N)r/r�)r'r)rrrr<�s�next� query_replyc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_mesh_replyrrFr2r3)r'rrrrrG�s zmesh_reply.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.rHr6r1rZmesh_reply_next_setZmesh_reply_next_getr#rIr�Zmesh_reply_query_reply_setZmesh_reply_query_reply_getr�rGZdelete_mesh_replyrMrNrrrrr��s     r�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Zdd�Zee�Zdd�Zee�Zd d �Zee�Zd d �Ze jZd d�ZdS)� comm_replycCst|t||�S)N)r-r�)r'r)r*rrrr<�szcomm_reply.cCs t|t|�S)N)r/r�)r'r)rrrr<�s�_addrcCs t|j�S)N)r�r�)r'rrrr��szcomm_reply._addr_getcCs t|j�S)N)r�r�)r'rrrr��szcomm_reply._port_getcCs t|j�S)N)r�r�)r'rrrr��szcomm_reply._family_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_comm_replyrrFr2r3)r'rrrrrG�s zcomm_reply.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.rHr6r1rZcomm_reply__addr_setZcomm_reply__addr_getr#rIr�r�rJr�r�r�r�r�rGZdelete_comm_replyrMrNrrrrr��s$  r�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Zdd �Zee�Zd d �Zee�Zd d �Ze jZdd�Z dS)� edns_optioncCst|t||�S)N)r-r�)r'r)r*rrrr<�szedns_option.cCs t|t|�S)N)r/r�)r'r)rrrr<�s�_next� _opt_code�_opt_len� _opt_datacCst|�S)N)�_edns_option_opt_code_get)r'rrr� _opt_code_get�szedns_option._opt_code_getcCst|�S)N)�_edns_option_opt_data_get)r'rrr� _opt_data_get�szedns_option._opt_data_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_edns_optionrrFr2r3)r'rrrrrG�s zedns_option.__init__cCsdS)Nr)r'rrrr<�sN)!rr5r8r!r%r.rHr6r1rZedns_option__next_setZedns_option__next_getr#rIr�Zedns_option__opt_code_setZedns_option__opt_code_getr�Zedns_option__opt_len_setZedns_option__opt_len_getr�Zedns_option__opt_data_setZedns_option__opt_data_getr�r�rJ�coder�rhrGZdelete_edns_optionrMrNrrrrr��s8        r�cCs tj|�S)N)rr�)�optionrrrr��sr�cCs tj|�S)N)rr�)r�rrrr��sr�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e j$ed <e j%ed <e �r�e e j%e j$�Z&d d�Z'e(e'�Z)dd�Z*e(e*�Z+dd�Z,e j-Z.dd�Z/dS)� edns_datacCst|t||�S)N)r-r�)r'r)r*rrrr<�szedns_data.cCs t|t|�S)N)r/r�)r'r)rrrr<�s� edns_present� ext_rcode� edns_version�bits�udp_size� opt_list_in� opt_list_out�opt_list_inplace_cb_out�padding_block_sizecCs t|j�S)N)�EdnsOptsListIter�opt_list)r'rrr�_opt_list_iterszedns_data._opt_list_itercCst|�S)N)�_edns_data_opt_list_get)r'rrr� _opt_list szedns_data._opt_listc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZ new_edns_datarrFr2r3)r'rrrrrG$s zedns_data.__init__cCsdS)Nr)r'rrrr<+sN)0rr5r8r!r%r.rHr6r1rZedns_data_edns_present_setZedns_data_edns_present_getr#rIr�Zedns_data_ext_rcode_setZedns_data_ext_rcode_getr�Zedns_data_edns_version_setZedns_data_edns_version_getr�Zedns_data_bits_setZedns_data_bits_getr�Zedns_data_udp_size_setZedns_data_udp_size_getr�Zedns_data_opt_list_in_setZedns_data_opt_list_in_getr�Zedns_data_opt_list_out_setZedns_data_opt_list_out_getr�Z%edns_data_opt_list_inplace_cb_out_setZ%edns_data_opt_list_inplace_cb_out_getr�Z edns_data_padding_block_size_setZ edns_data_padding_block_size_getr�r�rJZ opt_list_iterr�r�rGZdelete_edns_datarMrNrrrrr��s`                  r�cCs tj|�S)N)rr�)Zednsrrrr�0sr�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e j$ed <e j%ed <e �r�e e j%e j$�Z&e j'ed <e j(ed <e �r�e e j(e j'�Z)e j*ed<e j+ed<e �r�e e j+e j*�Z,e j-ed<e j.ed<e �r�e e j.e j-�Z/e j0ed<e j1ed<e �r"e e j1e j0�Z2e j3ed<e j4ed<e �rJe e j4e j3�Z5e j6ed<e j7ed<e �rre e j7e j6�Z8e j9ed<e j:ed<e �r�e e j:e j9�Z;e je j?ed<e j@ed<e �r�e e j@e j?�ZAe jBed<e jCed<e �re e jCe jB�ZDe jEed<e jFed<e �r:e e jFe jE�ZGe jHed<e jIed<e �rbe e jIe jH�ZJe jKed<e jLed<e �r�e e jLe jK�ZMe jNed<e jOed<e �r�e e jOe jN�ZPe jQed<e jRed<e �r�e e jRe jQ�ZSe jTed<e jUed<e �re e jUe jT�ZVe jWed<e jXed<e �r*e e jXe jW�ZYe jZed<e j[ed<e �rRe e j[e jZ�Z\e j]ed<e j^ed<e �rze e j^e j]�Z_d d!�Z`eae`�Zbd"d#�Zce jdZed$d�Zfd%S)&� module_envcCst|t||�S)N)r-r�)r'r)r*rrrr<5szmodule_env.cCs t|t|�S)N)r/r�)r'r)rrrr<7s�cfg� msg_cache� rrset_cache� infra_cache� key_cache� send_query� detach_subs� attach_sub�kill_sub� detect_cycle�scratch�scratch_buffer�worker�mesh�alloc�rnd�_now�_now_tv�need_to_validate�anchors� neg_cache� probe_timer�fwds�hints�modinfo�inplace_cb_lists�edns_known_options�edns_known_options_numcCst|�S)N)�_module_env_now_get)r'rrr�_now_get�szmodule_env._now_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_module_envrrFr2r3)r'rrrrrG�s zmodule_env.__init__cCsdS)Nr)r'rrrr<�sN)grr5r8r!r%r.rHr6r1rZmodule_env_cfg_setZmodule_env_cfg_getr#rIr�Zmodule_env_msg_cache_setZmodule_env_msg_cache_getr�Zmodule_env_rrset_cache_setZmodule_env_rrset_cache_getr�Zmodule_env_infra_cache_setZmodule_env_infra_cache_getr�Zmodule_env_key_cache_setZmodule_env_key_cache_getr�Zmodule_env_send_query_setZmodule_env_send_query_getr�Zmodule_env_detach_subs_setZmodule_env_detach_subs_getr�Zmodule_env_attach_sub_setZmodule_env_attach_sub_getr�Zmodule_env_kill_sub_setZmodule_env_kill_sub_getr�Zmodule_env_detect_cycle_setZmodule_env_detect_cycle_getr�Zmodule_env_scratch_setZmodule_env_scratch_getr�Zmodule_env_scratch_buffer_setZmodule_env_scratch_buffer_getr�Zmodule_env_worker_setZmodule_env_worker_getr�Zmodule_env_mesh_setZmodule_env_mesh_getr�Zmodule_env_alloc_setZmodule_env_alloc_getr�Zmodule_env_rnd_setZmodule_env_rnd_getr�Zmodule_env__now_setZmodule_env__now_getr�Zmodule_env__now_tv_setZmodule_env__now_tv_getr�Zmodule_env_need_to_validate_setZmodule_env_need_to_validate_getr�Zmodule_env_anchors_setZmodule_env_anchors_getr�Zmodule_env_neg_cache_setZmodule_env_neg_cache_getr�Zmodule_env_probe_timer_setZmodule_env_probe_timer_getr�Zmodule_env_fwds_setZmodule_env_fwds_getr�Zmodule_env_hints_setZmodule_env_hints_getr�Zmodule_env_modinfo_setZmodule_env_modinfo_getr�Zmodule_env_inplace_cb_lists_setZmodule_env_inplace_cb_lists_getr�Z!module_env_edns_known_options_setZ!module_env_edns_known_options_getr�Z%module_env_edns_known_options_num_setZ%module_env_edns_known_options_num_getr�r�rJZnowrGZdelete_module_envrMrNrrrrr�3s�                                                        r�cCs tj|�S)N)rr�)�envrrrr��sr�c@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e j$ed <e j%ed <e �r�e e j%e j$�Z&e j'ed <e j(ed <e �r�e e j(e j'�Z)e j*ed<e j+ed<e �r�e e j+e j*�Z,e j-ed<e j.ed<e �r�e e j.e j-�Z/e j0ed<e j1ed<e �r"e e j1e j0�Z2e j3ed<e j4ed<e �rJe e j4e j3�Z5dd�Z6dd�Z7e8e7�Z9dd�Z:e8e:�Z;dd�Ze8e>�Z?dd�Z@e8e@�ZAdd�ZBe8eB�ZCd d!�ZDe8eD�ZEd"d#�ZFe8eF�ZGd$d%�ZHe8eH�ZId&d'�ZJe jKZLd(d�ZMd)S)*� module_qstatecCst|t||�S)N)r-r�)r'r)r*rrrr<�szmodule_qstate.cCs t|t|�S)N)r/r�)r'r)rrrr<�sr�� query_flags� is_priming� is_valrec�reply� return_msg� return_rcode�region�curmod�prefetch_leewayr�� mesh_info�no_cache_lookup�no_cache_storecCstj|||�dS)zSets the ext stateN)r�_ext_state_set)r'r_�staterrr� set_ext_state�szmodule_qstate.set_ext_statecCst|�S)N)�ExtState)r'rrrZ__ext_state_getszmodule_qstate.__ext_state_getcCs t|j�S)N)r��edns_opts_front_in)r'rrr�_edns_opts_front_in_itersz&module_qstate._edns_opts_front_in_itercCs t|j�S)N)r��edns_opts_back_out)r'rrr�_edns_opts_back_out_itersz&module_qstate._edns_opts_back_out_itercCs t|j�S)N)r��edns_opts_back_in)r'rrr�_edns_opts_back_in_itersz%module_qstate._edns_opts_back_in_itercCs t|j�S)N)r��edns_opts_front_out)r'rrr�_edns_opts_front_out_iter sz'module_qstate._edns_opts_front_out_itercCst|�S)N)�_edns_opts_front_in_get)r'rrr�_edns_opts_front_in sz!module_qstate._edns_opts_front_incCst|�S)N)�_edns_opts_back_out_get)r'rrr�_edns_opts_back_outsz!module_qstate._edns_opts_back_outcCst|�S)N)�_edns_opts_back_in_get)r'rrr�_edns_opts_back_insz module_qstate._edns_opts_back_incCst|�S)N)�_edns_opts_front_out_get)r'rrr�_edns_opts_front_outsz"module_qstate._edns_opts_front_outc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_module_qstaterrFr2r3)r'rrrrrGs zmodule_qstate.__init__cCsdS)Nr)r'rrrr<sN)Nrr5r8r!r%r.rHr6r1rZmodule_qstate_qinfo_setZmodule_qstate_qinfo_getr#rIr�Zmodule_qstate_query_flags_setZmodule_qstate_query_flags_getr�Zmodule_qstate_is_priming_setZmodule_qstate_is_priming_getr�Zmodule_qstate_is_valrec_setZmodule_qstate_is_valrec_getr�Zmodule_qstate_reply_setZmodule_qstate_reply_getr�Zmodule_qstate_return_msg_setZmodule_qstate_return_msg_getr�Zmodule_qstate_return_rcode_setZmodule_qstate_return_rcode_getr�Zmodule_qstate_region_setZmodule_qstate_region_getr�Zmodule_qstate_curmod_setZmodule_qstate_curmod_getr�Z!module_qstate_prefetch_leeway_setZ!module_qstate_prefetch_leeway_getr�Zmodule_qstate_env_setZmodule_qstate_env_getr�Zmodule_qstate_mesh_info_setZmodule_qstate_mesh_info_getr�Z!module_qstate_no_cache_lookup_setZ!module_qstate_no_cache_lookup_getr�Z module_qstate_no_cache_store_setZ module_qstate_no_cache_store_getr�r�Z_module_qstate__ext_state_getrJZ ext_stater�Zedns_opts_front_in_iterr�Zedns_opts_back_out_iterr�Zedns_opts_back_in_iterr�Zedns_opts_front_out_iterr�r�r�r�rr�rr�rGZdelete_module_qstaterMrNrrrrr��s�                            r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd S) r�cCs ||_dS)N)ru)r'rurrrrG7szExtState.__init__cs dj�fdd�tdtj�D��S)Nz, cs g|]}tjtj�j|���qSr)r� strextstate�_ext_state_getru)�.0�a)r'rr� 9sz$ExtState.__str__..r)r �ranger� MODULE_COUNT)r'r)r'r�__str__8szExtState.__str__cCstj|j|�S)N)rrru)r'rvrrrrw:szExtState.__getitem__cCstj|j||�dS)N)rr�ru)r'rvr*rrrrz;szExtState.__setitem__cCstjS)N)rr )r'rrrrx<szExtState.__len__N)rr5r8rGr rwrzrxrrrrr�6s r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd S) r�cCs||_d|_dS)N)�_current�_temp)r'rurrrrG?szEdnsOptsListIter.__init__cCs|S)Nr)r'rrr�__iter__BszEdnsOptsListIter.__iter__cCs|j�S)zPython 3 compatibility)� _get_next)r'rrr�__next__CszEdnsOptsListIter.__next__cCs|j�S)zPython 2 compatibility)r)r'rrrr�FszEdnsOptsListIter.nextcCs0t|j�s(|j|_t|j�|_t|j�St�dS)N)�edns_opt_list_is_emptyr r �_p_p_edns_option_get_next�_dereference_edns_option� StopIteration)r'rrrrIs    zEdnsOptsListIter._get_nextN)rr5r8rGr rr�rrrrrr�>s r�cCs tj||�S)N)rr)rOr|rrrrRsrcCstj|||�S)N)rr�)rOr|r�rrrr�Vsr�cCs tj|�S)N)rr)�optrrrrZsrcCs tj|�S)N)rr)rrrrr^srcCs tj|�S)N)rr)rrrrrbsrcCs tj|�S)N)rr�)rOrrrr�fsr�cCs tj|�S)N)rr�)rOrrrr�jsr�cCs tj|�S)N)rr�)rOrrrr�nsr�cCs tj|�S)N)rr)rOrrrrrsrc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Zdd�Ze jZdd�Zd S) �config_strlistcCst|t||�S)N)r-r)r'r)r*rrrr<wszconfig_strlist.cCs t|t|�S)N)r/r)r'r)rrrr<ysr��strc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_config_strlistrrFr2r3)r'rrrrrG�s zconfig_strlist.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.rHr6r1rZconfig_strlist_next_setZconfig_strlist_next_getr#rIr�Zconfig_strlist_str_setZconfig_strlist_str_getrrGZdelete_config_strlistrMrNrrrrrus     rc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Zdd�Ze jZd d�Zd S) �config_str2listcCst|t||�S)N)r-r)r'r)r*rrrr<�szconfig_str2list.cCs t|t|�S)N)r/r)r'r)rrrr<�sr�r�str2c Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_config_str2listrrFr2r3)r'rrrrrG�s zconfig_str2list.__init__cCsdS)Nr)r'rrrr<�sN)rr5r8r!r%r.rHr6r1rZconfig_str2list_next_setZconfig_str2list_next_getr#rIr�Zconfig_str2list_str_setZconfig_str2list_str_getrZconfig_str2list_str2_setZconfig_str2list_str2_getrrGZdelete_config_str2listrMrNrrrrr�s(      rc@s� eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e j$ed <e j%ed <e �r�e e j%e j$�Z&e j'ed <e j(ed <e �r�e e j(e j'�Z)e j*ed<e j+ed<e �r�e e j+e j*�Z,e j-ed<e j.ed<e �r�e e j.e j-�Z/e j0ed<e j1ed<e �r"e e j1e j0�Z2e j3ed<e j4ed<e �rJe e j4e j3�Z5e j6ed<e j7ed<e �rre e j7e j6�Z8e j9ed<e j:ed<e �r�e e j:e j9�Z;e je j?ed<e j@ed<e �r�e e j@e j?�ZAe jBed<e jCed<e �re e jCe jB�ZDe jEed<e jFed<e �r:e e jFe jE�ZGe jHed<e jIed<e �rbe e jIe jH�ZJe jKed<e jLed<e �r�e e jLe jK�ZMe jNed<e jOed<e �r�e e jOe jN�ZPe jQed<e jRed<e �r�e e jRe jQ�ZSe jTed<e jUed<e �re e jUe jT�ZVe jWed<e jXed<e �r*e e jXe jW�ZYe jZed<e j[ed<e �rRe e j[e jZ�Z\e j]ed<e j^ed<e �rze e j^e j]�Z_e j`ed <e jaed <e �r�e e jae j`�Zbe jced!<e jded!<e �r�e e jde jc�Zee jfed"<e jged"<e �r�e e jge jf�Zhe jied#<e jjed#<e �re e jje ji�Zke jled$<e jmed$<e �rBe e jme jl�Zne joed%<e jped%<e �rje e jpe jo�Zqe jred&<e jsed&<e �r�e e jse jr�Zte jued'<e jved'<e �r�e e jve ju�Zwe jxed(<e jyed(<e �r�e e jye jx�Zze j{ed)<e j|ed)<e �r e e j|e j{�Z}e j~ed*<e jed*<e �r2e e je j~�Z�e j�ed+<e j�ed+<e �rZe e j�e j��Z�e j�ed,<e j�ed,<e �r�e e j�e j��Z�e j�ed-<e j�ed-<e �r�e e j�e j��Z�e j�ed.<e j�ed.<e �r�e e j�e j��Z�e j�ed/<e j�ed/<e �r�e e j�e j��Z�e j�ed0<e j�ed0<e �r"e e j�e j��Z�e j�ed1<e j�ed1<e �rJe e j�e j��Z�e j�ed2<e j�ed2<e �rre e j�e j��Z�e j�ed3<e j�ed3<e �r�e e j�e j��Z�e j�ed4<e j�ed4<e �r�e e j�e j��Z�e j�ed5<e j�ed5<e �r�e e j�e j��Z�e j�ed6<e j�ed6<e �re e j�e j��Z�e j�ed7<e j�ed7<e �r:e e j�e j��Z�e j�ed8<e j�ed8<e �rbe e j�e j��Z�e j�ed9<e j�ed9<e �r�e e j�e j��Z�e j�ed:<e j�ed:<e �r�e e j�e j��Z�e j�ed;<e j�ed;<e �r�e e j�e j��Z�e j�ed<<e j�ed<<e � re e j�e j��Z�e j�ed=<e j�ed=<e � r*e e j�e j��Z�e j�ed><e j�ed><e � rRe e j�e j��Z�e j�ed?<e j�ed?<e � rze e j�e j��Z�e j�ed@<e j�ed@<e � r�e e j�e j��Z�e j�edA<e j�edA<e � r�e e j�e jÃZ�e j�edB<e j�edB<e � r�e e j�e jƃZ�e j�edC<e j�edC<e � re e j�e jɃZ�e j�edD<e j�edD<e � rBe e j�e j̃Z�e j�edE<e j�edE<e � rje e j�e jσZ�e j�edF<e j�edF<e � r�e e j�e jÒƒZ�e j�edG<e j�edG<e � r�e e j�e jÕƒZ�e j�edH<e j�edH<e � r�e e j�e j؃Z�e j�edI<e j�edI<e � r e e j�e jÛƒZ�e j�edJ<e j�edJ<e � r2e e j�e jÞƒZ�e j�edK<e j�edK<e � rZe e j�e j�Z�e j�edL<e j�edL<e � r�e e j�e j�Z�e j�edM<e j�edM<e � r�e e j�e j�Z�e j�edN<e j�edN<e � r�e e j�e j�Z�e j�edO<e j�edO<e � r�e e j�e j�Z�e j�edP<e j�edP<e � r"e e j�e j��Z�e j�edQ<e j�edQ<e � rJe e j�e j�Z�e j�edR<e j�edR<e � rre e j�e j��Z�e j�edS<e j�edS<e � r�e e j�e j��Z�dTdU�Z�e j�Z�dVd�Z�dWS)X� config_filecCst|t||�S)N)r-r)r'r)r*rrrr<�szconfig_file.cCs t|t|�S)N)r/r)r'r)rrrr<�s� verbosity� stat_interval�stat_cumulative� stat_extended� num_threadsr��do_ip4�do_ip6�do_udp�do_tcp�outgoing_num_ports�outgoing_num_tcp�incoming_num_tcp�outgoing_avail_ports�msg_buffer_size�msg_cache_size�msg_cache_slabs�num_queries_per_thread� jostle_time�rrset_cache_size�rrset_cache_slabs�host_ttl�infra_cache_slabs�infra_cache_numhosts�target_fetch_policy� if_automatic�num_ifs�ifs� num_out_ifs�out_ifs� root_hints�stubs�forwards�donotqueryaddrs�acls�donotquery_localhost�harden_short_bufsize�harden_large_queries� harden_glue�harden_dnssec_stripped�harden_referral_path�use_caps_bits_for_id�private_address�private_domain�unwanted_threshold� chrootdir�username� directory�logfile�pidfile� use_syslog� hide_identity� hide_version�identity�version� module_conf�trust_anchor_file_list�trust_anchor_list�trusted_keys_file_list�max_ttl�val_date_override� bogus_ttl�val_clean_additional�val_permissive_mode�val_nsec3_key_iterations�key_cache_size�key_cache_slabs�neg_cache_size� local_zones�local_zones_nodefault� local_data�remote_control_enable� control_ifs� control_port�server_key_file�server_cert_file�control_key_file�control_cert_file� do_daemonize� python_scriptc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_config_filerrFr2r3)r'rrrrrG�s zconfig_file.__init__cCsdS)Nr)r'rrrr<�sN(rr5r8r!r%r.rHr6r1rZconfig_file_verbosity_setZconfig_file_verbosity_getr#rIrZconfig_file_stat_interval_setZconfig_file_stat_interval_getrZconfig_file_stat_cumulative_setZconfig_file_stat_cumulative_getrZconfig_file_stat_extended_setZconfig_file_stat_extended_getrZconfig_file_num_threads_setZconfig_file_num_threads_getrZconfig_file_port_setZconfig_file_port_getr�Zconfig_file_do_ip4_setZconfig_file_do_ip4_getrZconfig_file_do_ip6_setZconfig_file_do_ip6_getr Zconfig_file_do_udp_setZconfig_file_do_udp_getr!Zconfig_file_do_tcp_setZconfig_file_do_tcp_getr"Z"config_file_outgoing_num_ports_setZ"config_file_outgoing_num_ports_getr#Z config_file_outgoing_num_tcp_setZ config_file_outgoing_num_tcp_getr$Z config_file_incoming_num_tcp_setZ config_file_incoming_num_tcp_getr%Z$config_file_outgoing_avail_ports_setZ$config_file_outgoing_avail_ports_getr&Zconfig_file_msg_buffer_size_setZconfig_file_msg_buffer_size_getr'Zconfig_file_msg_cache_size_setZconfig_file_msg_cache_size_getr(Zconfig_file_msg_cache_slabs_setZconfig_file_msg_cache_slabs_getr)Z&config_file_num_queries_per_thread_setZ&config_file_num_queries_per_thread_getr*Zconfig_file_jostle_time_setZconfig_file_jostle_time_getr+Z config_file_rrset_cache_size_setZ config_file_rrset_cache_size_getr,Z!config_file_rrset_cache_slabs_setZ!config_file_rrset_cache_slabs_getr-Zconfig_file_host_ttl_setZconfig_file_host_ttl_getr.Z!config_file_infra_cache_slabs_setZ!config_file_infra_cache_slabs_getr/Z$config_file_infra_cache_numhosts_setZ$config_file_infra_cache_numhosts_getr0Z#config_file_target_fetch_policy_setZ#config_file_target_fetch_policy_getr1Zconfig_file_if_automatic_setZconfig_file_if_automatic_getr2Zconfig_file_num_ifs_setZconfig_file_num_ifs_getr3Zconfig_file_ifs_setZconfig_file_ifs_getr4Zconfig_file_num_out_ifs_setZconfig_file_num_out_ifs_getr5Zconfig_file_out_ifs_setZconfig_file_out_ifs_getr6Zconfig_file_root_hints_setZconfig_file_root_hints_getr7Zconfig_file_stubs_setZconfig_file_stubs_getr8Zconfig_file_forwards_setZconfig_file_forwards_getr9Zconfig_file_donotqueryaddrs_setZconfig_file_donotqueryaddrs_getr:Zconfig_file_acls_setZconfig_file_acls_getr;Z$config_file_donotquery_localhost_setZ$config_file_donotquery_localhost_getr<Z$config_file_harden_short_bufsize_setZ$config_file_harden_short_bufsize_getr=Z$config_file_harden_large_queries_setZ$config_file_harden_large_queries_getr>Zconfig_file_harden_glue_setZconfig_file_harden_glue_getr?Z&config_file_harden_dnssec_stripped_setZ&config_file_harden_dnssec_stripped_getr@Z$config_file_harden_referral_path_setZ$config_file_harden_referral_path_getrAZ$config_file_use_caps_bits_for_id_setZ$config_file_use_caps_bits_for_id_getrBZconfig_file_private_address_setZconfig_file_private_address_getrCZconfig_file_private_domain_setZconfig_file_private_domain_getrDZ"config_file_unwanted_threshold_setZ"config_file_unwanted_threshold_getrEZconfig_file_chrootdir_setZconfig_file_chrootdir_getrFZconfig_file_username_setZconfig_file_username_getrGZconfig_file_directory_setZconfig_file_directory_getrHZconfig_file_logfile_setZconfig_file_logfile_getrIZconfig_file_pidfile_setZconfig_file_pidfile_getrJZconfig_file_use_syslog_setZconfig_file_use_syslog_getrKZconfig_file_hide_identity_setZconfig_file_hide_identity_getrLZconfig_file_hide_version_setZconfig_file_hide_version_getrMZconfig_file_identity_setZconfig_file_identity_getrNZconfig_file_version_setZconfig_file_version_getrOZconfig_file_module_conf_setZconfig_file_module_conf_getrPZ&config_file_trust_anchor_file_list_setZ&config_file_trust_anchor_file_list_getrQZ!config_file_trust_anchor_list_setZ!config_file_trust_anchor_list_getrRZ&config_file_trusted_keys_file_list_setZ&config_file_trusted_keys_file_list_getrSZconfig_file_max_ttl_setZconfig_file_max_ttl_getrTZ!config_file_val_date_override_setZ!config_file_val_date_override_getrUZconfig_file_bogus_ttl_setZconfig_file_bogus_ttl_getrVZ$config_file_val_clean_additional_setZ$config_file_val_clean_additional_getrWZ#config_file_val_permissive_mode_setZ#config_file_val_permissive_mode_getrXZ(config_file_val_nsec3_key_iterations_setZ(config_file_val_nsec3_key_iterations_getrYZconfig_file_key_cache_size_setZconfig_file_key_cache_size_getrZZconfig_file_key_cache_slabs_setZconfig_file_key_cache_slabs_getr[Zconfig_file_neg_cache_size_setZconfig_file_neg_cache_size_getr\Zconfig_file_local_zones_setZconfig_file_local_zones_getr]Z%config_file_local_zones_nodefault_setZ%config_file_local_zones_nodefault_getr^Zconfig_file_local_data_setZconfig_file_local_data_getr_Z%config_file_remote_control_enable_setZ%config_file_remote_control_enable_getr`Zconfig_file_control_ifs_setZconfig_file_control_ifs_getraZconfig_file_control_port_setZconfig_file_control_port_getrbZconfig_file_server_key_file_setZconfig_file_server_key_file_getrcZ config_file_server_cert_file_setZ config_file_server_cert_file_getrdZ config_file_control_key_file_setZ config_file_control_key_file_getreZ!config_file_control_cert_file_setZ!config_file_control_cert_file_getrfZconfig_file_do_daemonize_setZconfig_file_do_daemonize_getrgZconfig_file_python_script_setZconfig_file_python_script_getrhrGZdelete_config_filerMrNrrrrr�s�                                                                                                                                                                rc@speZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e!e j"�Z#e!e j$�Z%d d �Z&e!e&�Z'd d�Z(e j)Z*dd�Z+dS)� delegpt_nscCst|t||�S)N)r-ri)r'r)r*rrrr<szdelegpt_ns.cCs t|t|�S)N)r/ri)r'r)rrrr<sr��resolved�got4�got6�lame� done_pside4� done_pside6cCs t|j�S)N)rCrP)r'rrrrW&szdelegpt_ns._get_dname_strc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_delegpt_nsrrFr2r3)r'rrrrrG*s zdelegpt_ns.__init__cCsdS)Nr)r'rrrr<1sN),rr5r8r!r%r.rHr6r1rZdelegpt_ns_next_setZdelegpt_ns_next_getr#rIr�Zdelegpt_ns_resolved_setZdelegpt_ns_resolved_getrjZdelegpt_ns_got4_setZdelegpt_ns_got4_getrkZdelegpt_ns_got6_setZdelegpt_ns_got6_getrlZdelegpt_ns_lame_setZdelegpt_ns_lame_getrmZdelegpt_ns_done_pside4_setZdelegpt_ns_done_pside4_getrnZdelegpt_ns_done_pside6_setZdelegpt_ns_done_pside6_getrorJ�_get_dpns_dnamerP�_get_dpns_dname_componentsrZrWr[rGZdelete_delegpt_nsrMrNrrrrri�sP                ric@s\eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z d d �Z!e"e!�Z#d d�Z$e j%Z&dd�Z'dS)� delegpt_addrcCst|t||�S)N)r-rr)r'r)r*rrrr<7szdelegpt_addr.cCs t|t|�S)N)r/rr)r'r)rrrr<9s� next_result� next_usable� next_target�attempts�sel_rtt�bogusrmcCst|�S)N)�_delegpt_addr_addr_get)r'rrrr�Xszdelegpt_addr._addr_getc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZnew_delegpt_addrrrFr2r3)r'rrrrrG\s zdelegpt_addr.__init__cCsdS)Nr)r'rrrr<csN)(rr5r8r!r%r.rHr6r1rZdelegpt_addr_next_result_setZdelegpt_addr_next_result_getr#rIrsZdelegpt_addr_next_usable_setZdelegpt_addr_next_usable_getrtZdelegpt_addr_next_target_setZdelegpt_addr_next_target_getruZdelegpt_addr_attempts_setZdelegpt_addr_attempts_getrvZdelegpt_addr_sel_rtt_setZdelegpt_addr_sel_rtt_getrwZdelegpt_addr_bogus_setZdelegpt_addr_bogus_getrxZdelegpt_addr_lame_setZdelegpt_addr_lame_getrmr�rJr�rGZdelete_delegpt_addrrMrNrrrrrr5sL              rrc@s�eZdZiZdd�ZiZdd�ZeZe j ed<e j ed<e rJe e j e j �Ze jed<e jed<e rpe e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed<e jed<e r�e e je j�Ze jed <e jed <e �r e e je j�Ze jed <e jed <e �r2e e je j�Z e j!ed <e j"ed <e �rZe e j"e j!�Z#e$e j%�Z&e$e j'�Z(d d �Z)e$e)�Z*dd�Z+e j,Z-dd�Z.dS)�delegptcCst|t||�S)N)r-rz)r'r)r*rrrr<iszdelegpt.cCs t|t|�S)N)r/rz)r'r)rrrr<ks�namelabs�nslist� target_list� usable_list� result_listrx�has_parent_side_NS� dp_type_mlccCs t|j�S)N)rCrP)r'rrrrW�szdelegpt._get_dname_strc Cs:tj�}y|jj|�Wntjk r4||_YnXdS)N)rZ new_delegptrrFr2r3)r'rrrrrG�s zdelegpt.__init__cCsdS)Nr)r'rrrr<�sN)/rr5r8r!r%r.rHr6r1rZdelegpt_namelabs_setZdelegpt_namelabs_getr#rIr{Zdelegpt_nslist_setZdelegpt_nslist_getr|Zdelegpt_target_list_setZdelegpt_target_list_getr}Zdelegpt_usable_list_setZdelegpt_usable_list_getr~Zdelegpt_result_list_setZdelegpt_result_list_getrZdelegpt_bogus_setZdelegpt_bogus_getrxZdelegpt_has_parent_side_NS_setZdelegpt_has_parent_side_NS_getr�Zdelegpt_dp_type_mlc_setZdelegpt_dp_type_mlc_getr�rJ� _get_dp_dnamerP�_get_dp_dname_componentsrZrWr[rGZdelete_delegptrMrNrrrrrzgsX                  rzcCs tj|�S)N)rr�)�dprrrr��sr�cCs tj|�S)N)rr�)r�rrrr��sr�cCs tj|�S)N)rrp)�dpnsrrrrp�srpcCs tj|�S)N)rrq)r�rrrrq�srqcCs tj|�S)N)rry)�targetrrrry�sryc Cstj|||||||||| � S)N)r�set_return_msg) �qstate�rr_name�rr_type�rr_classrR� default_ttl�question�answer� authority� additionalrrrr��sr�c@s$eZdZeddfdd�Zdd�ZdS)� DNSMessagercCs:||_||_||_||_||_g|_g|_g|_g|_dS)z0Query flags is a combination of PKT_xx constantsN) r�r�r�r�r�r�r�r�r�)r'r�r�r�r�r�rrrrG�szDNSMessage.__init__c CsJtj||j|j|j|j|j|j|j|j |j � }|rFt |j@rFd|j j _|S)zReturns 1 if OKr)rr�r�r�r�r�r�r�r�r�r��PKT_AAr�r�r�)r'r�Zstatusrrrr��s  zDNSMessage.set_return_msgN)rr5r8� RR_CLASS_INrGr�rrrrr��s r�c Cstj|||||||||| | � S)N)r�dns_cache_find_delegation) r�rDZqnamelenr=r>r��msgZtimenowZnoexpiredaboveZ expiretopZ expiretoplenrrrr��sr�cCstj|||||�S)N)r�iter_dp_is_useless)r�Zqflagsr�Z supports_ipv4Z supports_ipv6rrrr��sr�cCstj||||�S)N)r�hints_lookup_stub)r�rDr>r�rrrr�sr�cCstj|||�S)N)r�find_delegation)r�ZnmZnmlenrrrr�sr�cCs tj||�S)N)r�unbound_verbose)�level�formatrrrr� sr�cCs tj|�S)N)r�unbound_log_info)r�rrrr�sr�cCs tj|�S)N)r�unbound_log_err)r�rrrr�sr�cCs tj|�S)N)r�unbound_log_warn)r�rrrr�sr�cCstj|||�S)N)r�log_hex)r�rhZlengthrrrr�sr�cCstj|||�S)N)r� log_dns_msg)rr�r�rrrr�sr�cCstj|||�S)N)r�log_query_info)�vrZqinfrrrr�"sr�cCs tj|�S)N)r�regional_log_stats)r�rrrr�&sr�cCs tj|�S)N)r�log_info)rrrrr�*sr�cCs tj|�S)N)r�log_err)rrrrr�.sr�cCs tj|�S)N)r�log_warn)rrrrr�2sr�cCs tj||�S)N)r�verbose)r�rrrrr�6sr�cCs tj|�S)N)rr?)Zatyperrrr?:sr?cCs tj|�S)N)rrA)ZaclassrrrrA>srAcCstj||||�S)N)r�storeQueryInCache)r�r�ZmsgrepZ is_referralrrrr�Bsr�cCs tj||�S)N)r�invalidateQueryInCache)r�r�rrrr�Fsr�cCs tj|�S)N)rr)�srrrrJsrcCs tj|�S)N)r� strmodulevent)�errrr�Nsr�cCs tj||�S)N)r�edns_opt_list_find)�listr�rrrr�Rsr�cCstj||||�S)N)r�edns_register_option)Zopt_code�bypass_cache_stage�no_aggregationr�rrrr�Vsr�FcCst||||�S)z/Wrapper function to provide keyword attributes.)r�)r�r�r�r�rrr�register_edns_optionZsr�cCs tj||�S)N)r�edns_opt_list_remove)r�r�rrrr�asr�cCstj||||�S)N)r�edns_opt_list_append)r�r�r:r�rrrr�esr�cCstj|||||�S)N)r�inplace_cb_register)�cbrZcbargr�r_rrrr�isr�cCstj|||�S)N)r�register_inplace_cb_reply)�py_cbr�r_rrrr�msr�cCstj|||�S)N)r�register_inplace_cb_reply_cache)r�r�r_rrrr�qsr�cCstj|||�S)N)r�register_inplace_cb_reply_local)r�r�r_rrrr�usr�cCstj|||�S)N)r�"register_inplace_cb_reply_servfail)r�r�r_rrrr�ysr�cCstj|||�S)N)r�register_inplace_cb_query)r�r�r_rrrr�}sr�)rrr)rrr)r)FF( �sysrZ_swig_python_version_inforrrJrI� NameError�builtinsr2r r,r-r/r6r$r7r#r3r9r;Zquery_info_swigregisterr�Z RR_CLASS_CHZ RR_CLASS_HSZ RR_CLASS_NONEZ RR_CLASS_ANYZ RR_TYPE_AZ RR_TYPE_NSZ RR_TYPE_MDZ RR_TYPE_MFZ RR_TYPE_CNAMEZ RR_TYPE_SOAZ RR_TYPE_MBZ RR_TYPE_MGZ RR_TYPE_MRZ RR_TYPE_NULLZ RR_TYPE_WKSZ RR_TYPE_PTRZ RR_TYPE_HINFOZ RR_TYPE_MINFOZ RR_TYPE_MXZ RR_TYPE_TXTZ RR_TYPE_RPZ RR_TYPE_AFSDBZ RR_TYPE_X25Z RR_TYPE_ISDNZ RR_TYPE_RTZ RR_TYPE_NSAPZRR_TYPE_NSAP_PTRZ RR_TYPE_SIGZ RR_TYPE_KEYZ RR_TYPE_PXZ RR_TYPE_GPOSZ RR_TYPE_AAAAZ RR_TYPE_LOCZ RR_TYPE_NXTZ RR_TYPE_EIDZRR_TYPE_NIMLOCZ RR_TYPE_SRVZ RR_TYPE_ATMAZ RR_TYPE_NAPTRZ RR_TYPE_KXZ RR_TYPE_CERTZ RR_TYPE_A6Z RR_TYPE_DNAMEZ RR_TYPE_SINKZ RR_TYPE_OPTZ RR_TYPE_APLZ RR_TYPE_DSZ RR_TYPE_SSHFPZRR_TYPE_IPSECKEYZ RR_TYPE_RRSIGZ RR_TYPE_NSECZRR_TYPE_DNSKEYZ RR_TYPE_DHCIDZ RR_TYPE_NSEC3ZRR_TYPE_NSEC3PARAMSZ RR_TYPE_UINFOZ RR_TYPE_UIDZ RR_TYPE_GIDZRR_TYPE_UNSPECZ RR_TYPE_TSIGZ RR_TYPE_IXFRZ RR_TYPE_AXFRZ RR_TYPE_MAILBZ RR_TYPE_MAILAZ RR_TYPE_ANYZ RR_TYPE_DLVrKrLrCrQZpacked_rrset_key_swigregisterrTrXrYr]Z ub_packed_rrset_key_swigregisterraZlruhash_entry_swigregisterriZpacked_rrset_data_swigregisterrorqrsrpryrrrtr}Zreply_info_swigregisterr�Zrrset_ref_swigregisterr�Zdns_msg_swigregisterr�r�r�r�r�Zsockaddr_storage_swigregisterr�r�r�r�r�r�r�r�Zmesh_state_swigregisterr�Zmesh_reply_swigregisterr�Zcomm_reply_swigregisterr�Zedns_option_swigregisterr�r�r�Zedns_data_swigregisterr�r�Zmodule_env_swigregisterr�r�Zmodule_qstate_swigregisterr Z QF_BIT_CDZ QF_BIT_ADZQF_BIT_ZZ QF_BIT_RAZ QF_BIT_RDZ QF_BIT_TCZ QF_BIT_AAZ QF_BIT_QRZ RCODE_NOERRORZ RCODE_FORMERRZRCODE_SERVFAILZRCODE_NXDOMAINZ RCODE_NOTIMPLZ RCODE_REFUSEDZRCODE_YXDOMAINZ RCODE_YXRRSETZ RCODE_NXRRSETZ RCODE_NOTAUTHZ RCODE_NOTZONEr�r�rr�rrrr�r�r�rrZconfig_strlist_swigregisterrZconfig_str2list_swigregisterrZconfig_file_swigregisterriZdelegpt_ns_swigregisterrrZdelegpt_addr_swigregisterrzZdelegpt_swigregisterr�r�rprqryZMODULE_STATE_INITIALZMODULE_WAIT_REPLYZMODULE_WAIT_MODULEZMODULE_RESTART_NEXTZMODULE_WAIT_SUBQUERYZ MODULE_ERRORZMODULE_FINISHEDZMODULE_EVENT_NEWZMODULE_EVENT_PASSZMODULE_EVENT_REPLYZMODULE_EVENT_NOREPLYZMODULE_EVENT_CAPSFAILZMODULE_EVENT_MODDONEZMODULE_EVENT_ERRORZsec_status_uncheckedZsec_status_bogusZsec_status_indeterminateZsec_status_insecureZsec_status_secureZ NO_VERBOSEZVERB_OPSZ VERB_DETAILZ VERB_QUERYZ VERB_ALGOZinplace_cb_replyZinplace_cb_reply_cacheZinplace_cb_reply_localZinplace_cb_reply_servfailZinplace_cb_queryZinplace_cb_edns_back_parsedZinplace_cb_types_totalZPKT_QRr�ZPKT_TCZPKT_RDZPKT_CDZPKT_RAZPKT_ADr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r?rAr�r�rr�r�r�r�r�r�r�r�r�r�r�r�rrrr�s�     #&++>"&9aQ3/7