[svn r82] Add max_http_version to httpd.server to allow specifying either http 1.0 or 1.1
This commit is contained in:
@@ -39,6 +39,8 @@ from eventlet import api
|
|||||||
from eventlet import coros
|
from eventlet import coros
|
||||||
|
|
||||||
|
|
||||||
|
DEFAULT_MAX_HTTP_VERSION = 'HTTP/1.1'
|
||||||
|
|
||||||
USE_ACCESS_LOG = True
|
USE_ACCESS_LOG = True
|
||||||
|
|
||||||
|
|
||||||
@@ -388,13 +390,13 @@ class Timeout(RuntimeError):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
||||||
protocol_version = "HTTP/1.1"
|
|
||||||
def __init__(self, request, client_address, server):
|
def __init__(self, request, client_address, server):
|
||||||
self.socket = self.request = self.rfile = self.wfile = request
|
self.socket = self.request = self.rfile = self.wfile = request
|
||||||
self.client_address = client_address
|
self.client_address = client_address
|
||||||
self.server = server
|
self.server = server
|
||||||
self._code = 200
|
self._code = 200
|
||||||
self._message = 'OK'
|
self._message = 'OK'
|
||||||
|
self.protocol_version = server.max_http_version
|
||||||
|
|
||||||
def set_response_code(self, request, code, message):
|
def set_response_code(self, request, code, message):
|
||||||
self._code = code
|
self._code = code
|
||||||
@@ -503,10 +505,11 @@ class HttpProtocol(BaseHTTPServer.BaseHTTPRequestHandler):
|
|||||||
|
|
||||||
|
|
||||||
class Server(BaseHTTPServer.HTTPServer):
|
class Server(BaseHTTPServer.HTTPServer):
|
||||||
def __init__(self, socket, address, site, log):
|
def __init__(self, socket, address, site, log, max_http_version=DEFAULT_MAX_HTTP_VERSION):
|
||||||
self.socket = socket
|
self.socket = socket
|
||||||
self.address = address
|
self.address = address
|
||||||
self.site = site
|
self.site = site
|
||||||
|
self.max_http_version = max_http_version
|
||||||
if log:
|
if log:
|
||||||
self.log = log
|
self.log = log
|
||||||
if hasattr(log, 'info'):
|
if hasattr(log, 'info'):
|
||||||
@@ -531,10 +534,10 @@ class Server(BaseHTTPServer.HTTPServer):
|
|||||||
'%s - - [%s] "%s" %s %s %.6f\n' % args)
|
'%s - - [%s] "%s" %s %s %.6f\n' % args)
|
||||||
|
|
||||||
|
|
||||||
def server(sock, site, log=None, max_size=512,serv=None):
|
def server(sock, site, log=None, max_size=512, serv=None, max_http_version=DEFAULT_MAX_HTTP_VERSION):
|
||||||
pool = coros.CoroutinePool(max_size=max_size)
|
pool = coros.CoroutinePool(max_size=max_size)
|
||||||
if serv is None:
|
if serv is None:
|
||||||
serv = Server(sock, sock.getsockname(), site, log)
|
serv = Server(sock, sock.getsockname(), site, log, max_http_version=max_http_version)
|
||||||
try:
|
try:
|
||||||
serv.log.write("httpd starting up on %s\n" % (sock.getsockname(), ))
|
serv.log.write("httpd starting up on %s\n" % (sock.getsockname(), ))
|
||||||
while True:
|
while True:
|
||||||
|
Reference in New Issue
Block a user