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

Try to decode URLs with utf-8 (Fixes #486)

Unrud 9 лет назад
Родитель
Сommit
8db580abce
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      radicale/__init__.py

+ 7 - 0
radicale/__init__.py

@@ -38,6 +38,7 @@ import socketserver
 import ssl
 import subprocess
 import threading
+import urllib
 import wsgiref.simple_server
 import zlib
 from contextlib import contextmanager
@@ -133,6 +134,12 @@ class RequestHandler(wsgiref.simple_server.WSGIRequestHandler):
     def log_message(self, *args, **kwargs):
         """Disable inner logging management."""
 
+    def get_environ(self):
+        env = super().get_environ()
+        # Parent class only tries latin1 encoding
+        env["PATH_INFO"] = urllib.parse.unquote(self.path.split("?", 1)[0])
+        return env
+
 
 class Application:
     """WSGI application managing collections."""