Просмотр исходного кода

Only limit content length with internal server

Unrud 7 лет назад
Родитель
Сommit
59d10ef9f7
2 измененных файлов с 4 добавлено и 3 удалено
  1. 3 2
      radicale/__init__.py
  2. 1 1
      radicale/server.py

+ 3 - 2
radicale/__init__.py

@@ -93,7 +93,7 @@ DAV_HEADERS = "1, 2, 3, calendar-access, addressbook, extended-mkcol"
 class Application:
     """WSGI application managing collections."""
 
-    def __init__(self, configuration):
+    def __init__(self, configuration, internal_server=False):
         """Initialize application."""
         super().__init__()
         self.configuration = configuration
@@ -102,6 +102,7 @@ class Application:
         self.Rights = rights.load(configuration)
         self.Web = web.load(configuration)
         self.encoding = configuration.get("encoding", "request")
+        self.internal_server = internal_server
 
     def headers_log(self, environ):
         """Sanitize headers for logging."""
@@ -334,7 +335,7 @@ class Application:
 
         # Verify content length
         content_length = int(environ.get("CONTENT_LENGTH") or 0)
-        if content_length:
+        if self.internal_server and content_length:
             max_content_length = self.configuration.getint(
                 "server", "max_content_length")
             if max_content_length and content_length > max_content_length:

+ 1 - 1
radicale/server.py

@@ -236,7 +236,7 @@ def serve(configuration):
         except ValueError as e:
             raise RuntimeError(
                 "Failed to parse address %r: %s" % (host, e)) from e
-        application = Application(configuration)
+        application = Application(configuration, internal_server=True)
         try:
             server = wsgiref.simple_server.make_server(
                 address, port, application, server_class, RequestHandler)