File: //opt/alt/python37/lib/python3.7/site-packages/dns/__pycache__/zone.cpython-37.pyc
B
��fr� � @ s� d Z ddlmZmZmZmZmZmZmZm Z m
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m!Z!m"Z"m#Z# G dd� dej$j%�Z&G dd� de&�Z'G d d
� d
e&�Z(G dd� de&�Z)G d
d� dej$j%�Z*G dd� dej$j%�Z+G dd� dej$j%�Z,G dd� dej$j%�Z-G dd� dej.j/�Z0G dd� dej1j2�Z3ej4j4G dd� de3��Z5G dd� d�Z6G dd� de6�Z7ej4j4G dd � d e6��Z8G d!d"� d"ej.j9�Z9dej:j;d#e0dd$d#dd#f e<ee
ej=j>e<f ej:j?e@eee< e@e@eej=jA e
e@ee< f e0d%�d&d'�ZBdej:j;d#e0dd#d#dd#f eee
ej=j>e<f ej:j?e@eee< e@e@eej=jA e
e@ee< f e0d(�d)d*�ZCe0d#d#feee@e@e0d+�d,d-�ZDdS ).z
DNS Zones.� ) �Any�Dict�Iterator�Iterable�List�Optional�Set�Tuple�UnionN)�DigestScheme�DigestHashAlgorithm�_digest_hashersc @ s e Zd ZdZdS )�BadZonezThe DNS zone is malformed.N)�__name__�
__module__�__qualname__�__doc__� r r �9/opt/alt/python37/lib/python3.7/site-packages/dns/zone.pyr . s r c @ s e Zd ZdZdS )�NoSOAz)The DNS zone has no SOA RR at its origin.N)r r r r r r r r r 3 s r c @ s e Zd ZdZdS )�NoNSz+The DNS zone has no NS RRset at its origin.N)r r r r r r r r r 8 s r c @ s e Zd ZdZdS )�
UnknownOriginz!The DNS zone's origin is unknown.N)r r r r r r r r r = s r c @ s e Zd ZdZdS )�UnsupportedDigestSchemez(The zone digest's scheme is unsupported.N)r r r r r r r r r B s r c @ s e Zd ZdZdS )�UnsupportedDigestHashAlgorithmz(The zone digest's origin is unsupported.N)r r r r r r r r r G s r c @ s e Zd ZdZdS )�NoDigestz/The DNS zone has no ZONEMD RRset at its origin.N)r r r r r r r r r L s r c @ s e Zd ZdZdS )�DigestVerificationFailurez#The ZONEMD digest failed to verify.N)r r r r r r r r r Q s r c @ s� e Zd ZdZejjZddddgZej j
dfeeej
jef ej jed�dd �Zd
d� Zdd
� Zeej
jef ej
jd�dd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zdfeej
jef eejjd$�d%d&�Zdgeej
jef eeejj d$�d'd(�Z eej
jef d)d�d*d+�Z!ej"j#d#feej
jef eej"j$ef eej"j$ef eej%j&d,�d-d.�Z'ej"j#d#feej
jef eej"j$ef eej"j$ef eeej%j& d,�d/d0�Z(ej"j#feej
jef eej"j$ef eej"j$ef d)d1�d2d3�Z)eej
jef ej%j&d)d4�d5d6�Z*ej"j#feej
jef eej"j$ef eej"j$ef ej+j,d1�d7d8�Z-ej"j#feej
jef eej"j$ef eej"j$ef eej+j, d1�d9d:�Z.ej"j/ej"j#feej"j$ef eej"j$ef e0e1ej
jej%j&f d;�d<d=�Z2ej"j/ej"j#feej"j$ef eej"j$ef e0e1ej
je3ej4j5f d;�d>d?�Z6dhe7eeee eed)d@�dAdB�Z8dieeee eeedC�dDdE�Z9d)dF�dGdH�Z:djeej;j< ej=j/j>j>dI�dJdK�Z?e@jAfeBe@eCdL�dMdN�ZDe@jAfeBe@ej=j/jEjEdL�dOdP�ZFdkeej=j/jEjE d)dQ�dRdS�ZGdTdF�dUdV�ZHdledTdW�dXdY�ZIe1eej
j eeej
j f dF�dZd[�ZJd\d]� ZKd^d_� ZLd`da� ZMdbdc� ZNddde� ZOd)S )m�Zoneaz A DNS zone.
A ``Zone`` is a mapping from names to nodes. The zone object may be
treated like a Python dictionary, e.g. ``zone[name]`` will retrieve
the node associated with that name. The *name* may be a
``dns.name.Name object``, or it may be a string. In either case,
if the name is relative it is treated as relative to the origin of
the zone.
�rdclass�origin�nodes�
relativizeT)r r r c C sb |dk rFt |t�r tj�|�}nt |tjj�s6td��|�� sFtd��|| _|| _ i | _
|| _dS )a� Initialize a zone object.
*origin* is the origin of the zone. It may be a ``dns.name.Name``,
a ``str``, or ``None``. If ``None``, then the zone's origin will
be set by the first ``$ORIGIN`` line in a zone file.
*rdclass*, an ``int``, the zone's rdata class; the default is class IN.
*relativize*, a ``bool``, determine's whether domain names are
relativized to the zone's origin. The default is ``True``.
Nz2origin parameter must be convertible to a DNS namez)origin parameter must be an absolute name)�
isinstance�str�dns�name� from_text�Name�
ValueError�is_absoluter r r r )�selfr r r r r r �__init__f s
z
Zone.__init__c C s: t |t�sdS | j|jks2| j|jks2| j|jkr6dS dS )zqTwo zones are equal if they have the same origin, class, and
nodes.
Returns a ``bool``.
FT)r! r r r r )r) �otherr r r �__eq__� s
zZone.__eq__c C s | � |� S )z>Are two zones not equal?
Returns a ``bool``.
)r, )r) r+ r r r �__ne__� s zZone.__ne__)r$ �returnc C s� t |t�rtj�|d �}nt |tjj�s0td��|�� rr| jd krJtd��|� | j�s^td��| j
r�|�
| j�}n$| j
s�| jd kr�td��|�| j�}|S )Nz0name parameter must be convertible to a DNS namezno zone origin is definedz5name parameter must be a subdomain of the zone origin)r! r"