Advertisement
Soy_Estudiante

routec.cpython-37.pyc

May 31st, 2019
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 26.39 KB | None | 0 0
  1. B
  2.  
  3. ����ØÑÕ[½K��ã���������������@���s¾��d�Z�dZd eeedd…�ƒ¡ZdZdZdZdZ dZ
  4. dd l Z dd l Z dd l
  5. Z
  6. dd lZdd lZdd lZdd lZe e¡Ze jd�d
  7. kZeržeZeZdd lmZ�neZeZdd lZd.dd„Zd/dd„ZeeƒZ d\Z!Z"Z#dZ$dZ%dZ&dZ'd
  8. Z(dZ)dZ*dZ+dZ,dZ-d
  9. Z.G�dd„�de/ƒZ0G�dd„�de/ƒZ1G�dd„�de/ƒZ2G�dd„�de2ƒZ3G�dd „�d e2ƒZ4G�d!d"„�d"e5ƒZ6G�d#d$„�d$e6ƒZ7G�d%d&„�d&e j8ƒZ9G�d'd(„�d(e/ƒZ:G�d)d*„�d*e:ƒZ;d+d,„�Z<ed-krºe<ƒ��d S�)0z
  10. leo-mods
  11. )é����é���Ú.r���r���zHTTP Proxy router em Pythonz @leo_modszlegadospro@gmail.comZBSDNé���)Úparseúutf-8Ústrictc�������������C���s���t�|�tƒr|� ||¡S�|�S�)zn If ``s`` is an instance of ``binary_type``, return
  12. ``s.decode(encoding, errors)``, otherwise return ``s``)Ú
  13. isinstanceÚ binary_typeÚdecode)ÚsÚencodingÚerrors©�r���ú routec.pyÚtext_%���s����
  14.  r���c�������������C���s���t�|�tƒr|� ||¡S�|�S�)zl If ``s`` is an instance of ``text_type``, return
  15. ``s.encode(encoding, errors)``, otherwise return ``s``)r���Ú text_typeÚencode)r ���r ���r
  16. ���r���r���r���Úbytes_-���s����
  17.  r���)s���
  18. ó���:ó��� é���é���é���é���c���������������@���s(���e�Zd�ZdZdd„�Zdd„�Zdd„�ZdS�) Ú ChunkParserz&HTTP chunked encoding response parser.c�������������C���s���t�|�_d|�_d|�_d�|�_d�S�)Nó����)Ú#CHUNK_PARSER_STATE_WAITING_FOR_SIZEÚstateÚbodyÚchunkÚsize)Úselfr���r���r���Ú__init__J���s����zChunkParser.__init__c�������������C���s0���t�|ƒdkrdnd}x|r*|� |¡\}}qW�d�S�)Nr���TF)ÚlenÚprocess)r!���ÚdataÚmorer���r���r���r���P���s�����zChunkParser.parsec�������������C���sÌ���|�j�tkr,t |¡\}}t|dƒ|�_t|�_�n|�j�tkr¼|�jt|�jƒ�}|��j|d�|…�7��_||d�…�}t|�jƒ|�jkr¼|tt ƒd�…�}|��j
  19. |�j7��_
  20. |�jdkrªt |�_�nt|�_�d|�_d�|�_t|ƒdk|fS�)Né���r���r���) r���r���Ú
  21. HttpParserÚsplitÚintr ���Ú#CHUNK_PARSER_STATE_WAITING_FOR_DATAr#���r���ÚCRLFr���ÚCHUNK_PARSER_STATE_COMPLETE)r!���r%���ÚlineZ remainingr���r���r���r$���T���s"����
  22.  
  23.  
  24. zChunkParser.processN)Ú__name__Ú
  25. __module__Ú __qualname__Ú__doc__r"���r���r$���r���r���r���r���r���G���s���r���c���������������@���s`���e�Zd�ZdZddd„Zdd„�Zdd„�Zd d
  26. „�Zd d „�Zd
  27. d„�Z dd„�Z
  28. ddd„Z e dd„�ƒZ
  29. dS�)r(���zHTTP request/response parser.Nc�������������C���sV���t�|�_|r|nt|�_d|�_d|�_tƒ�|�_d�|�_d�|�_ d�|�_
  30. d�|�_ d�|�_ d�|�_
  31. d�|�_d�S�)Nr���)ÚHTTP_PARSER_STATE_INITIALIZEDr���ÚHTTP_REQUEST_PARSERÚtypeÚrawÚbufferÚdictÚheadersr���ÚmethodÚurlÚcodeÚreasonÚversionÚchunker)r!���r5���r���r���r���r"���k���s����zHttpParser.__init__c�������������C���sT���|��j�|7��_�|�j|�}d|�_t|ƒdkr.dnd}x|rH|� |¡\}}q4W�||�_d�S�)Nr���r���TF)r6���r7���r#���r$���)r!���r%���r&���r���r���r���r���}���s����
  32. zHttpParser.parsec�������������C���s\��|�j�tkrÆ|�jdks|�jtkrÆ|�js*d|�_d|�jkrlt|�_�|��j|7��_t|�jƒt |�jd�d�ƒkrÂt
  33. |�_�nVd|�jkrÂ|�jd�d� ¡�dkrÂ|�j sšt
  34. ƒ�|�_ |�j |¡�|�j j�tkrÂ|�j j|�_t
  35. |�_�dS�t |¡\}}|dkrä||fS�|�j�tk�rú|� |¡�n|�j�tk�r|� |¡�|�j�tkrL|�jtkrL|�jdksL|�j td �¡rLt
  36. |�_�t|ƒd
  37. k|fS�) Ns���POSTr���s���content-lengthr���s���transfer-encodings���chunked)Fr���Fr���r���)r���Ú"HTTP_PARSER_STATE_HEADERS_COMPLETEr:���r5���ÚHTTP_RESPONSE_PARSERr���r9���ÚHTTP_PARSER_STATE_RCVING_BODYr#���r*���ÚHTTP_PARSER_STATE_COMPLETEÚlowerr?���r���r���r-���r(���r)���ÚHTTP_PARSER_STATE_LINE_RCVDÚ process_lineÚprocess_headerr4���r6���Úendswithr,���)r!���r%���r.���r���r���r���r$���‡���s<����
  38. 
  39.    
  40. �
  41.   
  42.    zHttpParser.processc�������������C���sp���| �t¡}|�jtkr>|d� ¡�|�_t |d�¡|�_|d�|�_ n(|d�|�_ |d�|�_
  43. d |dd�…�¡|�_ t
  44. |�_d�S�)Nr���r���r���r���)r)���ÚSPr5���r4���Úupperr:���ÚurlparseZurlsplitr;���r>���r<���Újoinr=���rE���r���)r!���r%���r.���r���r���r���rF���¬���s����
  45. 
  46.  
  47. 
  48. zHttpParser.process_linec�������������C���sx���t�|ƒdkr0|�jtkrt|�_qt|�jtkrtt|�_nDt|�_| t¡}|d� ¡�}t |dd�…�¡ ¡�}||f|�j |
  49. ¡�<�d�S�)Nr���r���) r#���r���Ú HTTP_PARSER_STATE_RCVING_HEADERSr@���rE���r)���ÚCOLONÚstriprL���r9���rD���)r!���r%���ÚpartsÚkeyÚvaluer���r���r���rG���¸���s���� 
  50. 
  51. 
  52.  zHttpParser.process_headerc�������������C���sZ���|�j�s
  53. dS�|�j�j}|dkrd}|�j�jdks:|d|�j�j�7�}|�j�jdksV|d|�j�j�7�}|S�)Ns���/Noner���ó���/ó���?ó���#)r;���ÚpathZqueryZfragment)r!���r;���r���r���r���Ú build_urlÅ���s����� � �zHttpParser.build_urlc�������������C���s���|d�|�t��S�)Ns���: )r,���)r!���ÚkÚvr���r���r���Ú build_headerÏ���s����zHttpParser.build_headerc�������������C���s®���d �|�j|� ¡�|�jg¡}|t7�}|s(g�}x:|�jD�]0}||kr0||� |�j|�d�|�j|�d�¡7�}q0W�|slg�}x$|D�]}||� |d�|d�¡7�}qrW�|t7�}|�jrª||�j7�}|S�)Nr���r���r���)rL���r:���rW���r>���r,���r9���rZ���r���)r!���Ú del_headersÚ add_headersZreqrX���r���r���r���ÚbuildÒ���s����� (�
  54. 
  55. zHttpParser.buildc�������������C���sB���|� �t¡}|dkrd|�fS�|�d�|…�}|�|ttƒ�d�…�}�||�fS�)NéÿÿÿÿF)Úfindr,���r#���)r%���Úposr.���r���r���r���r)���å���s ����
  56. � zHttpParser.split)N)NN)r/���r0���r1���r2���r"���r���r$���rF���rG���rW���rZ���r]���Ú staticmethodr)���r���r���r���r���r(���h���s���
  57. 
  58. % 
  59. 
  60. 
  61. r(���c���������������@���sR���e�Zd�ZdZdd„�Zdd„�Zddd„Zd d
  62. „�Zd d „�Zd
  63. d„�Z dd„�Z
  64. dd„�Z dS�)Ú
  65. Connectionz)TCP server/client connection abstraction.c�������������C���s���d|�_�d|�_||�_d�S�)Nr���F)r7���ÚclosedÚwhat)r!���rd���r���r���r���r"���ð���s����zConnection.__init__c�������������C���s ���|�j� |¡S�)N)ÚconnÚsend)r!���r%���r���r���r���rf���õ���s����zConnection.sendé� ��c����������
  66. ���C���sˆ���yH|�j� |¡}t|ƒdkr.t d|�j�¡�d�S�t dt|ƒ|�jf�¡�|S��tk
  67. r‚�}�zt d|�j|�j�|f�¡�d�S�d�}~X�Y�nX�d�S�)Nr���zrecvd 0 bytes from %szrcvd %d bytes from %sz>Exception while receiving from connection %s %r with reason %r)re���Úrecvr#���ÚloggerÚdebugrd���Ú ExceptionÚ exception)r!���Úbytesr%���Úer���r���r���rh���ø���s����  zConnection.recvc�������������C���s���|�j� ¡��d|�_d�S�)NT)re���Úcloserc���)r!���r���r���r���ro�����s����
  68. zConnection.closec�������������C���s
  69. ���t�|�jƒS�)N)r#���r7���)r!���r���r���r���Ú buffer_size��s����zConnection.buffer_sizec�������������C���s ���|� �¡�dkS�)Nr���)rp���)r!���r���r���r���Ú
  70. has_buffer ��s����zConnection.has_bufferc�������������C���s���|��j�|7��_�d�S�)N)r7���)r!���r%���r���r���r���Úqueue��s����zConnection.queuec�������������C���s4���|� �|�j¡}|�j|d�…�|�_t d||�jf�¡�d�S�)Nzflushed %d bytes to %s)rf���r7���ri���rj���rd���)r!���Zsentr���r���r���Úflush��s���� zConnection.flushN)rg���) r/���r0���r1���r2���r"���rf���rh���ro���rp���rq���rr���rs���r���r���r���r���rb���í���s���
  71. rb���c�������������������s(���e�Zd�ZdZ‡�fdd„Zdd„�Z‡��ZS�)ÚServerz+Establish connection to destination server.c����������������s"���t�t|�ƒ d¡�|t|ƒf|�_d�S�)Ns���server)Úsuperrt���r"���r*���Úaddr)r!���ÚhostÚport)Ú __class__r���r���r"�����s����zServer.__init__c�������������C���s2���t� �t�jt�j¡|�_|�j |�jd�|�jd�f¡�d�S�)Nr���r���)ÚsocketÚAF_INETÚ SOCK_STREAMre���Úconnectrv���)r!���r���r���r���r}�����s����zServer.connect)r/���r0���r1���r2���r"���r}���Ú
  72. __classcell__r���r���)ry���r���rt�����s��� rt���c�������������������s ���e�Zd�ZdZ‡�fdd„Z‡��ZS�)ÚClientzAccepted client connection.c����������������s ���t�t|�ƒ d¡�||�_||�_d�S�)Ns���client)ru���r���r"���re���rv���)r!���re���rv���)ry���r���r���r"���$��s����zClient.__init__)r/���r0���r1���r2���r"���r~���r���r���)ry���r���r���!��s���r���c���������������@���s ���e�Zd�ZdS�)Ú
  73. ProxyErrorN)r/���r0���r1���r���r���r���r���r€���)��s���r€���c���������������@���s���e�Zd�Zdd„�Zdd„�ZdS�)ÚProxyConnectionFailedc�������������C���s���||�_�||�_||�_d�S�)N)rw���rx���r=���)r!���rw���rx���r=���r���r���r���r"���.��s����zProxyConnectionFailed.__init__c�������������C���s���d|�j�|�j|�jf�S�)Nz$<ProxyConnectionFailed - %s:%s - %s>)rw���rx���r=���)r!���r���r���r���Ú__str__3��s����zProxyConnectionFailed.__str__N)r/���r0���r1���r"���r‚���r���r���r���r���r���,��s���r���c�������������������sx���e�Zd�ZdZ‡�fdd„Zdd„�Zdd„�Zdd „�Zd
  74. d „�Zd d
  75. „�Z dd„�Z
  76. dd„�Z dd„�Z dd„�Z
  77. dd„�Zdd„�Z‡��ZS�)ÚProxyzFavor nao modificar
  78. c����������������sX���t�t|�ƒ ¡��|� ¡�|�_|�j|�_||�_d�|�_tƒ�|�_ tt
  79. ƒ|�_ t
  80. ddt�t g¡|�_d�S�)Ns���HTTP/1.1 200 Leo_modss���Proxy-agent: legadospro v)ru���rƒ���r"���Ú_nowZ
  81. start_timeÚ
  82. last_activityÚclientÚserverr(���ÚrequestrA���Úresponser,���rL���r>���Úconnection_established_pkt)r!���r†���)ry���r���r���r"���:��s����
  83. 
  84. zProxy.__init__c�������������C���s
  85. ���t�j� ¡�S�)N)ÚdatetimeZutcnow)r!���r���r���r���r„���L��s����z
  86. Proxy._nowc�������������C���s���|� �¡�|�j�jS�)N)r„���r…���Zseconds)r!���r���r���r���Ú
  87. _inactive_forO��s����zProxy._inactive_forc�������������C���s ���|� �¡�dkS�)Né���)rŒ���)r!���r���r���r���Ú _is_inactiveR��s����zProxy._is_inactivec����������
  88. ���C���sN��|�j�r|�j�js|�j� |¡�d�S�|�j |¡�|�jjtkrJt d¡�|�jj dkrd|�jj
  89. j t
  90. ¡\}}n,|�jj
  91. r|�jj
  92. j|�jj
  93. jrˆ|�jj
  94. jnd�}}t||ƒ|�_�y2t d||f�¡�|�j� ¡��t d||f�¡�W�n<�tk
  95. r
  96. �}�zd|�j�_t||t|ƒƒ‚W�d�d�}~X�Y�nX�|�jj dkr*|�j |�j¡�n |�j� |�jjddd gd
  97. gd ¡�d�S�) Nz#request parser is in state completes���CONNECTéP���zconnectando no servidor %s:%szconnectado com sucesso %s:%sTs���proxy-connections
  98. ���connections
  99. ���keep-alive)s
  100. ���Connections���Close)r[���r\���)r‡���rc���rr���rˆ���r���r���rC���ri���rj���r:���r;���rV���r)���rN���Úhostnamerx���rt���r}���rk���r���Úreprr†���rŠ���r]���)r!���r%���rw���rx���rn���r���r���r���Ú_process_requestU��s.����  
  101.  $ 
  102. " zProxy._process_requestc�������������C���s(���|�j�jdks|�j |¡�|�j |¡�d�S�)Ns���CONNECT)rˆ���r:���r‰���r���r†���rr���)r!���r%���r���r���r���Ú_process_response��s����  zProxy._process_responsec����������
  103. ���C���s¦���|�j�r|�j�jnd\}}|�jjdkrPt d|�jjd�|�jjd�|�jj||f�¡�nR|�jjr¢t d|�jjd�|�jjd�|�jj|||�j ¡�|�jj |�jj
  104. t |�jj ƒf �¡�d�S�)N)NNs���CONNECTz%s:%s - %s %s:%sr���r���z%%s:%s - %s %s:%s%s - %s %s - %s bytes)
  105. r‡���rv���rˆ���r:���ri���Úinfor†���rW���r‰���r<���r=���r#���r6���)r!���rw���rx���r���r���r���Ú _access_logŠ��s
  106. ���� .zProxy._access_logc�������������C���s¢���|�j�jgg�g���}}}t d¡�|�j� ¡�rBt d¡�| |�j�j¡�|�jrh|�jjsht d¡�| |�jj¡�|�jr˜|�jjs˜|�j ¡�r˜t d¡�| |�jj¡�|||fS�)Nz*** esperando clientezRO buffer de cliente pendente encontrado, assistindo o cliente para escrever prontozconexao com o cliente ligadazcliente conectado)r†���re���ri���rj���rq���Úappendr‡���rc���)r!���ÚrlistÚwlistÚxlistr���r���r���Ú_get_waitable_lists‘��s����
  107. 
  108. 
  109. 
  110. 
  111. zProxy._get_waitable_listsc�������������C���sR���|�j�j|kr t d¡�|�j� ¡��|�jrN|�jjsN|�jj|krNt d¡�|�j ¡��d�S�)Nz cliente conectado limpado bufferz2server is ready for writes, flushing server buffer)r†���re���ri���rj���rs���r‡���rc���)r!���Úwr���r���r���Ú_process_wlist£��s ���� 
  112. 
  113. 
  114. zProxy._process_wlistc���������� ���C���s��|�j�j|kr¦t d¡�|�j� ¡�}|� ¡�|�_|s<t d¡�dS�y|� |¡�W�nZ�tk
  115. r¤�}�z<t |¡�|�j�
  116. t ddt
  117. �ddt g¡d�¡�|�j� ¡��dS�d�}~X�Y�nX�|�jr
  118. |�jjs
  119. |�jj|kr
  120. t d ¡�|�j ¡�}|� ¡�|�_|s�t d
  121. ¡�|�j ¡��n
  122. |� |¡�d S�) Nz"client is ready for reads, readingz"client closed connection, breakingTs���HTTP/1.1 502 Bad Gateways���Proxy-agent: legadospro vs���Content-Length: 11s���Connection: closes���Funcionando normalmenteu*���servidor está pronto para leituras, lendou���conexão fechada do servidorF)r†���re���ri���rj���rh���r„���r…���r’���r���rl���rr���r,���rL���r>���rs���r‡���rc���ro���r“���)r!���Úrr%���rn���r���r���r���Ú_process_rlist¬��s:���� 
  123. 
  124. 
  125. 
  126. 
  127. 
  128. 
  129.  
  130. 
  131. 
  132. 
  133.  
  134. zProxy._process_rlistc�������������C���s~���xx|� �¡�\}}}t |||d¡\}}}|� |¡�|� |¡r<P�|�j ¡�dkr|�jjtkrbt
  135. d¡�P�|� ¡�rt
  136. d¡�P�qW�d�S�)Nr���r���z?client buffer is empty and response state is complete, breakingzCclient buffer is empty and maximum inactivity has reached, breaking) rš���Úselectrœ���rž���r†���rp���r‰���r���rC���ri���rj���rŽ���)r!���r—���r˜���r™���r���r›���Úxr���r���r���Ú_processÑ��s����
  137. 
  138.  
  139. 
  140. zProxy._processc���������� ���C���sØ���t� d|�jj|�jjf�¡�z\y |� ¡��W�nJ�tk
  141. r<���Y�n8�tk
  142. rr�}�zt� d|�jj|f�¡�W�d�d�}~X�Y�nX�W�d�t� d|�j ¡��¡�|�j
  143. ¡��|�j r°t� d|�j ¡��¡�|� ¡��t� d|�jj|�jjf�¡�X�d�S�)Nz$Proxying connection %r at address %rz5Exception while handling connection %r with reason %rzBclosing client connection with pending client buffer size %d byteszAclosed client connection with pending server buffer size %d bytesz-Closing proxy for connection %r at address %r)
  144. ri���rj���r†���re���rv���r¡���ÚKeyboardInterruptrk���rl���rp���ro���r‡���r•���)r!���rn���r���r���r���Úrunã��s���� ,
  145. z Proxy.run)r/���r0���r1���r2���r"���r„���rŒ���rŽ���r’���r“���r•���rš���rœ���rž���r¡���r£���r~���r���r���)ry���r���rƒ���6��s��� ,  %rƒ���c���������������@���s*���e�Zd�ZdZd dd„Zdd„�Zd d
  146. „�Zd S�)
  147. ÚTCPzTCP server implementation.ú 192.168.43.1é��éd���c�������������C���s���||�_�||�_||�_d�S�)N)r���rx���Úbacklog)r!���r���rx���r¨���r���r���r���r"���ö��s����z TCP.__init__c�������������C���s
  148. ���t�ƒ�‚d�S�)N)ÚNotImplementedError)r!���r†���r���r���r���Úhandleû��s����z
  149. TCP.handlec����������
  150. ���C���sè���zÌy–t� d|�j�¡�t tjtj¡|�_|�j tjtjd¡�|�j |�j
  151. |�jf¡�|�j |�j ¡�x8|�j
  152. ¡�\}}t� d||f�¡�t||ƒ}|� |¡�q^W�W�n0�tk
  153. rÈ�}�zt� d|�¡�W�d�d�}~X�Y�nX�W�d�t� d¡�|�j ¡��X�d�S�)Nz port %dr���z$Accepted connection %r at address %rz%Exception while running the server %rzClosing server socket)ri���r”���rx���rz���r{���r|���Z
  154. setsockoptZ
  155. SOL_SOCKETZ SO_REUSEADDRZbindr���Zlistenr¨���Zacceptrj���r���rª���rk���rl���ro���)r!���re���rv���r†���rn���r���r���r���r£���þ��s����
  156. $
  157. zTCP.runN)r¥���r¦���r§���)r/���r0���r1���r2���r"���rª���r£���r���r���r���r���r¤���ó��s���
  158. r¤���c���������������@���s���e�Zd�ZdZdd„�ZdS�)ÚHTTPzgHTTP proxy server implementation.
  159.  
  160. Spawns new process to proxy accepted client connection.
  161. c�������������C���s.���t�|ƒ}d|_| ¡��t d||jf�¡�d�S�)NTz*Started process %r to handle connection %r)rƒ���ZdaemonÚstartri���rj���re���)r!���r†���Úprocr���r���r���rª�����s����z HTTP.handleN)r/���r0���r1���r2���rª���r���r���r���r���r«�����s���r«���c��������������C���s¤���t�jdt�dt�d}�|�jdddd�|�jdd d
  162. d�|�jd d d
  163. d�|� ¡�}tjtt|j ƒdd�|j
  164. }t |j ƒ}yt
  165. ||ƒ}| ¡��W�n�tk
  166. rž���Y�nX�d�S�)Nz
  167. routec.py v%sz0esta com dificuldade? Report at: %s no telegram)Z descriptionZepilogz
  168. --hostnamez 192.168.43.1zDefault: 192.168.43.1)ÚdefaultÚhelpz--portZ8080z
  169. Default: 8080z --log-levelÚINFOz%DEBUG, INFO, WARNING, ERROR, CRITICALz %(message)s)ÚlevelÚformat)ÚargparseÚArgumentParserÚ __version__Ú __homepage__Ú add_argumentÚ
  170. parse_argsÚloggingZ basicConfigÚgetattrZ log_levelr���r*���rx���r«���r£���r¢���)ÚparserÚargsr���rx���Úproxyr���r���r���Úmain��s���� 
  171. 
  172.  r¾���Ú__main__)r���r���)r���r���)=r2���ZVERSIONrL���ÚmapÚstrrµ���Z__description__Ú
  173. __author__Z__author_email__r¶���Z __license__ÚsysZmultiprocessingr‹���r³���r¹���rz���rŸ���Z getLoggerr/���ri���Ú version_infoZPY3r���rm���r ���Zurllibr���rK���Zunicoder���r���r>���r,���rN���rI���r4���rA���r3���rE���rM���r@���rB���rC���r���r+���r-���Úobjectr���r(���rb���rt���r���rk���r€���r���ZProcessrƒ���r¤���r«���r¾���r���r���r���r���Ú<module>���sj���
  174. 
  175. 
  176. 
  177. !�) 
  178. �> 
  179. 
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement