HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/zmq/auth/__pycache__/thread.cpython-310.pyc
o

;j�@svdZddlZddlmZmZddlmZmZmZddl	Z	ddl
Z	ddlmZGdd�de�Z
Gd	d
�d
e�Zd
gZdS)z>ZAP Authenticator in a Python Thread.

.. versionadded:: 14.1
�N)�Event�Thread)�Any�List�Optional�)�
Authenticatorcs�eZdZUdZejed<ejed<e	ed<dZ
eejjed<de	dejddf�fdd	�Z
dd
d�Zdd
�Zdeedefdd�Z�ZS)�AuthenticationThreadzgA Thread for running a zmq Authenticator

    This is run in the background by ThreadAuthenticator
    �pipe�loop�
authenticatorN�poller�returncs.t�jdd�||_|j|_||_t�|_dS)NT)�daemon)�super�__init__r�logr
r�started)�selfrr
��	__class__��C/opt/saltstack/salt/lib/python3.10/site-packages/zmq/auth/thread.pyrs
zAuthenticationThread.__init__cCs\t��}z|�|���W|jr|j��d|_|��dS|jr)|j��d|_|��w)z*Start the Authentication Agent thread taskN)�asyncioZnew_event_loopZrun_until_complete�_runr
�close)rrrrr�run*s
�

zAuthenticationThread.runc�s��tj��|_|j�|jtj�|j�|jjtj�|j	�
�	t|j��IdH�}|j|vr;|j�
�}|�|�r;dS|jj|vrP|jj�
�}|j�|�IdHq �N)�zmqr�Pollerr
�registerr
�POLLINrZ
zap_socketr�set�dict�pollZrecv_multipart�_handle_pipe_messageZhandle_zap_message)r�events�msgrrrr7s�



�zAuthenticationThread._runr'cCs@|d}|j�d|�|dkrdS|j�d|�|j�d�dS)Nrzauth received API command %r�	TERMINATETz!Invalid auth command from API: %rsERRORF)r�debug�errorr
�send)rr'Zcommandrrrr%Gsz)AuthenticationThread._handle_pipe_message�rN)�__name__�
__module__�__qualname__�__doc__r�Socket�__annotations__rZAbstractEventLooprr
rrrrrr�bytes�boolr%�
__classcell__rrrrr	s 


���

r	cs�eZdZUdZded<dZeed<eed<			dd	ed
dede	f�fd
d�
Z
d�fdd�Zd�fdd�Zde
fdd�Zddd�Z�ZS)�ThreadAuthenticatorz-Run ZAP authentication in a background threadz
zmq.Socketr
��
pipe_endpoint�threadN�utf-8�contextzzmq.Context�encodingrcs4t�j|||d�d|_dt|��d�|_d|_dS)N)r;r<rz	inproc://z.inproc)rrr
�idr8r9)rr;r<rrrrr\s
zThreadAuthenticator.__init__rcs�t���|jjtjtjd�|_d|j_|j�	|j
�|jjtjtjd�}d|_|�|j
�t||d�|_
|j
��|j
jjdd�sFtd��dS)zStart the authentication thread)Zsocket_classr)rr
�
)�timeoutz$Authenticator thread failed to startN)r�startr;�socketrZPAIRr1r
Zlinger�bindr8�connectr	r9r�wait�RuntimeError)rZthread_piperrrr@gs

�zThreadAuthenticator.startcsH|jr|j�d�|��r|j��d|_|j��d|_t���dS)zStop the authentication threadr(N)r
r+�is_aliver9�joinrr�stop�rrrrrHxs

zThreadAuthenticator.stopcCst|jo|j���S)z$Is the ZAP thread currently running?)r4r9rFrIrrrrF�szThreadAuthenticator.is_alivecCs|��dSr)rHrIrrr�__del__�szThreadAuthenticator.__del__)Nr:Nr,)r-r.r/r0r2r8�strr	rrrr@rHr4rFrJr5rrrrr6Us&
����r6)r0r�	threadingrr�typingrrrrZzmq.asyncio�baserr	r6�__all__rrrr�<module>sB
6