OwlCyberSecurity - MANAGER
Edit File: reverseproxy.pyc
� �t�ac @ s� d g Z d d l m Z d d l m Z m Z d d l m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m Z m Z d e f d � � YZ d S( t ReverseProxyResourcei����( t implements( t iwebt responsecode( t ClientRequest( t StatusResponset HTTPError( t LeafResource( t Logger( t getHTTPClientPool( t config( t returnValuet inlineCallbacksc B sN e Z d Z e � Z e e j � d � Z d � Z d � Z e d � � Z RS( sL A L{LeafResource} which always performs a reverse proxy operation. c O s( | | _ | | _ | | _ t | _ d S( s\ @param poolID: identifier of the pool to use @type poolID: C{str} N( t poolIDt _argst _kwargst Falset allowMultiHop( t selfR t argst kwargs( ( s4 /opt/cpanel-ccs/twistedcaldav/client/reverseproxy.pyt __init__, s c C s t S( N( t True( R ( ( s4 /opt/cpanel-ccs/twistedcaldav/client/reverseproxy.pyt isCollection8 s c C s t S( N( R ( R ( ( s4 /opt/cpanel-ccs/twistedcaldav/client/reverseproxy.pyt exists; s c c s� | j j d d | j d | j d | j d d j | j � �| j s� | j j d � } | r� xc | D]X } | j � t j j � k re | j j d d t | � �t t t j d � � � qe qe Wq� n t | j � } t | j | j | j | j � } | j j d � | j j d � | j j d � | j j d | j � | j j d | j j � | j j d t j � y | j | � V} WnV t k r�} | j j d d t | � �t t t j d j d | j � � � � n Xt | � d S( s� Do the reverse proxy request and return the response. @param request: the incoming request that needs to be proxied. @type request: L{Request} @return: Deferred L{Response} s {method} {poolID}:{uri} {proto}t methodR t urit protos HTTP/{}.{}s x-forwarded-servers4 ReverseProxy loop detected: x-forwarded-server:{xfs}t xfss Too many x-forwarded-server hopss x-forwarded-hosts x-forwarded-fors ReverseProxy failed: {exc}t excs"