
    	h                    x    d dl mZ d dlm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 )
    )annotations)Sequence)URLHeaders)PlainTextResponseRedirectResponseResponse)ASGIAppReceiveScopeSendz6Domain wildcard patterns must be like '*.example.com'.c                  $    e Zd Z	 	 dddZddZdS )TrustedHostMiddlewareNTappr
   allowed_hostsSequence[str] | Nonewww_redirectboolreturnNonec                $   |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        m/var/www/html/web-builder-api.evdpl.com/venv/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-(    scoper   receiver   sendr   c                  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7#5#5c#:#:t}}WUVUWUW[?Y?Y $$'))%)" 
	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)r   r
   r   r   r   r   r   r   )r#   r   r$   r   r%   r   r   r   )__name__
__module____qualname__r!   r:    r"   r    r   r      sI         /3!	) ) ) ) )$1 1 1 1 1 1r"   r   N)
__future__r   collections.abcr   starlette.datastructuresr   r   starlette.responsesr   r   r	   starlette.typesr
   r   r   r   r   r   r>   r"   r    <module>rD      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 01 01 01 01 01 01 01 01 01 01r"   