403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/flup/server/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/flup/server/__pycache__/preforkserver.cpython-311.pyc
�

#H\aS=��.�dZdZddlZddlZddlZddlZddlZddlZddlZddl	Z		ddl
Z
d�Zn#e$rd�ZYnwxYwddl
mZeed��s$	ddlZn#e$red���wxYwd	�Zee_Gd
�de��Zedkr�Gd
�de��Zej��Ze�ejejd��e�d��e�ej��ede����e��dSdS)zAllan Saddi <allan@saddi.com>z
$Revision$�Nc�~�tj|���tjtj��dS�N)�fcntl�fileno�F_SETFD�
FD_CLOEXEC��socks �;/usr/lib/python3/dist-packages/flup/server/preforkserver.py�setCloseOnExecr-s)��
��D�K�K�M�M�5�=�%�2B�C�C�C�C�C�c��dSr�r	s rrr*s���r
)�	get_errno�
socketpairz(Requires eunuchs module for Python < 2.4c�D�tj���\}}tj|tjtj��tj|tjtj��}}t
j|��t
j|��||fSr)�eunuchsr�socket�fromfd�AF_UNIX�SOCK_STREAM�os�close)�s1�s2�p�cs    rrr;sp���#�.�.�0�0���B��
�b�&�.�&�2D�E�E��
�b�&�.�&�2D�E�E�
��
������
�������!�t�r
c�f�eZdZdZ		dd�Zd	�Zd
�Zd�Zd�Zd
�Z	d�Z
d�Zd�Zd�Z
d�Zd�Zd�ZdS)�
PreforkServerap
    A preforked server model conceptually similar to Apache httpd(2). At
    any given time, ensures there are at least minSpare children ready to
    process new requests (up to a maximum of maxChildren children total).
    If the number of idle children is ever above maxSpare, the extra
    children are killed.

    If maxRequests is positive, each child will only handle that many
    requests in its lifetime before exiting.
    
    jobClass should be a class whose constructor takes at least two
    arguments: the client socket and client address. jobArgs, which
    must be a list or tuple, is any additional (static) arguments you
    wish to pass to the constructor.

    jobClass should have a run() method (taking no arguments) that does
    the actual work. When run() returns, the request is considered
    complete and the child process moves to idle state.
    ���2rNrc��||_||_t||��|_||_||_||_i|_dSr)�	_minSpare�	_maxSpare�max�_maxChildren�_maxRequests�	_jobClass�_jobArgs�	_children)�self�minSpare�maxSpare�maxChildren�maxRequests�jobClass�jobArgss       r�__init__zPreforkServer.__init__YsE��!���!�����+�6�6���'���!�����
