⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.144
Server IP:
157.245.143.252
Server:
Linux www 6.11.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Oct 14 13:19:59 UTC 2024 x86_64
Server Software:
nginx/1.26.0
PHP Version:
8.3.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
python3.12
/
test
/
support
/
__pycache__
/
View File Name :
asynchat.cpython-312.pyc
CRhR- d d Z ddlmZ ddlmZ G d dej Z G d d Zd Zy ) 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. )deque)asyncorec e Zd ZdZdZdZdZdZddZd Z d Z d Zd Zd Z d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy) async_chatzThis is an abstract class. You must derive from this class, and add the two methods collect_incoming_data() and found_terminator()i r zlatin-1Nc d| _ g | _ t | _ t j j | || y N )ac_in_bufferincomingr producer_fifor dispatcher__init__)selfsockmaps ,/usr/lib/python3.12/test/support/asynchat.pyr zasync_chat.__init__J s7 #W$$T45r c t d Nzmust be implemented in subclassNotImplementedErrorr datas r collect_incoming_dataz async_chat.collect_incoming_dataX !"CDDr c : | j j | y N)r appendr s r _collect_incoming_dataz!async_chat._collect_incoming_data[ s T"r c Z dj | j }| j d d = |S r )joinr )r ds r _get_datazasync_chat._get_data^ s% HHT]]#MM!r c t d r r r s r found_terminatorzasync_chat.found_terminatorc r r c t |t r*| j rt || j }|| _ yt |t r|dk rt d || _ y)zdSet the input delimiter. Can be a fixed string of any length, an integer, or None. r z-the number of received bytes must be positiveN) isinstancestruse_encodingbytesencodingint ValueError terminator)r terms r set_terminatorzasync_chat.set_terminatorf sT dC T%6%6t}}-D c "taxLMMr c | j S r )r. r$ s r get_terminatorzasync_chat.get_terminatorq s r c | j | j }t |t r&| j rt t | j }| j |z | _ | j rt | j }| j }|s$| j | j d| _ nt |t r|}||k r8| j | j d| _ | j |z | _ n4| j | j d | | j |d | _ d| _ | j! nt | }| j j# | }|dk7 rK|dkD r| j | j d | | j ||z d | _ | j! ntt% | j | }|r:||k7 r4| j | j d | | j | d | _ y | j | j d| _ | j ry y # t $ r Y y t $ r | j Y y w xY w)Nr r )recvac_in_buffer_sizeBlockingIOErrorOSErrorhandle_errorr' r( r) r* r+ r lenr2 r r, r. r% findfind_prefix_at_end)r r lbr. nterminator_lenindexs r handle_readzasync_chat.handle_ready s> 99T334D dC T%6%6dmm,D --4 T&&'B,,.J**4+<+<=$'!J,6..t/@/@A(+D%&*oo&:DO..t/@/@!/DE(,(9(9!"(=D%&'DO))+ "%Z))..z:B;qy 2243D3DVe3LM(,(9(9%:N:O(PD% ))+ /t/@/@*ME B; 66t7H7H5&7QR040A0A5&'0JD- 2243D3DE,/)g s I I8I87I8c $ | j y r ) initiate_sendr$ s r handle_writezasync_chat.handle_write s r c $ | j y r )closer$ s r handle_closezasync_chat.handle_close s r c h t |t t t f st dt | | j }t | |kD r=t dt | | D ]# }| j j ||||z % n| j j | | j y )Nz#data argument must be byte-ish (%r)r )r' r* bytearray memoryview TypeErrortypeac_out_buffer_sizer: ranger r rC )r r sabsis r pushzasync_chat.push s $ : >?A J( (&&t9t1c$i.""))$q4.9 / %%d+r c Z | j j | | j y r )r r rC )r producers r push_with_producerzasync_chat.push_with_producer s" !!(+r c y)z4predicate for inclusion in the readable for select() r$ s r readablezasync_chat.readable s r c 8 | j xs | j S )z4predicate for inclusion in the writable for select())r connectedr$ s r writablezasync_chat.writable s !!9$..&89r c : | j j d y)zAautomatically close this channel once the outgoing queue is emptyN)r r r$ s r close_when_donezasync_chat.close_when_done s !!$'r c | j r| j r| j d }|s | j d= || j y | j } |d | }t |t r"| j rt || j } | j | }|r<|t | k s|t | k r||d | j d<