Quellcode durchsuchen

Fix #295: Python 3 compatibility for dulwich.web

Jonas Haag vor 9 Jahren
Ursprung
Commit
fc6f2020de
1 geänderte Dateien mit 7 neuen und 7 gelöschten Zeilen
  1. 7 7
      dulwich/web.py

+ 7 - 7
dulwich/web.py

@@ -175,7 +175,7 @@ def get_info_refs(req, backend, mat):
     params = parse_qs(req.environ['QUERY_STRING'])
     service = params.get('service', [None])[0]
     if service and not req.dumb:
-        handler_cls = req.handlers.get(service, None)
+        handler_cls = req.handlers.get(service.encode('ascii'), None)
         if handler_cls is None:
             yield req.forbidden('Unsupported service')
             return
@@ -231,7 +231,7 @@ class _LengthLimitedFile(object):
 def handle_service_request(req, backend, mat):
     service = mat.group().lstrip('/')
     logger.info('Handling service request for %s', service)
-    handler_cls = req.handlers.get(service, None)
+    handler_cls = req.handlers.get(service.encode('ascii'), None)
     if handler_cls is None:
         yield req.forbidden('Unsupported service')
         return
@@ -275,21 +275,21 @@ class HTTPGitRequest(object):
         self._cache_headers = []
         logger.info('Not found: %s', message)
         self.respond(HTTP_NOT_FOUND, 'text/plain')
-        return message
+        return message.encode('ascii')
 
     def forbidden(self, message):
         """Begin a HTTP 403 response and return the text of a message."""
         self._cache_headers = []
         logger.info('Forbidden: %s', message)
         self.respond(HTTP_FORBIDDEN, 'text/plain')
-        return message
+        return message.encode('ascii')
 
     def error(self, message):
         """Begin a HTTP 500 response and return the text of a message."""
         self._cache_headers = []
         logger.error('Error: %s', message)
         self.respond(HTTP_ERROR, 'text/plain')
-        return message
+        return message.encode('ascii')
 
     def nocache(self):
         """Set the response to never be cached by the client."""
@@ -356,7 +356,7 @@ class HTTPGitApplication(object):
             if self.fallback_app is not None:
                 return self.fallback_app(environ, start_response)
             else:
-                return req.not_found('Sorry, that method is not supported')
+                return [req.not_found('Sorry, that method is not supported')]
 
         return handler(req, self.backend, mat)
 
@@ -424,7 +424,7 @@ class ServerHandlerLogger(ServerHandler):
     """ServerHandler that uses dulwich's logger for logging exceptions."""
 
     def log_exception(self, exc_info):
-        if sys.version < (2, 7):
+        if sys.version_info < (2, 7):
             logger.exception('Exception happened during processing of request')
         else:
             logger.exception('Exception happened during processing of request',