File: //lib/python3.9/site-packages/dns/__pycache__/update.cpython-39.pyc
a
�M�e�/ � @ s� d Z ddlmZmZmZmZ ddlZddlZddl Zddl
ZddlZddlZddl
ZddlZG dd� dejj�ZG dd� dejj�ZeZejZejZejZejZdS )zDNS Dynamic Update Support� )�Any�List�Optional�UnionNc @ s, e Zd ZdZdZdZdZdZedd� �Z dS ) �
UpdateSectionzUpdate sectionsr � � � c C s dS )Nr � )�clsr
r
�./usr/lib/python3.9/site-packages/dns/update.py�_maximum( s zUpdateSection._maximumN)
�__name__�
__module__�__qualname__�__doc__�ZONE�PREREQ�UPDATE�
ADDITIONAL�classmethodr
r
r
r
r r s r c s� e Zd ZeZdejjddejj dfe
eejj
ef ejje
e e
ejj
eejj
ef e
e d�� fdd�
Zeeejj d�dd��Zejdd� �Zeeejj d�d d
��Zejdd
� �Zeeejj d�dd
��Zejdd
� �Zd#dd�Zdd� Zeejj
ef edd�dd�Zeejj
ef edd�dd�Zeejj
ef edd�dd�Zeejj
ef edd�dd�Z d$eejj
ef e
eej!j"ef dd�dd�Z#dd � Z$d!d"� Z%� Z&S )%�
UpdateMessageN)�zone�rdclass�keyring�keyname�keyalgorithm�idc s� t � j|d� | jtj�tjj�O _t|t�r>tj �
|�}|| _tjj
�|�}|| _| jr|| j| j| j|tjjddd� |dur�| j|||d� dS )ax Initialize a new DNS Update object.
See the documentation of the Message class for a complete
description of the keyring dictionary.
*zone*, a ``dns.name.Name``, ``str``, or ``None``, the zone
which is being updated. ``None`` should only be used by dnspython's
message constructors, as a zone is required for the convenience
methods like ``add()``, ``replace()``, etc.
*rdclass*, an ``int`` or ``str``, the class of the zone.
The *keyring*, *keyname*, and *keyalgorithm* parameters are passed to
``use_tsig()``; see its documentation for details.
)r T)ZcreateZforce_uniqueN)� algorithm)�super�__init__�flags�dnsZopcodeZto_flagsr �
isinstance�str�name� from_text�origin�
rdataclass�
RdataClass�make�zone_rdclass�
find_rrsetr � rdatatype�SOAZuse_tsig)�selfr r r r r r �� __class__r
r r 1 s$
�zUpdateMessage.__init__)�returnc C s
| j d S )zThe zone section.r �Zsections�r/ r
r
r r \ s zUpdateMessage.zonec C s || j d<