Ticket #316: referer-316.patch
| File referer-316.patch, 2.9 KB (added by thijs, 5 months ago) |
|---|
-
pyamf/remoting/client/__init__.py
175 175 @ivar amf_version: The AMF version to use. 176 176 See L{ENCODING_TYPES<pyamf.ENCODING_TYPES>}. 177 177 @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} 178 181 @ivar client_type: The client type. See L{ClientTypes<pyamf.ClientTypes>}. 179 182 @ivar connection: The underlying connection to the remoting server. 180 183 @type connection: C{httplib.HTTPConnection} or C{httplib.HTTPSConnection} … … 182 185 @type headers: L{HeaderCollection<pyamf.remoting.HeaderCollection>} 183 186 """ 184 187 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): 186 190 self.logger = logging.instance_logger(self) 187 191 self.original_url = url 188 192 self.requests = [] 189 193 self.request_number = 1 190 194 195 self.referer = referer 191 196 self.amf_version = amf_version 192 197 self.client_type = client_type 193 198 self.headers = remoting.HeaderCollection() … … 232 237 raise ValueError, 'Unknown scheme' 233 238 234 239 self.logger.info('Creating connection to %s://%s:%s' % (self.url[0], hostname, port)) 235 240 self.logger.debug('Referer: %s' % self.referer) 241 236 242 def addHeader(self, name, value, must_understand=False): 237 243 """ 238 244 Sets a persistent header to send with each request. … … 334 340 """ 335 341 self.logger.debug('Executing single request: %s' % request) 336 342 body = remoting.encode(self.getAMFRequest([request])) 343 headers = {'Content-Type': remoting.CONTENT_TYPE} 337 344 345 if self.referer is not None: 346 headers['Referer'] = self.referer 347 338 348 self.logger.debug('Sending POST request to %s' % self._root_url) 339 349 self.connection.request('POST', self._root_url, body.getvalue(), 340 {'Content-Type': remoting.CONTENT_TYPE})350 headers) 341 351 342 352 envelope = self._getResponse() 343 353 self.removeRequest(request) … … 350 360 C{self.requests}. 351 361 """ 352 362 body = remoting.encode(self.getAMFRequest(self.requests)) 363 headers = {'Content-Type': remoting.CONTENT_TYPE} 353 364 365 if self.referer is not None: 366 headers['Referer'] = self.referer 367 354 368 self.logger.debug('Sending POST request to %s' % self._root_url) 355 369 self.connection.request('POST', self._root_url, body.getvalue(), 356 {'Content-Type': remoting.CONTENT_TYPE})370 headers) 357 371 358 372 envelope = self._getResponse() 359 373
