
    kj.                     `    d dl Z d dlmZ d dlmZ d dlmZ dZdZde	de
d	e	fd
Z G d d      Zy)    N)ctx)HTTPFlow)
mode_specszalt-svcz([a-zA-Z0-9.-]*:\d{1,5})headerportreturnc                 >    t        j                  t        d| |       S )N:)resubHOST_PATTERN)r   r   s     h/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/mitmproxy/addons/update_alt_svc.pyupdate_alt_svc_headerr      s    66,!D6
F33    c                       e Zd Zd ZdefdZy)UpdateAltSvcc                 4    |j                  dt        dd       y )Nkeep_alt_svc_headerFzReverse Proxy: Keep Alt-Svc headers as-is, even if they do not point to mitmproxy. Enabling this option may cause clients to bypass the proxy.)
add_optionbool)selfloaders     r   loadzUpdateAltSvc.load   s    ! ]		
r   flowc                    |j                   sJ t        j                  j                  st	        |j
                  j                  t        j                        rgt        |j                   j                  v rJ|j
                  j                  ^}}}|j                   j                  }t        |t           |      |t        <   y y y y )N)responser   optionsr   
isinstanceclient_conn
proxy_moder   ReverseModeALT_SVCheaderssocknamer   )r   r   _listen_portr#   s        r   responseheaderszUpdateAltSvc.responseheaders   s    }}}//4++66
8N8NO4==000!%!1!1!:!:A{Qmm++G4WW5E{SGG	 1 P 0r   N)__name__
__module____qualname__r   r   r'    r   r   r   r      s    
	TH 	Tr   r   )r   	mitmproxyr   mitmproxy.httpr   mitmproxy.proxyr   r"   r   strintr   r   r+   r   r   <module>r1      sA    	  # &
*4# 4S 4S 4T Tr   