
    vKg                         S SK r S SKJr  S SKJrJrJrJrJrJr  S SK	J
r
  S SKJr  S SKJrJrJr  S SKJr   " S S	5      r " S
 S\
R(                  5      r " S S5      rg)    N)
controller)connections
exceptionsflowhttplogplatform)tcp)http1)configmodesroot_context)humanc                   4    \ rS rSrSrS	S jrS rS rS rSr	g)
DummyServer   FNc                     Xl         SU l        g )Ndummy)r   address)selfr   s     o/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/seleniumwire/thirdparty/mitmproxy/server/server.py__init__DummyServer.__init__   s        c                     g N r   channels     r   set_channelDummyServer.set_channel       r   c                     g r   r   r   s    r   serve_foreverDummyServer.serve_forever   r"   r   c                     g r   r   r$   s    r   shutdownDummyServer.shutdown   r"   r   )r   r   r   )
__name__
__module____qualname____firstlineno__boundr   r    r%   r(   __static_attributes__r   r   r   r   r      s    Er   r   c                   |   ^  \ rS rSr% SrSr\R                  \S'   S\	R                  SS4U 4S jjrS rS	 rS
rU =r$ )ProxyServer   Tr   r   returnNc                   > Xl          [        TU ]	  UR                  R                  UR                  R
                  45        UR                  R                  S:X  a  [        R                  " 5         gg! [         aS  nU R                  (       a  U R                  R                  5         [        R                  " S[        U5      -   5      UeSnAff = f)z6
Raises ServerException if there's a startup problem.
transparentzError starting proxy server: N)r   superr   optionslisten_hostlisten_portmoder	   init_transparent_mode	Exceptionsocketcloser   ServerExceptionrepr)r   r   e	__class__s      r   r   ProxyServer.__init__#   s     	G++V^^-G-GH ~~""m3..0 4 	{{!!#,,/$q'9	s   A(A3 3
C=ACCc                     Xl         g r   )r   r   s     r   r    ProxyServer.set_channel5   s    r   c                 h    [        UUU R                  U R                  5      nUR                  5         g r   )ConnectionHandlerr   r   handle)r   connclient_addresshs       r   handle_client_connection$ProxyServer.handle_client_connection8   s+    KKLL	
 	

r   )r   r   )r*   r+   r,   r-   allow_reuse_addressr.   r   Channel__annotations__r   ProxyConfigr   r    rL   r/   __classcell__)rB   s   @r   r1   r1      sB    Ev11 d $ r   r1   c                   ,    \ rS rSrS rS rS rS rSrg)rG   B   c                 X    X0l         [        R                  " UUS 5      U l         X@l        g r   )r   r   ClientConnectionclient_connr   )r   rW   rJ   r   r   s        r   r   ConnectionHandler.__init__D   s1    *0&77 	ZIr   c                 h   [         R                  " U R                  U R                  U R                  5      nU R                  R
                  R                  nUR                  S5      (       a  SU;   aJ  [        R                  " UU R                  R                  U R                  R
                  R                  5      $ [        R                  " UU R                  R                  R                  5      $ US:X  a  [        R                  " U5      $ [        U5      (       a  U" U5      $ [!        SU-  5      e)Nz	upstream:socksregularzUnknown mitmproxy mode: %s)r   RootContextrW   r   r   r7   r:   
startswithr   SocksUpstreamProxyupstream_serverupstream_authHttpUpstreamProxyr   	HttpProxycallable
ValueError)r   root_ctxr:   s      r   _create_root_layer$ConnectionHandler._create_root_layerN   s    ++KKLL
 {{""''??;''$//KK//KK''55  ..KK//77  Y??8,,d^^>!9D@AAr   c                 Z   U R                  SS5        S n U R                  5       nU R                  R                  SU5      nU(       a  U" 5         U R                  S	S5        Ub  U R                  R=                  S	U5        U R,                  R?                  5         g ! [        R
                   a-    U R                  [        R                  R                  S5         N[        R                   Ga  n[        U[        R                  5      (       aG  U R                  SR                  UR                  5      S5        U R                  [        U5      S5        O[        U[        R                  5      (       a.  U R                  [!        U5      S5        U R                  SS5        O\U R"                  R$                  R&                  (       a  U R                  [        U5      S5        OU R                  [!        U5      S5         [(        R*                  " S[        U5      5      nU R,                  R/                  [0        R2                  " U5      5         S nAGN! [        R4                   a      S nAGN f = fS nAf[6         a)    U R                  [8        R:                  " 5       S5         GNYf = f)
NclientconnectdebuginfozUClient Handshake failed. The client may not trust Selenium Wire's certificate for {}.warnzSInvalid certificate, closing connection. Pass --ssl-insecure to disable validation.i  errorclientdisconnect) r   rf   r   askr   Killr   ErrorKILLED_MESSAGEProtocolException
isinstanceClientHandshakeExceptionformatserverr@   InvalidServerCertificatestrr   r7   suppress_connection_errorsr   make_error_responserW   sendr   assemble_responseTcpExceptionr<   	traceback
format_exctellfinish)r   
root_layerrA   error_responses       r   rH   ConnectionHandler.handlei   s   '*
!	6002J))/:FJ> 	#W-!LL0*=!C  	8HHTZZ..7++ 	!Z@@AASSYSYZ[ZbZbSc
 a'*AzBBCCQ(npvw;;&&AAHHT!Wg.HHSVV,
!%!9!9#tAw!G  %%e&=&=n&MNN**  	6HHY))+W5	6sC   :B >J*J*0DI4 AII1)I40I11I442J*)J*c                     SR                  [        R                  " U R                  R                  5      U5      nU R
                  R                  S[        R                  " X5      5        g )Nz{}: {}r   )	rv   r   format_addressrW   r   r   r   r   LogEntry)r   msglevels      r   r   ConnectionHandler.log   sF    ooe2243C3C3K3KLcR%c!9:r   )r   rW   r   N)	r*   r+   r,   r-   r   rf   rH   r   r/   r   r   r   rG   rG   B   s    JB6*"X;r   rG   )r   !seleniumwire.thirdparty.mitmproxyr   r   r   r   r   r   r	   %seleniumwire.thirdparty.mitmproxy.netr
   *seleniumwire.thirdparty.mitmproxy.net.httpr   (seleniumwire.thirdparty.mitmproxy.serverr   r   r   'seleniumwire.thirdparty.mitmproxy.utilsr   r   	TCPServerr1   rG   r   r   r   <module>r      sS     8D D 5 <D D 9 "!#-- !HU; U;r   