CasperSecurity

Current Path : /usr/lib/python3.10/__pycache__/
Upload File :
Current File : //usr/lib/python3.10/__pycache__/asynchat.cpython-310.pyc

o

`�wi-�@s^dZddlZddlmZddlmZededd�Gdd	�d	ej�ZGd
d�d�Z	dd
�Z
dS)a�A class supporting chat-style (command/response) protocols.

This class adds support for 'chat' style protocols - where one side
sends a 'command', and the other sends a response (examples would be
the common internet protocols - smtp, nntp, ftp, etc..).

The handle_read() method looks at the input stream for the current
'terminator' (usually '\r\n' for single-line responses, '\r\n.\r\n'
for multi-line output), calling self.found_terminator() on its
receipt.

for example:
Say you build an async nntp client using this class.  At the start
of the connection, you'll have self.terminator set to '\r\n', in
order to process the single-line greeting.  Just before issuing a
'LIST' command you'll set it to '\r\n.\r\n'.  The output of the LIST
command will be accumulated (using your own 'collect_incoming_data'
method) up to the terminator, and then control will be returned to
you - by calling your self.found_terminator() method.
�N)�deque)�warnzlThe asynchat module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncio�)�
stacklevelc@s�eZdZdZdZdZdZdZd(dd�Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�ZdS))�
async_chatz�This is an abstract class.  You must derive from this class, and add
    the two methods collect_incoming_data() and found_terminator()irzlatin-1NcCs(d|_g|_t�|_tj�|||�dS�N�)�ac_in_buffer�incomingr�
producer_fifo�asyncore�
dispatcher�__init__)�self�sock�map�r�/usr/lib/python3.10/asynchat.pyrKszasync_chat.__init__cC�td���Nzmust be implemented in subclass��NotImplementedError�r�datarrr�collect_incoming_dataY�z async_chat.collect_incoming_datacCs|j�|�dS�N)r
�appendrrrr�_collect_incoming_data\sz!async_chat._collect_incoming_datacCsd�|j�}|jdd�=|Sr)�joinr
)r�drrr�	_get_data_szasync_chat._get_datacCrrr�rrrr�found_terminatordrzasync_chat.found_terminatorcCsBt|t�r|jrt||j�}n
t|t�r|dkrtd��||_dS)zdSet the input delimiter.

        Can be a fixed string of any length, an integer, or None.
        rz-the number of received bytes must be positiveN)�
isinstance�str�use_encoding�bytes�encoding�int�
ValueError�
terminator)r�termrrr�set_terminatorgs

zasync_chat.set_terminatorcCs|jSr)r+r"rrr�get_terminatorrszasync_chat.get_terminatorcCs�z|�|j�}WntyYdSty|��YdSwt|t�r.|jr.tt|j	�}|j
||_
|j
r�t|j
�}|��}|sL|�
|j
�d|_
n�t|t�r�|}||krg|�
|j
�d|_
|j||_np|�
|j
d|��|j
|d�|_
d|_|��nVt|�}|j
�|�}|dkr�|dkr�|�
|j
d|��|j
||d�|_
|��n+t|j
|�}|r�||kr�|�
|j
d|��|j
|d�|_
dS|�
|j
�d|_
|j
s7dSdS)Nrr���)�recv�ac_in_buffer_size�BlockingIOError�OSError�handle_errorr$r%r&r'r(r	�lenr.rr)r+r#�find�find_prefix_at_end)rr�lbr+�n�terminator_len�indexrrr�handle_readzsV�


	
�zasync_chat.handle_readcC�|��dSr)�
initiate_sendr"rrr�handle_write��zasync_chat.handle_writecCr=r)�closer"rrr�handle_close�r@zasync_chat.handle_closecCsxt|tttf�stdt|���|j}t|�|kr0tdt|�|�D]}|j	�
||||��q n|j	�
|�|��dS)Nz#data argument must be byte-ish (%r)r)r$r'�	bytearray�
memoryview�	TypeError�type�ac_out_buffer_sizer5�rangerrr>)rr�sabs�irrr�push�s��zasync_chat.pushcCs|j�|�|��dSr)rrr>)r�producerrrr�push_with_producer�szasync_chat.push_with_producercCsdS)z4predicate for inclusion in the readable for select()�rr"rrr�readable�szasync_chat.readablecCs|jp|jS)z4predicate for inclusion in the writable for select())r�	connectedr"rrr�writable�szasync_chat.writablecCs|j�d�dS)zAautomatically close this channel once the outgoing queue is emptyN)rrr"rrr�close_when_done�szasync_chat.close_when_donecCs|jr�|jr�|jd}|s|jd=|dur|��dS|j}z|d|�}Wnty@|��}|r:|j�|�n|jd=Yqwt|t�rO|j	rOt
||j�}z|�|�}Wnt
yd|��YdSw|r�|t|�kss|t|�kr~||d�|jd<dS|jd=dSdSdS)Nr)rrPrBrGrE�more�
appendleftr$r%r&r'r(�sendr3r4r5)r�first�obsr�num_sentrrrr>�s@
����zasync_chat.initiate_sendcCs d|_|jdd�=|j��dSr)r	r
r�clearr"rrr�discard_buffersszasync_chat.discard_buffers)NN)�__name__�
__module__�__qualname__�__doc__r1rGr&r(rrrr!r#r-r.r<r?rBrKrMrOrQrRr>rZrrrrr<s.
H(rc@seZdZddd�Zdd�ZdS)�simple_producer�cCs||_||_dSr)r�buffer_size)rrrarrrrs
zsimple_producer.__init__cCsFt|j�|jkr|jd|j�}|j|jd�|_|S|j}d|_|Sr)r5rra)r�resultrrrrSszsimple_producer.moreN)r`)r[r\r]rrSrrrrr_s
r_cCsDt|�d}|r |�|d|��s |d8}|r |�|d|��r|S)NrN)r5�endswith)�haystack�needle�lrrrr77s
�r7)r^r�collectionsr�warningsr�DeprecationWarningr
rr_r7rrrr�<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