Readded support for keep-alive (better performance).

Details in:
934acf1126

Requires: https://review.openstack.org/#/c/628523/

Change-Id: If249cbd289cf3075f57101b3a7f0329446a00664
This commit is contained in:
Florian Apolloner 2018-11-10 14:08:59 +01:00
parent f9f75778e2
commit 9dfa7441ab
1 changed files with 6 additions and 29 deletions

View File

@ -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