OwlCyberSecurity - MANAGER
Edit File: asyncore.cpython-38.pyc
U ����e5d~N����������������������@���sh��d�Z�ddlZddlZddlZddlZddlZddlZddlmZm Z m Z mZmZm Z mZmZmZmZmZmZmZ�eee eeeeh�Zze�W�n�ek r����i�ZY�nX�dd��ZG�dd��de�ZeeefZdd ��Zd d��Z dd ��Z!dd��Z"d&dd�Z#d'dd�Z$e$Z%d(dd�Z&G�dd��d�Z'G�dd��de'�Z(dd��Z)d)dd �Z*ej+d!k�rdG�d"d#��d#�Z,G�d$d%��d%e'�Z-dS�)*a���Basic infrastructure for asynchronous socket service clients and servers. There are only two ways to have a program on a single processor do "more than one thing at a time". Multi-threaded programming is the simplest and most popular way to do it, but there is another very different technique, that lets you have nearly all the advantages of multi-threading, without actually using multiple threads. it's really only practical if your program is largely I/O bound. If your program is CPU bound, then pre-emptive scheduled threads are probably what you really need. Network servers are rarely CPU-bound, however. If your operating system supports the select() system call in its I/O library (and nearly all do), then you can use it to juggle multiple communication channels at once; doing other work while your I/O is taking place in the "background." Although this strategy can seem strange and complex, especially at first, it is in many ways easier to understand and control than multi-threaded programming. The module documented here solves many of the difficult problems for you, making the task of building sophisticated high-performance network servers and clients a snap. �����N) �EALREADY�EINPROGRESS�EWOULDBLOCK� ECONNRESET�EINVAL�ENOTCONN� ESHUTDOWN�EISCONN�EBADF�ECONNABORTED�EPIPE�EAGAIN� errorcodec�������������� ���C���sH���zt��|��W�S��tttfk rB���|�tkr6t|���Y�S�d|���Y�S�X�d�S�)NzUnknown error %s)�os�strerror� ValueError� OverflowError� NameErrorr���)�err��r���� /usr/lib64/python3.8/asyncore.py� _strerrorD���s����r���c�������������������@���s���e�Zd�ZdS�)�ExitNowN)�__name__� __module__�__qualname__r���r���r���r���r���L���s���r���c�����������������C���s:���z|������W�n(�tk r"�����Y�n���|�����Y�nX�d�S��N)�handle_read_event�_reraised_exceptions�handle_error��objr���r���r����readQ���s����r"���c�����������������C���s:���z|������W�n(�tk r"�����Y�n���|�����Y�nX�d�S�r���)�handle_write_eventr���r���r ���r���r���r����writeY���s����r$���c�����������������C���s:���z|������W�n(�tk r"�����Y�n���|�����Y�nX�d�S�r���)�handle_expt_eventr���r���r ���r���r���r���� _exceptiona���s����r&���c�������������� ���C���s����zX|t�j@�r|�����|t�j@�r&|�����|t�j@�r8|�����|t�jt�jB�t�j B�@�rV|�� ���W�nh�tk r��}�z$|jd�t kr�|�����n|�� ���W�5�d�}~X�Y�n(�tk r������Y�n���|�����Y�nX�d�S��Nr���)�select�POLLINr����POLLOUTr#����POLLPRIr%���ZPOLLHUPZPOLLERRZPOLLNVAL�handle_close�OSError�args� _DISCONNECTEDr���r���)r!����flags�er���r���r���� readwritei���s"���� r2������������c����������� ������C���s<��|d�krt�}|�r8g�}g�}g�}t|����D�]L\}}|���}|���}|rP|�|��|rd|jsd|�|��|sl|r*|�|��q*g�|��kr�|��kr�|kr�n�nt�|���d�S�t � ||||��\}}}|D�] }|� |�}|d�kr�q�t|��q�|D�]"}|� |�}|d�k�rq�t|��q�|D�]&}|� |�}|d�k�r,�qt |���qd�S�r���)� socket_map�list�items�readable�writable�append� accepting�time�sleepr(����getr"���r$���r&���) �timeout�map�r�wr1����fdr!���Zis_rZis_wr���r���r����poll}���sD������ " rC���c�����������������C���s����|d�krt�}|�d�k r t|�d��}�t���}|r�t|����D�]L\}}d}|���r\|tjtjB�O�}|� ��rt|j st|tjO�}|r8|�||��q8|�|��}|D�]&\}}|� |�}|d�kr�q�t||��q�d�S�)Ni���r���)r4����intr(���rC���r5���r6���r7���r)���r+���r8���r:���r*����registerr=���r2���)r>���r?���ZpollsterrB���r!���r0���r@���r���r���r����poll2����s(���� rF����������>@Fc�����������������C���sb���|d�krt�}|r ttd�r t}nt}|d�kr>|r^||�|��q,n |r^|dkr^||�|��|d�}q>d�S�)NrC���r�������)r4����hasattrr(���rF���rC���)r>���Zuse_pollr?����countZpoll_funr���r���r����loop����s���� rK���c�������������������@���s2��e�Zd�ZdZdZdZdZdZdZe dh�Z dAdd�Zdd��ZdBdd �Z dCd d�Zejejfdd �ZdDdd�Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��ZdEd'd(�Zd)d*��Z d+d,��Z!d-d.��Z"d/d0��Z#d1d2��Z$d3d4��Z%d5d6��Z&d7d8��Z'd9d:��Z(d;d<��Z)d=d>��Z*d?d@��Z+dS�)F� dispatcherFN�warningc�������������� ���C���s����|d�krt�|�_n||�_d�|�_|r�|�d��|��||��d|�_z|���|�_W�q��tk r��}�z*|j d�t tfkrvd|�_n|��|����W�5�d�}~X�Y�q�X�nd�|�_ d�S��Nr���TF)r4����_map�_fileno�setblocking� set_socket� connectedZgetpeername�addrr-���r.���r���r����del_channel�socket)�self�sockr?���r���r���r���r����__init__����s ���� zdispatcher.__init__c�����������������C���s����|�j�jd�|�j�j�g}|�jr.|�jr.|�d��n|�jr>|�d��|�jd�k r�z|�d|�j���W�n$�tk r����|�t|�j���Y�nX�dd� |�t |��f�S�)N�.Z listeningrS���z%s:%dz<%s at %#x>� )� __class__r���r���r:���rT���r9���rS���� TypeError�repr�join�id)rW���Zstatusr���r���r����__repr__����s���� zdispatcher.__repr__c�����������������C���s���|d�kr|�j�}|�||�j<�d�S�r���)rO���rP���)rW���r?���r���r���r����add_channel ��s����zdispatcher.add_channelc�����������������C���s,���|�j�}|d�kr|�j}||kr"||=�d�|�_�d�S�r���)rP���rO���)rW���r?���rB���r���r���r���rU�����s����zdispatcher.del_channelc�����������������C���s.���||f|�_�t�||�}|�d��|��|��d�S�r'���)Zfamily_and_typerV���rQ���rR���)rW���Zfamily�typerX���r���r���r���� create_socket��s���� zdispatcher.create_socketc�����������������C���s���||�_�|���|�_|��|��d�S�r���)rV����filenorP���rb����rW���rX���r?���r���r���r���rR�����s���� zdispatcher.set_socketc�����������������C���sD���z*|�j��t�jt�j|�j��t�jt�j�dB���W�n�tk r>���Y�nX�d�S�)NrH���)rV���Z setsockopt� SOL_SOCKETZSO_REUSEADDR� getsockoptr-����rW���r���r���r����set_reuse_addr#��s����� ���zdispatcher.set_reuse_addrc�����������������C���s���dS��NTr���ri���r���r���r���r7���4��s����zdispatcher.readablec�����������������C���s���dS�rk���r���ri���r���r���r���r8���7��s����zdispatcher.writablec�����������������C���s(���d|�_�tjdkr|dkrd}|�j�|�S�)NT�nt����)r:���r����namerV����listen)rW���Znumr���r���r���ro���>��s����zdispatcher.listenc�����������������C���s���||�_�|�j�|�S�r���)rT���rV����bind)rW���rT���r���r���r���rp���D��s����zdispatcher.bindc�����������������C���sp���d|�_�d|�_|�j�|�}|tttfks8|tkrBtj dkrB||�_ d�S�|dtfkr^||�_ |�����nt |t|���d�S�)NFTrl���r���)rS���� connectingrV���Z connect_exr���r���r���r���r���rn���rT���r ����handle_connect_eventr-���r���)rW���Zaddressr���r���r���r����connectH��s������ zdispatcher.connectc�������������� ���C���sv���z|�j����\}}W�nV�tk r(���Y�d�S��tk rh�}�z$|jd�tttfkrVW�Y�� d�S���W�5�d�}~X�Y�n X�||fS�d�S�r'���)rV����acceptr]���r-���r.���r���r���r ���)rW���ZconnrT����whyr���r���r���rt���V��s���� zdispatcher.acceptc�������������� ���C���st���z|�j��|�}|W�S��tk rn�}�z>|jd�tkr<W�Y��*dS�|jd�tkr\|�����W�Y�� dS���W�5�d�}~X�Y�nX�d�S�r'���)rV����sendr-���r.���r���r/���r,���)rW����data�resultru���r���r���r���rv���d��s���� zdispatcher.sendc�������������� ���C���sr���z(|�j��|�}|s |�����W�dS�|W�S�W�nD�tk rl�}�z&|jd�tkrZ|�����W�Y�� dS���W�5�d�}~X�Y�nX�d�S�)N�����r���)rV����recvr,���r-���r.���r/���)rW���Zbuffer_sizerw���ru���r���r���r���rz���q��s���� zdispatcher.recvc�������������� ���C���sn���d|�_�d|�_d|�_|�����|�jd�k rjz|�j����W�n6�tk rh�}�z|jd�tt fkrX��W�5�d�}~X�Y�nX�d�S�)NFr���) rS���r:���rq���rU���rV����closer-���r.���r���r ���)rW���ru���r���r���r���r{������s���� zdispatcher.closec�����������������C���s���t�j�dt|����d�S�)Nzlog: %s )�sys�stderrr$����str)rW����messager���r���r����log���s����zdispatcher.log�infoc�����������������C���s���||�j�krtd||f���d�S�)Nz%s: %s)�ignore_log_types�print)rW���r���rc���r���r���r����log_info���s���� zdispatcher.log_infoc�����������������C���s:���|�j�r|�����n&|�js.|�jr$|�����|�����n|�����d�S�r���)r:���� handle_acceptrS���rq���rr����handle_readri���r���r���r���r������s���� zdispatcher.handle_read_eventc�����������������C���s@���|�j��t�jt�j�}|dkr(t|t|���|�����d|�_d|�_d�S�rN���) rV���rh���rg����SO_ERRORr-���r����handle_connectrS���rq����rW���r���r���r���r���rr������s����zdispatcher.handle_connect_eventc�����������������C���s*���|�j�r d�S�|�js|�jr|�����|�����d�S�r���)r:���rS���rq���rr����handle_writeri���r���r���r���r#������s����zdispatcher.handle_write_eventc�����������������C���s0���|�j��t�jt�j�}|dkr$|�����n|�����d�S�r'���)rV���rh���rg���r����r,����handle_exptr����r���r���r���r%������s���� zdispatcher.handle_expt_eventc�����������������C���sX���t���\}}}}zt|��}W�n���dt|���}Y�nX�|��d||||f�d��|�����d�S�)Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)�error)�compact_tracebackr^���r`���r����r,���)rW���Znil�t�v�tbinfoZ self_reprr���r���r���r������s������ zdispatcher.handle_errorc�����������������C���s���|���dd��d�S�)Nz!unhandled incoming priority eventrM����r����ri���r���r���r���r�������s����zdispatcher.handle_exptc�����������������C���s���|���dd��d�S�)Nzunhandled read eventrM���r����ri���r���r���r���r�������s����zdispatcher.handle_readc�����������������C���s���|���dd��d�S�)Nzunhandled write eventrM���r����ri���r���r���r���r�������s����zdispatcher.handle_writec�����������������C���s���|���dd��d�S�)Nzunhandled connect eventrM���r����ri���r���r���r���r�������s����zdispatcher.handle_connectc�����������������C���s���|�����}|d�k r|�j|���d�S�r���)rt����handle_accepted)rW���Zpairr���r���r���r�������s����zdispatcher.handle_acceptc�����������������C���s���|�����|��dd��d�S�)Nzunhandled accepted eventrM���)r{���r����)rW���rX���rT���r���r���r���r�������s����zdispatcher.handle_acceptedc�����������������C���s���|���dd��|�����d�S�)Nzunhandled close eventrM���)r����r{���ri���r���r���r���r,������s����zdispatcher.handle_close)NN)N)N)N)r����),r���r���r����debugrS���r:���rq����closingrT���� frozensetr����rY���ra���rb���rU���rV���ZAF_INETZSOCK_STREAMrd���rR���rj���r7���r8���ro���rp���rs���rt���rv���rz���r{���r����r����r���rr���r#���r%���r���r����r����r����r����r����r����r,���r���r���r���r���rL�������sJ��� rL���c�������������������@���s6���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��ZdS�) �dispatcher_with_sendNc�����������������C���s���t��|�||��d|�_d�S�)Nry���)rL���rY���� out_bufferrf���r���r���r���rY������s����zdispatcher_with_send.__init__c�����������������C���s.���d}t��|�|�jd�d���}|�j|d���|�_d�S�)Nr���i���)rL���rv���r����)rW���Znum_sentr���r���r���� initiate_send���s����z"dispatcher_with_send.initiate_sendc�����������������C���s���|������d�S�r���)r����ri���r���r���r���r������s����z!dispatcher_with_send.handle_writec�����������������C���s���|�j��pt|�j�S�r���)rS����lenr����ri���r���r���r���r8�����s����zdispatcher_with_send.writablec�����������������C���s0���|�j�r|��dt|����|�j|�|�_|�����d�S�)Nz sending %s)r����r����r^���r����r����)rW���rw���r���r���r���rv�����s����zdispatcher_with_send.send)NN)r���r���r���rY���r����r����r8���rv���r���r���r���r���r�������s ��� r����c������������������C���s����t����\}�}}g�}|std��|rL|�|jjj|jjjt|j �f��|j }q~|d�\}}}d�dd��|D���}|||f|�||fS�)Nztraceback does not exist���r[���c�����������������S���s���g�|�]}d�|��qS�)z [%s|%s|%s]r���)�.0�xr���r���r���� <listcomp>&��s�����z%compact_traceback.<locals>.<listcomp>)r|����exc_info�AssertionErrorr9����tb_frame�f_code�co_filename�co_namer~���� tb_lineno�tb_nextr_���)r����r�����tbr�����fileZfunction�liner����r���r���r���r������s�����r����c�����������������C���s����|�d�krt�}�t|�����D�]n}z|����W�q�tk r`�}�z|jd�tkrJn|sP��W�5�d�}~X�Y�q�tk rt�����Y�q���|s���Y�qX�q|�����d�S�r'���) r4���r5����valuesr{���r-���r.���r ���r����clear)r?���Z ignore_allr����r���r���r���� close_all)��s ���� r�����posixc�������������������@���sN���e�Zd�Zdd��Zdd��Zdd��Zdd��Zdd d�ZeZeZ dd ��Z dd��Zd S�)�file_wrapperc�����������������C���s���t��|�|�_d�S�r���)r����duprB����rW���rB���r���r���r���rY���N��s����zfile_wrapper.__init__c�����������������C���s*���|�j�dkrtjd|��t|�d��|�����d�S�)Nr���zunclosed file %r)�source)rB����warnings�warn�ResourceWarningr{���ri���r���r���r����__del__Q��s ���� �zfile_wrapper.__del__c�����������������G���s���t�j|�jf|���S�r���)r���r"���rB����rW���r.���r���r���r���rz���W��s����zfile_wrapper.recvc�����������������G���s���t�j|�jf|���S�r���)r���r$���rB���r����r���r���r���rv���Z��s����zfile_wrapper.sendNc�����������������C���s(���|t�jkr|t�jkr|sdS�td��d�S�)Nr���z-Only asyncore specific behaviour implemented.)rV���rg���r�����NotImplementedError)rW����levelZoptnameZbuflenr���r���r���rh���]��s���� ��zfile_wrapper.getsockoptc�����������������C���s(���|�j�dk�rd�S�|�j�}d|�_�t�|��d�S�)Nr���r����)rB���r���r{���r����r���r���r���r{���h��s ���� zfile_wrapper.closec�����������������C���s���|�j�S�r���)rB���ri���r���r���r���re���o��s����zfile_wrapper.fileno)N)r���r���r���rY���r����rz���rv���rh���r"���r$���r{���re���r���r���r���r���r����I��s��� r����c�������������������@���s���e�Zd�Zddd�Zdd��ZdS�)�file_dispatcherNc�����������������C���sP���t��|�d�|��d|�_z|���}W�n�tk r4���Y�nX�|��|��t�|d��d�S�)NTF)rL���rY���rS���re����AttributeError�set_filer����set_blocking)rW���rB���r?���r���r���r���rY���t��s���� zfile_dispatcher.__init__c�����������������C���s"���t�|�|�_|�j���|�_|�����d�S�r���)r����rV���re���rP���rb���r����r���r���r���r������s���� zfile_dispatcher.set_file)N)r���r���r���rY���r����r���r���r���r���r����r��s��� r����)r3���N)r3���N)rG���FNN)NF).�__doc__r(���rV���r|���r;���r����r����errnor���r���r���r���r���r���r���r ���r ���r���r���r ���r���r����r/���r4���r���r���� Exceptionr����KeyboardInterrupt� SystemExitr���r"���r$���r&���r2���rC���rF���Zpoll3rK���rL���r����r����r����rn���r����r����r���r���r���r����<module>���sD���<� ' ��* )