File: //opt/saltstack/salt/lib/python3.10/site-packages/zmq/auth/__pycache__/thread.cpython-310.pyc
o
�N�g/ � @ s� d Z ddlZddlmZ ddlmZmZ ddlmZm Z m
Z
mZmZm
Z
ddlZddlmZ ddlmZ G d d
� d
e�Zeded�Zd
edefdd�ZeG dd� d��ZdgZdS )z>ZAP Authenticator in a Python Thread.
.. versionadded:: 14.1
� N)�chain)�Event�Thread)�Any�Dict�List�Optional�TypeVar�cast)�jsonapi� )�
Authenticatorc
sp e Zd ZdZ ddddededed ee d
df� fdd�
Zdd
d�Z ddd�Z
dee d
e
fdd�Z� ZS )�AuthenticationThreadziA Thread for running a zmq Authenticator
This is run in the background by ThreadedAuthenticator
�utf-8N�context�zmq.Context�endpoint�encoding�log�
authenticator�returnc sv t � �� |ptj�� | _|| _|pt�d� | _ }t
� | _|p&t|||d�| _
|�tj�| _d| j_| j�|� d S )Nzzmq.auth�r r r )�super�__init__�zmq�Context�instancer r �logging� getLoggerr r �startedr
r �socket�PAIR�pipe�linger�connect)�selfr r r r r �� __class__� �C/opt/saltstack/salt/lib/python3.10/site-packages/zmq/auth/thread.pyr s
�zAuthenticationThread.__init__c C s | j �� | j�� | j j}t�� }|�| jtj � |�|tj � zt
|�� �}W n
tjy4 Y n@w | j|v rd|| j tj krd z
| jj
tjd�}W n
tjyW Y n
w | �|�}|r`nqC|rdn||v rs|| tj krs| �� q"| j�� | j �� dS )z*Start the Authentication Agent thread taskT)�flagsN)r �startr �set�
zap_socketr ZPoller�registerr"