
    Q}bg                     h    d dl Z d dlmZmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZ dZ G d d          ZdS )    N)URLHeaders)PlainTextResponseRedirectResponseResponse)ASGIAppReceiveScopeSendz6Domain wildcard patterns must be like '*.example.com'.c            	       p    e Zd Z	 	 ddedej        ej        e                  deddfdZ	de
d	ed
eddfdZdS )TrustedHostMiddlewareNTappallowed_hostswww_redirectreturnc                 $   |dg}|D ]\}d|dd          vsJ t                       |                    d          r*|dk    r$|                    d          sJ t                       ]|| _        t          |          | _        d|v | _        || _        d S )N*   z*.)ENFORCE_DOMAIN_WILDCARD
startswithr   listr   	allow_anyr   )selfr   r   r   patterns        s/home/e360mart.nyusoft.in/public_html/e360mart_env/lib/python3.11/site-packages/starlette/middleware/trustedhost.py__init__zTrustedHostMiddleware.__init__   s       EM$ 	I 	IGgabbk)))+B)))!!#&& I7c>>))$//HH1HHH/!-00-(    scopereceivesendc                   K   | j         s
|d         dvr|                     |||           d {V  d S t          |          }|                    dd                              d          d         }d}d}| j        D ]I}||k    s2|                    d	          r!|                    |d
d                    rd} nd|z   |k    rd}J|r|                     |||           d {V  d S |rS| j        rLt          |          }	|	
                    d|	j        z             }
t          t          |
                    }nt          dd          } ||||           d {V  d S )Ntype)http	websocket)r   host :r   Fr   r   Tzwww.)netloc)urlzInvalid host headeri  )status_code)r   r   r   getsplitr   r   endswithr   r   replacer(   r   strr   )r   r   r   r    headersr%   is_valid_hostfound_www_redirectr   r)   redirect_urlresponses               r   __call__zTrustedHostMiddleware.__call__   s     > 	U6] 3
 
 
 ((5'4000000000F&&&{{62&&,,S11!4") 	* 	*Gw""3'' ,0MM'!""+,F,F  !%$'))%)" 
	1((5'400000000000 " Ud&7 U&&&"{{&3:2E{FF+L0A0ABBB,-BPSTTT(5'400000000000r   )NT)__name__
__module____qualname__r   typingOptionalSequencer/   boolr   r
   r	   r   r5    r   r   r   r   
   s         @D!	) )) vs';<) 	)
 
) ) ) )$1E 1G 14 1D 1 1 1 1 1 1r   r   )r9   starlette.datastructuresr   r   starlette.responsesr   r   r   starlette.typesr   r	   r
   r   r   r   r=   r   r   <module>rA      s     1 1 1 1 1 1 1 1 M M M M M M M M M M 9 9 9 9 9 9 9 9 9 9 9 9R 21 21 21 21 21 21 21 21 21 21r   