
    kj                     @    d dl Z d dlZd dlmZ d dlmZ  G d d      Zy)    N)ctx)
mode_specsc                       e Zd Zd Zd Zy)Blockc                 d    |j                  dt        dd       |j                  dt        dd       y )Nblock_globalTzE
            Block connections from public IP addresses.
            block_privateFz
            Block connections from local (private) IP addresses.
            This option does not affect loopback addresses (connections from the local machine),
            which are always permitted.
            )
add_optionbool)selfloaders     _/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/mitmproxy/addons/block.pyloadz
Block.load	   s<    		
 				
    c                 x   |j                   d   j                  dd      }t        j                  |d         }t	        |t        j
                        r|j                  xs |}|j                  s$t	        |j                  t        j                        ry t        j                  j                  r9|j                  r-t        j                   d|j                   d    d       d|_        t        j                  j$                  r;|j&                  r.t        j                   d|j                   d    d       d|_        y y y )	Nr   %   zClient connection from z  killed by block_private option.z#Connection killed by block_private.z killed by block_global option.z"Connection killed by block_global.)peernamersplit	ipaddress
ip_address
isinstanceIPv6Addressipv4_mappedis_loopback
proxy_moder   	LocalModer   optionsr	   
is_privateloggingwarningerrorr   	is_global)r   clientpartsaddresss       r   client_connectedzBlock.client_connected   s    "))#q1&&uQx0gy445))4WG*V->->
@T@T"U;;$$););OO)&//!*<)==]^ AFL;;##(9(9OO)&//!*<)==\] @FL	 ):#r   N)__name__
__module____qualname__r   r'    r   r   r   r      s    
(@r   r   )r   r    	mitmproxyr   mitmproxy.proxyr   r   r+   r   r   <module>r.      s       &(@ (@r   