def test_gzip_decode_limit(self): max_gzip_decode = 20 * 1024 * 1024 data = b'\x00' * max_gzip_decode encoded = xmlrpclib.gzip_encode(data) decoded = xmlrpclib.gzip_decode(encoded) self.assertEqual(len(decoded), max_gzip_decode) data = b'\x00' * (max_gzip_decode + 1) encoded = xmlrpclib.gzip_encode(data) with self.assertRaisesRegex(ValueError, 'max gzipped payload length exceeded'): xmlrpclib.gzip_decode(encoded) xmlrpclib.gzip_decode(encoded, max_decode=-1)
def test_gzip_decode_limit(self): max_gzip_decode = 20 * 1024 * 1024 data = b'\0' * max_gzip_decode encoded = xmlrpclib.gzip_encode(data) decoded = xmlrpclib.gzip_decode(encoded) self.assertEqual(len(decoded), max_gzip_decode) data = b'\0' * (max_gzip_decode + 1) encoded = xmlrpclib.gzip_encode(data) with self.assertRaisesRegex(ValueError, "max gzipped payload length exceeded"): xmlrpclib.gzip_decode(encoded) xmlrpclib.gzip_decode(encoded, max_decode=-1)
def decode_request_content(self, message, payload): data = yield from payload.read() encoding = message.headers.get("content-encoding", "indentity").lower() if encoding == "indentity": return data elif encoding == "gzip": try: return gzip_decode(data) except NotImplementedError: yield from self.send_response(501, message.version) except ValueError: yield from self.send_response(400, message.version) else: yield from self.send_response(501, message.version, b"encoding not supported")
def decode_request_content(self, data): encoding = self.headers.get('content-encoding', 'identity').lower() if encoding == 'identity': return data if encoding == 'gzip': try: return gzip_decode(data) except NotImplementedError: self.send_response(501, 'encoding %r not supported' % encoding) except ValueError: self.send_response(400, 'error decoding gzip content') else: self.send_response(501, 'encoding %r not supported' % encoding) self.send_header('Content-length', '0') self.end_headers()
def decode_request_content(self, data): # support gzip encoding of request encoding = self.headers.get("content-encoding", "identity").lower() if encoding == "identity": return data if encoding == "gzip": try: return gzip_decode(data) except NotImplementedError: self.send_response(501, "encoding %r not supported" % encoding) except ValueError: self.send_response(400, "error decoding gzip content") else: self.send_response(501, "encoding %r not supported" % encoding) self.send_header("Content-length", "0") self.end_headers()
def decode_request_content(self, data): #support gzip encoding of request encoding = self.headers.get("content-encoding", "identity").lower() if encoding == "identity": return data if encoding == "gzip": try: return gzip_decode(data) except NotImplementedError: self.send_response(501, "encoding %r not supported" % encoding) except ValueError: self.send_response(400, "error decoding gzip content") else: self.send_response(501, "encoding %r not supported" % encoding) self.send_header("Content-length", "0") self.end_headers()