Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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")
Пример #4
0
 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()
Пример #5
0
 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()
Пример #6
0
 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()