Show
Ignore:
Timestamp:
06/30/08 21:51:09 (5 months ago)
Author:
thijs
Message:

Fix issue #316: Referer missing in remoting client

Review by: njoyce

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pyamf/trunk/pyamf/remoting/client/__init__.py

    r1440 r1466  
    176176        See L{ENCODING_TYPES<pyamf.ENCODING_TYPES>}. 
    177177    @type amf_version: C{int} 
     178    @ivar referer: The referer, or HTTP referer, identifies the address of the 
     179        client. Ignored by default. 
     180    @type referer: C{str} 
    178181    @ivar client_type: The client type. See L{ClientTypes<pyamf.ClientTypes>}. 
    179182    @ivar connection: The underlying connection to the remoting server. 
     
    183186    """ 
    184187 
    185     def __init__(self, url, amf_version=pyamf.AMF0, client_type=DEFAULT_CLIENT_TYPE): 
     188    def __init__(self, url, amf_version=pyamf.AMF0, client_type=DEFAULT_CLIENT_TYPE, 
     189                 referer=None): 
    186190        self.logger = logging.instance_logger(self) 
    187191        self.original_url = url 
     
    189193        self.request_number = 1 
    190194 
     195        self.referer = referer 
    191196        self.amf_version = amf_version 
    192197        self.client_type = client_type 
     
    233238 
    234239        self.logger.info('Creating connection to %s://%s:%s' % (self.url[0], hostname, port)) 
    235  
     240        self.logger.debug('Referer: %s' % self.referer) 
     241         
    236242    def addHeader(self, name, value, must_understand=False): 
    237243        """ 
     
    335341        self.logger.debug('Executing single request: %s' % request) 
    336342        body = remoting.encode(self.getAMFRequest([request])) 
     343        headers = {'Content-Type': remoting.CONTENT_TYPE} 
     344 
     345        if self.referer is not None: 
     346            headers['Referer'] = self.referer 
    337347 
    338348        self.logger.debug('Sending POST request to %s' % self._root_url) 
    339349        self.connection.request('POST', self._root_url, body.getvalue(), 
    340             {'Content-Type': remoting.CONTENT_TYPE}) 
     350                                headers) 
    341351 
    342352        envelope = self._getResponse() 
     
    351361        """ 
    352362        body = remoting.encode(self.getAMFRequest(self.requests)) 
     363        headers = {'Content-Type': remoting.CONTENT_TYPE} 
     364 
     365        if self.referer is not None: 
     366            headers['Referer'] = self.referer 
    353367 
    354368        self.logger.debug('Sending POST request to %s' % self._root_url) 
    355369        self.connection.request('POST', self._root_url, body.getvalue(), 
    356             {'Content-Type': remoting.CONTENT_TYPE}) 
     370                                headers) 
    357371 
    358372        envelope = self._getResponse()