Your IP : 216.73.216.196
B
��q^t � c @ s� d Z ddlmZmZ ddddddd d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddegcZddflZddflZddflZddflZddgl m
Z
ddhlmZ ej
Z
ddilmZmZmZ ddjlmZmZ ddklmZ ddllmZmZ ddmlmZ ddnlmZ ddolmZmZm Z m!Z!m"Z" e�r�dpdq� Z#drds� Z$dtdu� Z%ne&Z#e' Z$Z%dvdw� Z(dxZ)e*dydz�\Z+Z,Z-Z.Z/Z0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z:Z;Z<d{Z=d|Z>d}Z?d~Z@dZAd�ZBd�ZCd�ZDd�ZEd�ZFe+de,de-de.de/d e0de1de2de3de4de5d!e6de7de8de9de:de;de<de=de>de?de@deAd
eBdeCdeDdeEd�eFd iZGe*d�d��\ZHZIZJZKZLeHd)eId(eJd
eKdeLd'iZMeNd�d�� e
eG�O� eM�O� �D ��ZPe*dyd��\ZQZRZSZTd�ZUeQd&eRd$eSd#eTd%eUd"iZVeNd�d�� eV�O� D ��ZWe*d��\ZXZYZZd�Z[d�Z\e*d��\Z]Z^Z_Z`ZaZbd�Zce*d�dz�\ZdZeZfG d�d� de�Zgdd�lhmiZimjZj dd�lhmkZk d�d�� Zld�d�� Zmd�d�� Znd�d�� Zod�d�� ZpG d�d� de�Zqeeq�G d�dS� dSer��Zseeq�G d�dU� dU��Zte eeq�G d�dV� dV���Zueeq�G d�d�� d�ejvejwer��Zxeeq�G d�d�� d�ejvejwer��Zyeeq�G d�dW� dWejw��Zzeeqeg�G d�dX� dXejvejw��Z{G d�dB� dBe{�Z|G d�d;� d;e{�Z}G d�d<� d<e{�Z~G d�d7� d7e{�ZG d�d:� d:e{�Z�G d�d=� d=e{�Z�G d�d?� d?e{�Z�G d�dD� dDe{�Z�G d�d8� d8e{�Z�eeqeg�G d�d3� d3ejw��Z�eeqeg�G d�dF� dFejwejv��Z�eeqeg�G d�dC� dCejvejw��Z�eeqeg�G d�dL� dLejwejv��Z�eeqeg�G d�d5� d5ejwejv��Z�eeqeg�G d�d4� d4ejvejw��Z�eeqeg�G d�dH� dHejwejv��Z�eeqeg�G d�dA� dAejwejv��Z�eeqeg�G d�d6� d6ejvejw��Z�eeqeg�G d�dE� dEejwejv��Z�eeqeg�G d�d9� d9ejvejw��Z�eeqeg�G d�d>� d>ejwejv��Z�eeqeg�G d�d@� d@ejvejw��Z�eeqeg�G d�dI� dIejwejv��Z�eeqeg�G d�dK� dKejwejv��Z�eeqeg�G d�dM� dMejwejver��Z�G d�dG� dGe��Z�eeqeg�G d�dJ� dJejwejv��Z�d�dĄ Z�d�dƄ Z�d�d�dȄZ�G d�dT� dTejw�Z�G d�d˄ d�ejwer�Z�G d�dZ� dZer�Z�G d�dY� dYe�ej��Z�G d�d[� d[e�ej��Z�dfS )�zU
DNS protocol implementation.
Future Plans:
- Get rid of some toplevels, maybe.
� )�division�absolute_import�
IEncodable�IRecord�A�A6�AAAA�AFSDB�CNAME�DNAME�HINFO�MAILA�MAILB�MB�MD�MF�MG�MINFO�MR�MX�NAPTR�NS�NULL�OPT�PTR�RP�SOA�SPF�SRV�TXT�SSHFP�TSIG�WKS�ANY�CH�CS�HS�IN�ALL_RECORDS�AXFR�IXFR�EFORMAT�ENAME�ENOTIMP�EREFUSED�ESERVER�EBADVERSION�EBADSIG�EBADKEY�EBADTIME�Record_A� Record_A6�Record_AAAA�Record_AFSDB�Record_CNAME�Record_DNAME�Record_HINFO� Record_MB� Record_MD� Record_MF� Record_MG�Record_MINFO� Record_MR� Record_MX�Record_NAPTR� Record_NS�Record_NULL�
Record_PTR� Record_RP�
Record_SOA�
Record_SPF�
Record_SRV�Record_SSHFP�Record_TSIG�
Record_TXT�
Record_WKS�
UnknownRecord�
QUERY_CLASSES�QUERY_TYPES�REV_CLASSES� REV_TYPES�EXT_QUERIES�Charstr�Message�Name�Query�RRHeader�SimpleRecord�DNSDatagramProtocol�DNSMixin�DNSProtocol�OK�
OP_INVERSE� OP_NOTIFY�OP_QUERY� OP_STATUS� OP_UPDATE�PORT�AuthoritativeDomainError�DNSQueryTimeoutError�DomainErrorN)�chain)�BytesIO)�implementer� Interface� Attribute)�protocol�defer)�CannotListenError)�log�failure)�util)� randbytes)�_PY3�unicode�
comparable�cmp�nativeStringc C s
t | g�S )z�
Construct a bytes object representing a single byte with the given
ordinal value.
@type ordinal: L{int}
@rtype: L{bytes}
)�bytes)Zordinal� ry �D/opt/alt/python37/lib64/python3.7/site-packages/twisted/names/dns.py�
_ord2bytesF s r{ c C s t | �dd� S )z�
Represent a mostly textful bytes object in a way suitable for
presentation to an end user.
@param bytes: The bytes to represent.
@rtype: L{str}
� N)�repr)rx ry ry rz �
_nicebytesQ s r~ c C s dd� dd� | D ��f S )z�
Represent a list of mostly textful bytes objects in a way suitable for
presentation to an end user.
@param list: The list of bytes to represent.
@rtype: L{str}
z[%s]z, c S s g | ]}t |��qS ry )r~ )�.0�bry ry rz �
<listcomp>e s z"_nicebyteslist.<locals>.<listcomp>)�join)�listry ry rz �_nicebyteslist\ s r� c C s t �dtjddd��d S )z�
Wrapper around L{twisted.python.randbytes.RandomFactory.secureRandom} to
return 2 random bytes.
@rtype: L{bytes}
�H� T)Zfallbackr )�struct�unpackrr ZsecureRandomry ry ry rz �randomSourcel s r� �5 r| � � �! �# �&