Pārlūkot izejas kodu

Drop body for HEAD requests last

Unrud 4 gadi atpakaļ
vecāks
revīzija
c96e5b6667
2 mainītis faili ar 4 papildinājumiem un 3 dzēšanām
  1. 3 2
      radicale/app/__init__.py
  2. 1 1
      radicale/app/head.py

+ 3 - 2
radicale/app/__init__.py

@@ -117,6 +117,8 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
                 headers = [*raw_headers, ("Content-Length", str(len(answer)))]
                 answers = [answer]
             start_response(status_text, headers)
+        if environ.get("REQUEST_METHOD") == "HEAD":
+            return []
         return answers
 
     def _handle_request(self, environ: types.WSGIEnviron
@@ -148,8 +150,7 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
                     headers["Content-Encoding"] = "gzip"
 
                 headers["Content-Length"] = str(len(answer))
-                if request_method != "HEAD":
-                    answers.append(answer)
+                answers.append(answer)
 
             # Add extra headers set in configuration
             headers.update(self._extra_headers)

+ 1 - 1
radicale/app/head.py

@@ -27,5 +27,5 @@ class ApplicationPartHead(ApplicationPartGet, ApplicationBase):
     def do_HEAD(self, environ: types.WSGIEnviron, base_prefix: str, path: str,
                 user: str) -> types.WSGIResponse:
         """Manage HEAD request."""
-        # Body is dropped in `Application._handle_request` for HEAD requests
+        # Body is dropped in `Application.__call__` for HEAD requests
         return self.do_GET(environ, base_prefix, path, user)