CasperSecurity

Current Path : /lib/python3/dist-packages/supervisor/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/supervisor/__pycache__/socket_manager.cpython-310.pyc

o

�a,_�@s6ddlZGdd�d�ZGdd�d�ZGdd�d�ZdS)�Nc@�0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�Proxyz` Class for wrapping a shared resource object and getting
        notified when it's deleted
    cKs||_|�dd�|_dS)N�	on_delete)�object�getr)�selfr�kwargs�r	�;/usr/lib/python3/dist-packages/supervisor/socket_manager.py�__init__szProxy.__init__cCs|jr	|��dSdS�N�r�rr	r	r
�__del__s�z
Proxy.__del__cCst|j|�Sr)�getattrr)r�namer	r	r
�__getattr__szProxy.__getattr__cC�|jSr)rrr	r	r
�_get�z
Proxy._getN)�__name__�
__module__�__qualname__�__doc__rrrrr	r	r	r
rsrc@r)�ReferenceCounterz8 Class for tracking references to a shared resource
    cKs|d|_|d|_d|_dS)N�on_non_zero�on_zeror)rr�	ref_count)rrr	r	r
rs


zReferenceCounter.__init__cCrr)rrr	r	r
�	get_countrzReferenceCounter.get_countcCs$|jdkr	|��|jd7_dS)Nr�)rrrr	r	r
�	increment"�
zReferenceCounter.incrementcCs:|jdkr	td��|jd8_|jdkr|��dSdS)Nrz.Illegal operation: cannot decrement below zeror)r�	Exceptionrrr	r	r
�	decrement's

�zReferenceCounter.decrementN)rrrrrrr r#r	r	r	r
rsrc@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�
SocketManagera Class for managing sockets in servers that create/bind/listen
        before forking multiple child processes to accept()
        Sockets are managed at the process group level and referenced counted
        at the process level b/c that's really the only place to hook in
    cKs6|�dd�|_d|_d|_||_t|j|jd�|_dS)N�loggerF)rr)	rr%�socket�prepared�
socket_configr�_close�_prepare_socket�ref_ctr)rr(rr	r	r
r5s�zSocketManager.__init__cCsd|jt|�|jjfS)Nz<%s at %s for %s>)�	__class__�idr(�urlrr	r	r
�__repr__>s�zSocketManager.__repr__cCrr)r(rr	r	r
�configCrzSocketManager.configcCrr)r'rr	r	r
�is_preparedFrzSocketManager.is_preparedcCs$|j��|��t|j|jjd�S)Nr
)r+r �_require_preparedrr&r#rr	r	r
�
get_socketIr!zSocketManager.get_socketcCs|��|j��Sr)r2r+rrr	r	r
�get_socket_ref_countNs
z"SocketManager.get_socket_ref_countcCs|jstd��dS)NzSocket has not been prepared)r'r"rr	r	r
r2Rs�zSocketManager._require_preparedcCsd|js0|jr|j�d|j�|j��|_|j��r$|j�|j���n|j�tj�d|_dSdS)NzCreating socket %sT)	r'r%�infor(�create_and_bindr&�get_backlog�listen�	SOMAXCONNrr	r	r
r*Vs

�zSocketManager._prepare_socketcCs4|��|jr|j�d|j�|j��d|_dS)NzClosing socket %sF)r2r%r5r(r&�closer'rr	r	r
r)as


zSocketManager._closeN)
rrrrrr/r0r1r3r4r2r*r)r	r	r	r
r$.s	r$)r&rrr$r	r	r	r
�<module>s
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY