From 9dfa7441ab191bfd9c15431c82e3bd64049d912f Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Sat, 10 Nov 2018 14:08:59 +0100 Subject: [PATCH] Readded support for keep-alive (better performance). Details in: https://github.com/django/django/commit/934acf1126995f6e6ccba5947ec8f7561633c27f Requires: https://review.openstack.org/#/c/628523/ Change-Id: If249cbd289cf3075f57101b3a7f0329446a00664 --- ara/clients/offline.py | 35 ++++++----------------------------- 1 file changed, 6 insertions(+), 29 deletions(-) diff --git a/ara/clients/offline.py b/ara/clients/offline.py index 3dc5cd8..8cf15b7 100644 --- a/ara/clients/offline.py +++ b/ara/clients/offline.py @@ -23,7 +23,7 @@ import os import threading from django.core.handlers.wsgi import WSGIHandler -from django.core.servers.basehttp import ServerHandler as BaseServerHandler, ThreadedWSGIServer, WSGIRequestHandler +from django.core.servers.basehttp import ThreadedWSGIServer, WSGIRequestHandler from .http import AraHttpClient @@ -60,34 +60,6 @@ class AraOfflineClient(AraHttpClient): raise self.server_thread.error -class ServerHandler(BaseServerHandler): - def cleanup_headers(self): - super().cleanup_headers() - self.headers["Connection"] = "close" - - -class QuietWSGIRequestHandler(WSGIRequestHandler): - def log_message(*args): - pass - - def handle(self): - """Copy of WSGIRequestHandler.handle() but with different ServerHandler""" - self.raw_requestline = self.rfile.readline(65537) - if len(self.raw_requestline) > 65536: - self.requestline = "" - self.request_version = "" - self.command = "" - self.send_error(414) - return - - if not self.parse_request(): # An error code has been sent, just exit - return - - handler = ServerHandler(self.rfile, self.wfile, self.get_stderr(), self.get_environ()) - handler.request_handler = self # backpointer for logging - handler.run(self.server.get_app()) - - class ServerThread(threading.Thread): def __init__(self, host, port=0): self.host = host @@ -116,3 +88,8 @@ class ServerThread(threading.Thread): def _create_server(self): return ThreadedWSGIServer((self.host, self.port), QuietWSGIRequestHandler, allow_reuse_address=False) + + +class QuietWSGIRequestHandler(WSGIRequestHandler): + def log_message(*args): + pass