def handleResponseEnd(self): self._buffer = ''.join(self._buffer) if self.replace: #if content replace is needed if self.encoding == 'gzip': try: buffer1 = StringIO.StringIO(self._buffer) gzipper = gzip.GzipFile(fileobj=buffer1) html = gzipper.read() except Exception, what: print self.factory.realhost,what html = self._buffer elif self.encoding == 'deflate': try: html = zlib.decompress(self._buffer) except zlib.error: html = zlib.decompress(self._buffer, -zlib.MAX_WBITS) else: html = self._buffer self._buffer = self.factory.rp.process(self.factory.host,self.ctype,html) 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)
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 handleResponsePart(self, buffer): if self.replacing is not None: pass elif self.rewriting is not None: self._buf += buffer else: ProxyClient.handleResponsePart(self, buffer)
def handleResponsePart(self, buffer): url = self.father.uri if needModifyPlayerApi(url) or needModifyDetailApi( url) or needModifyDownloadApi(url): self.buf += buffer else: ProxyClient.handleResponsePart(self, buffer)
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.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.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.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 _forward_response(self, response): content = self.father.response_content if not response.drop_connection and not response.reset_connection: # fix this... odd that it must exist if not self._finished: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self) log.msg("Response forwarded: " + str(response)) else: if response.drop_connection: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self) response.transport.loseConnection() log.msg("Connection dropped") else: response.transport.abortConnection() log.msg("Connection reset")
def _forward_response(self, response): content = self.father.response_content if not response.drop_connection and not response.reset_connection: # fix this... odd that it must exist if not self._finished: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self) log.msg("Response forwarded: " + str(response)) else: if response.drop_connection: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self) response.transport.loseConnection() log.msg("Connection dropped") else: response.transport.abortConnection() log.msg("Connection reset")
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 handleResponseEnd(self): url = self.father.uri if self.gziped == True: temp = StringIO.StringIO(self.buf) s = gzip.GzipFile(fileobj=temp) content = s.read() else: content = self.buf if needModifyDetailApi(url): content = modifyDetailApi(content) elif needModifyPlayerApi(url): content = modifyPlayerApi(content) elif needModifyDownloadApi(url): content = modifyDownloadApi(content) if self.buf != "": if self.gziped == True: ProxyClient.handleResponsePart(self, compress(content)) else: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): url = self.father.uri if self.gziped == True: temp = StringIO.StringIO(self.buf) s = gzip.GzipFile(fileobj=temp) content = s.read() else: content = self.buf if needModifyDetailApi(url): content = modifyDetailApi(content) elif needModifyPlayerApi(url): content = modifyPlayerApi(content) elif needModifyDownloadApi(url): content = modifyDownloadApi(content) if self.buf != "": if self.gziped == True: ProxyClient.handleResponsePart(self, compress(content)) else: ProxyClient.handleResponsePart(self, content) ProxyClient.handleResponseEnd(self)
def handleResponseEnd(self): if self._mybuffer is not None: b = ''.join(self._mybuffer) self.logDebug( "handleResponseEnd", "handleResponseEnd resplength: %d b_length: %d" % (self.resplength, len(b))) if self.ctype == 'application/vnd.ms-sync.wbxml' and self.father.args.has_key( 'Cmd') and len(b) > 0: self.logDebug("handleResponseEnd", "Found Content-Type: %s" % self.ctype) self.logDebug( "handleResponseEnd", "Processing command: %s" % self.father.args['Cmd'][0]) cmd = self.father.args['Cmd'][0] #xml = wbxml.wbxml_to_xml(b) if cmd in self.commands: self.commands[cmd] = self.commands[cmd] + 1 else: self.commands[cmd] = 1 if self.encoding == 'gzip': self.logDebug("handleResponseEnd", "It seems the response is gziped... unzipping.") #b = gunzip_text(b) content = zlib.decompress(b, 16 + zlib.MAX_WBITS) else: content = b dump_file_prefix = self.uuid + "." + cmd + "." + str( self.commands[cmd]) FileDumper.dumpFile("response", dump_file_prefix, "wbxml", b) xml = pnqwbxml2xml(b) #xml = wbxml.wbxml_to_xml(b) FileDumper.dumpFile("response", dump_file_prefix, "xml", xml) filter = ActiveSyncResponseFilter(self.uuid) filter.filterCommand(cmd, self.father.getAllHeaders(), self.headers_to_cache, xml) if len(b) > 0: for buff in self._mybuffer: ProxyClient.handleResponsePart(self, buff) ProxyClient.handleResponsePart(self, "") else: ProxyClient.handleResponsePart(self, "") #ProxyClient.handleResponsePart(self,b) self.logDebug( "handleResponseEnd", "resplength: %d b_length: %d" % (self.resplength, len(b))) self.logDebug("handleResponseEnd", "Finished") self.__buffer = None #ProxyClient.handleResponseEnd() #self.handleResponseEnd(self) self.logDebug("handleResponseEnd", "NOT_DONE_YET") return NOT_DONE_YET
def handleResponseEnd(self): if self._mybuffer is not None: b = ''.join(self._mybuffer) print("uuid: %s handleResponseEnd resplength: %d b_length: %d" % (self.uuid, self.resplength, len(b))) if self.ctype == 'application/vnd.ms-sync.wbxml' and self.father.args.has_key( 'Cmd') and len(b) > 0: print "Found Content-Type: %s" % self.ctype print "Processing command: %s" % self.father.args['Cmd'][0] cmd = self.father.args['Cmd'][0] #xml = wbxml.wbxml_to_xml(b) if cmd in self.commands: self.commands[cmd] = self.commands[cmd] + 1 else: self.commands[cmd] = 1 f = open("oper/" + cmd + "." + str(self.commands[cmd]) + '.wbxml', "w") f.write(b) f.close() xml = pnqwbxml2xml(b) f = open("oper/" + cmd + "." + str(self.commands[cmd]) + '.xml', "w") f.write(xml) f.close() doc = xmltodict.parse(xml) f = open("oper/" + cmd + "." + str(self.commands[cmd]) + '.dict', "w") pprint(doc, f) f.close() if len(b) > 0: for buff in self._mybuffer: ProxyClient.handleResponsePart(self, buff) ProxyClient.handleResponsePart(self, "") else: ProxyClient.handleResponsePart(self, b) #ProxyClient.handleResponsePart(self,b) print("uuid: %s handleResponseEnd resplength: %d b_length: %d" % (self.uuid, self.resplength, len(b))) print("uuid: %s handleResponseEndhandleResponseEnd: Finished" % (self.uuid)) self.__buffer = None #ProxyClient.handleResponseEnd() #self.handleResponseEnd(self) return NOT_DONE_YET
def handleResponsePart(self, buffer): url = self.father.uri if needModifyPlayerApi(url) or needModifyDetailApi(url) or needModifyDownloadApi(url): self.buf += buffer else: ProxyClient.handleResponsePart(self, buffer)
def handleResponsePart(self, buffer): if self.image_parser: self.image_parser.feed(buffer) else: ProxyClient.handleResponsePart(self, buffer)
def handleResponsePart(self, buffer): if self.rewrite: self.buffer += buffer else: ProxyClient.handleResponsePart(self, buffer)
def handleResponsePart(self, bufferData): TwistedProxyClient.handleResponsePart(self, bufferData) if self.isCached: self.responseContent.write(bufferData)
def handleResponsePart(self, buffer): #self._buffer += buffer self._buffer.append(buffer) if not self.replace: ProxyClient.handleResponsePart(self,buffer)
def handleResponsePart(self, buffer): if self.image_parser: self.image_parser.feed(buffer) else: ProxyClient.handleResponsePart(self, buffer)
def handleResponsePart(self, buffer): if self.needsRewrite(): self.buffer = self.buffer + buffer else: ProxyClient.handleResponsePart(self, buffer)