�����r
c��d|_d|_|���|�d��t	|��|j�r�t|j��|jkr3|�|��snt|j��|jk�3d�|j�	��D��}t|��t|j��krd}nd}	tj
|gg|��\}}}n:#tj$r(}t|��tjkr�Yd}~nd}~wwxYw|D]�}	|�d��}n<#t j$r*}|j
tjtjfvrYd}~�L�d}~wwxYw|j���D]W\}}	||	durH|r|d	k|j|d
<�&|j|}	|	d���d|	d<d|	d
<�X��|���d�t+|j�����D��}
t|
��}||jkrl||jkr`t|j��|jkrC|�|��sn-|dz
}||jkrt|j��|jk�Cnp||jkred�|
D��}|���||jd�}|D]3}|j|}	|	d���d|	d<d|	d
<�4|j���|���|���|jS)
z�
        The main loop. Pass a socket that is ready to accept() client
        connections. Return value will be True or False indiciating whether
        or not the loop was exited due to SIGHUP.
        TFrc�.�g|]}|d�
|d��S��filer��.0�xs  r�
<listcomp>z%PreforkServer.run.<locals>.<listcomp>�s/��+�+�+�q��f�I�)��6��)�)�)r
N�r r7��availc�.�g|]}|dd�|��S)r r>rr8s  rr;z%PreforkServer.run.<locals>.<listcomp>�s%��R�R�R�q�A�a�D��M�R��R�R�Rr
c��g|]
}|d��S)rrr8s  rr;z%PreforkServer.run.<locals>.<listcomp>�s��0�0�0���!��0�0�0r
)�
_keepGoing�_hupReceived�_installSignalHandlers�setblockingr�lenr+r%�_spawnChild�values�select�errorr�errno�EINTR�recvr�EAGAIN�itemsr�
_reapChildren�listr$r'�sort�_cleanupChildren�_restoreSignalHandlers)
r,r
�r�timeout�w�e�child�state�pid�d�	availListr>�pidss
             r�runzPreforkServer.runhs������!����#�#�%�%�%�	
�������	�t�����o�D	'��d�n�%�%���6�6��'�'��-�-�4�u��d�n�%�%���6�6�+�+�D�N�$9�$9�$;�$;�+�+�+�A��1�v�v��T�^�,�,�,�,������
� �-��2�r�7�;�;���1�a�a���<�
�
�
��Q�<�<�5�;�.�.��/�.�.�.�.�����
����
�
/�
/���!�J�J�q�M�M�E�E���|�����w�5�<���"=�=�=� ����������	����"�^�1�1�3�3�/�/�E�C����&�	�)�)� �	/�;@�G�;K�D�N�3�/��8�8�!%��s� 3�A��f�I�O�O�-�-�-�(,�A�f�I�).�A�g�J��/�
��� � � �S�R�D���)=�)=�)?�)?�$@�$@�R�R�R�I��	�N�N�E��t�~�%�%��d�n�,�,��$�.�)�)�D�,=�=�=��+�+�D�1�1�8�5��Q�J�E��d�n�,�,��$�.�)�)�D�,=�=�=�����'�'�0�0�i�0�0�0���	�	�����D�N�O�O�,���'�'�C���s�+�A��f�I�O�O�%�%�%� $�A�f�I�!&�A�g�J�J�I�o�D	'�N	
������	
�#�#�%�%�%�� � s6�-D	�	E�D;�;E�E�F�-F�F�Fc��|j���D]�\}}|d�|d���d|d<|dsN	tj|t
j���U#t$r }|jtj	kr�Yd}~�zd}~wwxYw��d�}tj
t
j��}tjt
j|��tjd��t|j��rx	tj��\}}n;#t$r.}|jtjtjfvrYd}~n2Yd}~nd}~wwxYw||jvr|j|=t|j���xtjt
j|��|j���D]O}	tj|t
j���##t$r }|jtj	kr�Yd}~�Hd}~wwxYwdS)a
        Closes all child sockets (letting those that are available know
        that it's time to exit). Sends SIGINT to those that are currently
        processing (and hopes that it finishses ASAP).

        Any children remaining after 10 seconds is SIGKILLed.
        r7Nr>c��dSrr)�signum�frames  r�alrmHandlerz3PreforkServer._cleanupChildren.<locals>.alrmHandler�s���Dr
�
)r+rNrr�kill�signal�SIGINT�OSErrorrJ�ESRCH�	getsignal�SIGALRM�alarmrE�wait�ECHILDrK�keys�SIGKILL)r,rZr[rWrc�
oldSIGALRM�statuss       rrRzPreforkServer._cleanupChildren�sG���^�)�)�+�+�
	�
	�E�C����y�$��&�	���!�!�!� ��&�	��W�:�
���G�C���/�/�/�/�������w�%�+�-�-��.�-�-�-�-���������	
�	�	�	��%�f�n�5�5�
��
�f�n�k�2�2�2���R�����$�.�!�!�	(�
� �g�i�i���V�V���
�
�
��7�u�|�U�[�9�9�9��E�E�E�E�:�9�9�9�9�����
�����d�n�$�$��N�3�'��$�.�!�!�	(�	�
�f�n�j�1�1�1��>�&�&�(�(�	�	�C�
����V�^�,�,�,�,���
�
�
��7�e�k�)�)��*�)�)�)�)�����
����	�	sH�A/�/
B�9B�B�D�
E�'E�E�8G�
H�"G=�=Hc�L�		tjdtj��\}}n.#t$r!}|jtjkrYd}~dS�d}~wwxYw|dkrdS||jvr@|j|d�%|j|d���|j|=��)z/Cleans up self._children whenever children die.T���Nrr7)r�waitpid�WNOHANGrhrJrnr+r)r,rZrrrWs    rrOzPreforkServer._reapChildren�s���	(�
� �j��R�Z�8�8���V�V���
�
�
��7�e�l�*�*��E�E�E�E�E������
�����a�x�x����d�n�$�$��>�#�&�v�.�:��N�3�'��/�5�5�7�7�7��N�3�'�	(s�"&�
A�A�A�Ac�R�tj��\}}|�d��t|��|�d��t|��	t	j��}n8#t$r+}|jtjtj	fvrYd}~dS�d}~wwxYw|s�|�
��t	j��}t	j||��|�
��d�|j���D��D]}|�
���i|_	|�||��n#t"$rYnwxYwt%jd��dS|�
��ix}|j|<||d<d|d<dS)zT
        Spawn a single child. Returns True if successful, False otherwise.
        rNFc�.�g|]}|d�
|d��Sr6rr8s  rr;z-PreforkServer._spawnChild.<locals>.<listcomp>$s/��0�0�0�A��6��.���i�.�.�.r
r7Tr>)rrrDrr�forkrhrJrM�ENOMEMr�getpid�setpgidrSr+rG�_child�KeyboardInterrupt�sys�exit)r,r
�parentrXrZrW�fr[s        rrFzPreforkServer._spawnChild
s����)�+�+�
������1�����v����
���!�����u����	��'�)�)�C�C���	�	�	��w�5�<���6�6�6��u�u�u�u�u������	�����	��K�K�M�M�M��)�+�+�C��J�s�C� � � ��'�'�)�)�)�0�0���)>�)>�)@�)@�0�0�0�
�
�����	�	�	�	��D�N�
����D�&�)�)�)�)��$�
�
�
���
�����H�Q�K�K�K�K�K�
�L�L�N�N�N�&(�(�A���s�#��A�f�I��A�g�J��4s0� A4�4
B)�>B$�#B$�$B)�E�
E$�#E$c��dS)z#Override to provide access control.Tr)r,�addrs  r�_isClientAllowedzPreforkServer._isClientAllowed6s���tr
c��		|�|��dS#tj$rS}|jtjkrYd}~dS|jtjkrt
jg|gg��n�Yd}~nd}~wwxYw�~)z=Send message to parent, ignoring EPIPE and retrying on EAGAINTNF)�sendrrIrJ�EPIPErMrH)r,r��msgrWs    r�
_notifyParentzPreforkServer._notifyParent:s���	�

����C� � � ��t���<�
�
�
��7�e�k�)�)� �5�5�5�5�5��7�e�l�*�*��M�"�v�h��3�3�3�3��4�3�3�3�3�����
����		s��A<�A7�.A7�7A<c�:�d}d}ttd��r&	tjd��}n#t$rYnwxYwt	j|�tj���tj������~	tj||ggg��\}}}|D]	}||urdS�
	|�	��\}	}
n2#tj$r }|jtj
krYd}~�k�d}~wwxYwt|	��|�|
��s|	�����|�|d��|j|	|
g|j�R����|jdkr|dz
}||jkrdS|�|d	��sdS��)
zMain loop for children.r��urandom�TNr=r ��)�hasattrrr��NotImplementedError�random�seedr{�timerH�acceptrrIrJrMrr�rr�r)r*r^r()r,r
r��requestCount�preseedrTrVrWr��
clientSockr�s           rr}zPreforkServer._childIs��������2�y�!�!�	�
��*�R�.�.����&�
�
�
���
����	���������d�i�k�k�k�B�C�C�C��)	��m�T�6�N�B��;�;�G�A�q�!��
�
����;�;��F�F��
�#'�;�;�=�=� �
�D�D���<�
�
�
��7�e�l�*�*��H�H�H�H������	
����
�:�&�&�&��(�(��.�.�
�� � �"�"�"��
���v�w�/�/�/�
�D�N�:�t�<�d�m�<�<�<�@�@�B�B�B�� �1�$�$���!���4�#4�4�4��E��%�%�f�g�6�6�
���S)	s*�0�
=�=�'B?�?C.�C)�(C)�)C.c�"�d|_d|_dS)NFT)rArB�r,rarbs   r�_hupHandlerzPreforkServer._hupHandler�s����� ����r
c��d|_dS)NF)rAr�s   r�_intHandlerzPreforkServer._intHandler�s
������r
c��dSrrr�s   r�_chldHandlerzPreforkServer._chldHandler�s���r
c�~�tjtjg}ttd��r|�tj��d�|D��|_|D]\}ttd��r+|tjkrtj||j���Btj||j���]dS)N�SIGHUPc�:�g|]}|tj|��f��Sr)rfrjr8s  rr;z8PreforkServer._installSignalHandlers.<locals>.<listcomp>�s(��K�K�K�Q�!�F�,�Q�/�/�0�K�K�Kr
)	rfrg�SIGTERMr��appendr��_oldSIGsr�r�)r,�supportedSignals�sigs   rrCz$PreforkServer._installSignalHandlers�s���"�M�6�>�:���6�8�$�$�	3��#�#�F�M�2�2�2�K�K�:J�K�K�K��
�#�	5�	5�C��v�x�(�(�
5�S�F�M�-A�-A��
�c�4�#3�4�4�4�4��
�c�4�#3�4�4�4�4�		5�	5r
c�J�|jD]\}}tj||���dS)z"Restores previous signal handlers.N)r�rf)r,ra�handlers   rrSz$PreforkServer._restoreSignalHandlers�s6��"�m�	+�	+�N�F�7��M�&�'�*�*�*�*�	+�	+r
)r r!r"rNr)�__name__�
__module__�__qualname__�__doc__r3r^rRrOrFr�r�r}r�r�r�rCrSrr
rrrEs���������&<>�79�
�
�
�
�_!�_!�_!�B/�/�/�b(�(�(� *�*�*�X���
�
�
�9�9�9�z!�!�!� � � �
�
�
�5�5�5�+�+�+�+�+r
r�__main__c��eZdZd�Zd�ZdS)�TestJobc�"�||_||_dSr)�_sock�_addr)r,r
r�s   rr3zTestJob.__init__�s���D�J��D�J�J�Jr
c�0�td|jz��|j�d��|j�d��|j�d��|j���td|jz��dS)Nz#Client connection opened from %s:%dz
Hello World!
r z#Client connection closed from %s:%d)�printr�r�r�rDrLr)r,s rr^zTestJob.run�s����7�$�*�D�E�E�E��J�O�O�,�-�-�-��J�"�"�1�%�%�%��J�O�O�A�����J�������7�$�*�D�E�E�E�E�Er
N)r�r�r�r3r^rr
rr�r��s7������	�	�	�	F�	F�	F�	F�	Fr
r�r )r�i�rd)r/r1)�
__author__�__version__rrrrHrJrfr�r�rr�ImportError�flup.serverrr��eunuchs.socketpairrr�objectrr�r�r
�
setsockopt�
SOL_SOCKET�SO_REUSEADDR�bind�listen�	SOMAXCONNr^rr
r�<module>r�s3��6-�
���
�
�
�
�	�	�	�	�
�
�
�
�
�
�
�
�����
�
�
�
�
�
�
�
�����D��L�L�L�
D�D�D�D��	�
�
�
�
�
�
�
�
�
����"�!�!�!�!�!��w�v�|�$�$�#�F�!�!�!�!�!���F�F�F��k�D�E�E�E�F�������#�F��\+�\+�\+�\+�\+�F�\+�\+�\+�|
�z���
F�
F�
F�
F�
F�&�
F�
F�
F��6�=�?�?�D��O�O�F�%�v�':�A�>�>�>��I�I�j�����K�K�� �!�!�!��M�b�7�3�3�3�7�7��=�=�=�=�=�!�s�.�9�9�A�A%

Youez - 2016 - github.com/yon3zu
LinuXploit