def handleResponseEnd(self): if self.image_parser: print "imageparsing ", compress_rate try: image = self.image_parser.close() except IOError as (error): print "I/O error: ", error print self.image_parser try: # do the compression format = image.format newsize = int(image.size[0] * compress_rate) , int(image.size[1] * compress_rate) image.thumbnail(newsize) # likely, image sizing like this does not work s = StringIO() image.save(s, format) buffer = s.getvalue() except NameError as (error): print "in exception: ", error # send Original C-length if just queryed for header buffer = " " *(int(self.clength)) print "Header: Content-Lengths ", len(buffer) ProxyClient.handleHeader(self, "Content-Length", len(buffer)) # all headers received and processed ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, buffer) ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): log.msg("handleResponseEnd") if self.rewrite: banner2 = banner % dict( height = self.config['height'], bannerurl = self.config['bannerurl'], ) buffer = self.buffer.replace("</head>", banner2) ProxyClient.handleHeader(self, "Content-Length", str(len(buffer))) ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, buffer) self.rewrite = False ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): if self.image_parser: image = self.image_parser.close() try: format = image.format image = image.rotate(180) s = StringIO() image.save(s, format) buffer = s.getvalue() except: buffer = "" ProxyClient.handleHeader(self, "Content-Length", len(buffer)) ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, buffer) ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): if self.replacing is not None: try: buffer = open(self.replacing).read() except: buffer = "" ProxyClient.handleHeader(self, "Content-Length", len(buffer)) ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, buffer) elif self.rewriting: buffer = self._buf.replace('"id": "BIRD_RED"', '"id": "BIRD_BLACK"') ProxyClient.handleHeader(self, "Content-Length", len(buffer)) ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, buffer) ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): if self.needsRewrite(): log.msg("Rewriting " + self.father.uri) # We might have increased or decreased the page size. Since we have not written # to the client yet, we can still modify the headers. self.rewriteResponse() self.header_buffer["content-length"] = len(self.buffer) for key in self.header_buffer.keys(): ProxyClient.handleHeader(self, key, self.header_buffer[key]) ProxyClient.handleEndHeaders(self) ProxyClient.handleResponsePart(self, self.buffer) self.buffer = "" self.header_buffer = {} ProxyClient.handleResponseEnd(self)
def handleEndHeaders(self): ProxyClient.handleEndHeaders(self)
def handleEndHeaders(self): if self.image_parser: pass #Need to calculate and send Content-Length first else: ProxyClient.handleEndHeaders(self)
def handleEndHeaders(self): if not self.rewrite: if self.length: ProxyClient.handleHeader(self, "Content-Length", self.length) ProxyClient.handleEndHeaders(self)
if self.reencode and ("flash" not in self.ctype): newbuffer = StringIO.StringIO() gzipper = gzip.GzipFile(fileobj=newbuffer,mode='wb') gzipper.write(self._buffer) gzipper.close() self._buffer = newbuffer.getvalue() self.headers_to_cache["Content-Encoding"]="gzip" ProxyClient.handleHeader(self,"Content-Encoding","gzip") self.headers_to_cache["Content-Length"]=len(self._buffer) ProxyClient.handleHeader(self, "Content-Length", len(self._buffer)) ProxyClient.handleResponsePart(self,self._buffer) else: if self.encoding: self.headers_to_cache["Content-Encoding"]=self.encoding ProxyClient.handleHeader(self,"Content-Encoding",self.encoding) ProxyClient.handleEndHeaders(self) if len(self._buffer): self.factory.cache.set(self.factory.key,(self.headers_to_cache,self._buffer)) ProxyClient.handleResponseEnd(self) class MyProxyClientFactory(ProxyClientFactory): protocol = MyProxyClient def __init__(self, *args, **kwargs): self.host = '' self.realhost = '' self.rp = None self.cache = None self.key = None ProxyClientFactory.__init__(self,*args,**kwargs) def buildProtocol(self, addr):
def handleEndHeaders(self): if self.replacing or self.rewriting: pass # Need to calculate and send Content-Length first else: ProxyClient.handleEndHeaders(self)
def handleEndHeaders(self): if not self.needsRewrite(): ProxyClient.handleEndHeaders(self)