
    Eg                     \    d dl mZ d dlmZ d dlmZ  G d dej        ej                  ZdS )    )
namedtuple)connections)protocolc                   0     e Zd Z fdZd Zd Zd Z xZS )SocksUpstreamProxyc                     t                                          |           |                     ||          | _        d S N)super__init___make_connectionserver_conn)selfctxupstream_serverupstream_auth	__class__s       o/var/www/sysmax/venv/lib/python3.11/site-packages/seleniumwire/thirdparty/mitmproxy/server/modes/socks_proxy.pyr   zSocksUpstreamProxy.__init__	   s9    00-PP    c                 D   |                      ||          }| j        j        j        rC| j        j        j        dk    r.t          j        |d | j        j        j	        d         dfd          S t          j        |d | j        j        j        df| j        j        j                  S )N r   T)
_create_socks_configconfigoptionsspoof_source_addressupstream_bind_addressr   SocksServerConnectionr   client_connaddress)r   r   r   socks_configs       r   r   z#SocksUpstreamProxy._make_connection   s    00-PP;3 	8K8aeg8g8g4dTX%9%A!%Da$H$P P P 4dT[%8%NPQ$R#8  r   c                     |\  }\  }}d\  }}||                     d          \  }}t          dd          } ||||||          }	|	S )N)NN:SocksConfigz%scheme address port username password)splitr   )
r   r   r   schemehostportusernamepasswordsocksconfigr   s
             r   r   z'SocksUpstreamProxy._create_socks_config   sv    .t'($!.!4!4S!9!9Hh B
 
 
 
 r   c                    | j                             |           }	  |             | j                                        r|                                  d S d S # | j                                        r|                                  w w xY wr	   )r   
next_layerr   	connected
disconnect)r   layers     r   __call__zSocksUpstreamProxy.__call__-   s    ##D))	"EGGG))++ "!!!!!" "t))++ "!!!!"s   
A 0B)__name__
__module____qualname__r   r   r   r/   __classcell__)r   s   @r   r   r      sj        Q Q Q Q Q
 
 
  (" " " " " " "r   r   N)	collectionsr   !seleniumwire.thirdparty.mitmproxyr   (seleniumwire.thirdparty.mitmproxy.serverr   LayerServerConnectionMixinr    r   r   <module>r:      sv    " " " " " " 9 9 9 9 9 9 = = = = = =," ," ," ," ,")G ," ," ," ," ,"r   