⚝
One Hat Cyber Team
⚝
Your IP:
3.145.157.63
Server IP:
97.74.87.16
Server:
Linux 16.87.74.97.host.secureserver.net 5.14.0-503.38.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 18 08:52:10 EDT 2025 x86_64
Server Software:
Apache
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3.9
/
site-packages
/
dns
/
__pycache__
/
View File Name :
versioned.cpython-39.pyc
a �����M�e�-����������������������@���s����d�Z�ddlZddlZddlmZmZmZmZmZ�ddl Z ddlZ ddlZ ddl Z ddlZ ddlZ ddlZ ddlZ ddlZ G�dd��de jj�Ze jjZe jjZe jjZe jjZe jjZe jjZG�dd��de jj�ZdS�)zDNS Versioned Zones.�����N)�Callable�Deque�Optional�Set�Unionc�������������������@���s���e�Zd�ZdZdS�)�UseTransactionz-To alter a versioned zone, use a transaction.N)�__name__� __module__�__qualname__�__doc__��r���r����1/usr/lib/python3.9/site-packages/dns/versioned.pyr������s���r���c���������������� �������sX��e�Zd�Zg�d�ZeZejjddfe e ejje f��ejjee ed�ege e�f��d���fdd� Zd7e e�e e�ed�dd �Zd8eed�dd �Zdd��Zdd��Zdd��Ze e�dd�dd�Ze ed�ege e�f��dd�dd�Zdd��Zdd��Zdd��Zd d!��Zd"d#��Z d$d%��Z!d9e ejje f�eej"jd&���fd'd(� Z#e ejje f�dd)�d*d+�Z$ej%j&d fe ejje f�e ej%j'e f�e ej%j'e f�eej(j)d,���fd-d.� Z*ej%j&d fe ejje f�e ej%j'e f�e ej%j'e f�ee ej(j)�d,���fd/d0� Z+ej%j&fe ejje f�e ej%j'e f�e ej%j'e f�dd1�d2d3�Z,e ejje f�ej(j)dd4�d5d6�Z-���Z.S�):�Zone)� _versionsZ_versions_lock� _write_txn�_write_waiters�_write_event�_pruning_policy�_readersTN)�origin�rdclass� relativize�pruning_policyc��������������������st���t����|||��t���|�_t���|�_|du�r6|�j|�_ n||�_ d|�_ d|�_t���|�_t ��|�_|��dt|�dd�|��dS�)a���Initialize a versioned 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``. *pruning policy*, a function taking a ``Zone`` and a ``Version`` and returning a ``bool``, or ``None``. Should the version be pruned? If ``None``, the default policy, which retains one version is used. NT)�replacement)�super�__init__�collections�dequer���� threading�Lock� _version_lock�_default_pruning_policyr���r���r���r����setr����_commit_version_unlocked�WritableVersion)�selfr���r���r���r����� __class__r���r ���r���.���s���� �z Zone.__init__)�id�serial�returnc����������� ������C���s:��|d�ur|d�urt�d��|�j���|d�urbd�}t|�j�D�]}|j|kr8|}�qPq8|d�u�r�td��n�|d�ur�|�jrztjj }n|�j d�us�J��|�j }d�}t|�j�D�]@}|j�|�}|r�|� |�jtjj�}|r�|d�j|kr�|}�q�q�|d�u�r�td��n |�jd�}t|�d|�}|�j�|��|W��d�����S�1��s,0����Y��d�S�)Nz!cannot specify both id and serialzversion not foundr���zserial not found���F)� ValueErrorr ����reversedr���r(����KeyErrorr����dns�name�emptyr����nodes�get�get_rdatasetr���� rdatatypeZSOAr)����Transactionr����add) r%���r(���r)����version�vZoname�nZrds�txnr���r���r ����readerS���s<���� zZone.readerF)r���r*���c�����������������C���s����d�}|�j��\�|�jd�u�rD||�jkrDt|�|dd�|�_d�|�_W�d�����q�t���}|�j�|��W�d�����n1�sl0����Y��|����q|�j� ���|�jS�)NT)Zmake_immutable) r ���r���r���r6���r����Eventr����append�waitZ_setup_version)r%���r���Zeventr���r���r ����writerw���s�����* zZone.writerc�����������������C���s(���t�|�j�dkr$|�j���|�_|�j����d�S�)Nr���)�lenr����popleftr���r"���)r%���r���r���r ����!_maybe_wakeup_one_waiter_unlocked����s����z&Zone._maybe_wakeup_one_waiter_unlockedc�����������������C���s���dS�)NTr���)r%����zoner8���r���r���r ���r!�������s����zZone._default_pruning_policyc�����������������C���st���t�|�j�dksJ��t�|�j�dkr6tdd��|�jD���}n|�jd�j}|�jd�j|k�rp|��|�|�jd��rp|�j����qBd�S�)Nr���c�����������������s���s���|�]}|j�jV��qd�S��N)r8���r(���)�.0r;���r���r���r ���� <genexpr>���������z0Zone._prune_versions_unlocked.<locals>.<genexpr>r+���)rA���r���r����minr(���r���rB���)r%���Z least_keptr���r���r ����_prune_versions_unlocked����s���� �zZone._prune_versions_unlocked)�max_versionsr*���c��������������������sD�����dur��dk�rt�d����du�r*dd��}n��fdd�}|��|��dS�)zYSet a pruning policy that retains up to the specified number of versions N����zmax versions must be at least 1c�����������������S���s���dS�)NFr����rD����_r���r���r ����policy����s����z%Zone.set_max_versions.<locals>.policyc��������������������s���t�|�j���kS�rE���)rA���r���rM����rK���r���r ���rO�������s����)r,����set_pruning_policy)r%���rK���rO���r���rP���r ����set_max_versions����s���� zZone.set_max_versions)rO���r*���c�����������������C���sF���|du�r|�j�}|�j��||�_|�����W�d����n1�s80����Y��dS�)a���Set the pruning policy for the zone. The *policy* function takes a `Version` and returns `True` if the version should be pruned, and `False` otherwise. `None` may also be specified for policy, in which case the default policy is used. Pruning checking proceeds from the least version and the first time the function returns `False`, the checking stops. I.e. the retained versions are always a consecutive sequence. N)r!���r ���r���rJ���)r%���rO���r���r���r ���rQ�������s ����zZone.set_pruning_policyc�����������������C���s>���|�j��$�|�j�|��|�����W�d�����n1�s00����Y��d�S�rE���)r ���r����removerJ����r%���r;���r���r���r ���� _end_read����s����zZone._end_readc�����������������C���s ���|�j�|ksJ��d�|�_�|�����d�S�rE���)r���rC���rT���r���r���r ����_end_write_unlocked����s����zZone._end_write_unlockedc�����������������C���s4���|�j���|��|��W�d�����n1�s&0����Y��d�S�rE���)r ���rV���rT���r���r���r ���� _end_write����s����zZone._end_writec�����������������C���sB���|�j��|��|�����|j|�_|�jd�u�r,||�_|d�ur>|��|��d�S�rE���)r���r>���rJ���r2���r���rV����r%���r;���r8���r���r���r���r ���r#�������s���� zZone._commit_version_unlockedc�����������������C���s8���|�j���|��|||��W�d�����n1�s*0����Y��d�S�rE���)r ���r#���rX���r���r���r ����_commit_version��s����zZone._commit_versionc�����������������C���s(���t�|�j�dkr |�jd�jd�}nd}|S�)Nr���r+���rL���)rA���r���r(���)r%���r(���r���r���r ����_get_next_version_id��s����zZone._get_next_version_id)r0����creater*���c��������������������s���|rt��t���|�S�rE���)r���r���� find_node)r%���r0���r[���r&���r���r ���r\�����s����zZone.find_node)r0���r*���c�����������������C���s���t��d�S�rE����r���)r%���r0���r���r���r ����delete_node��s����zZone.delete_node)r0����rdtype�coversr[���r*���c��������������������s$���|rt��t���|||�}tj�|�S�rE���)r���r���� find_rdatasetr/����rdataset�ImmutableRdataset�r%���r0���r_���r`���r[���rb���r&���r���r ���ra�����s����zZone.find_rdatasetc��������������������s4���|rt��t���|||�}|d�ur,tj�|�S�d�S�d�S�rE���)r���r���r4���r/���rb���rc���rd���r&���r���r ���r4���$��s����zZone.get_rdataset)r0���r_���r`���r*���c�����������������C���s���t��d�S�rE���r]���)r%���r0���r_���r`���r���r���r ����delete_rdataset3��s����zZone.delete_rdataset)r0���r���r*���c�����������������C���s���t��d�S�rE���r]���)r%���r0���r���r���r���r ����replace_rdataset;��s����zZone.replace_rdataset)NN)F)F)/r���r ���r ���� __slots__�NodeZnode_factoryr/���Z rdataclass�INr���r���r0����Name�strZ RdataClass�boolr����Versionr����intr6���r<���r@���rC���r!���rJ���rR���rQ���rU���rV���rW���r#���rY���rZ���Znoder\���r^���r5���ZNONEZ RdataTyperb���ZRdatasetra���r4���re���rf���� __classcell__r���r���r&���r ���r���!���s���� ��&���$1� ������ ��� �r���) r���r���r����typingr���r���r���r���r���Z dns.exceptionr/���Z dns.immutableZdns.nameZdns.nodeZdns.rdataclassZdns.rdatasetZ dns.rdatatypeZdns.rdtypes.ANY.SOAZdns.zone� exceptionZDNSExceptionr���rD���Z VersionedNoderh���ZImmutableVersionedNodeZ ImmutableNoderm���r$���ZImmutableVersionr6���r���r���r���r���r ����<module>���s(���