mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
pass config to the http parser.
This commit is contained in:
parent
613378529b
commit
6766c14793
@ -16,7 +16,8 @@ from gunicorn.http.errors import InvalidHeader, InvalidHeaderName, NoMoreData, \
|
||||
InvalidRequestLine, InvalidRequestMethod, InvalidHTTPVersion
|
||||
|
||||
class Message(object):
|
||||
def __init__(self, unreader):
|
||||
def __init__(self, cfg, unreader):
|
||||
self.cfg = cfg
|
||||
self.unreader = unreader
|
||||
self.version = None
|
||||
self.headers = []
|
||||
@ -96,7 +97,7 @@ class Message(object):
|
||||
|
||||
|
||||
class Request(Message):
|
||||
def __init__(self, unreader):
|
||||
def __init__(self, cfg, unreader):
|
||||
self.methre = re.compile("[A-Z0-9$-_.]{3,20}")
|
||||
self.versre = re.compile("HTTP/(\d+).(\d+)")
|
||||
|
||||
@ -106,7 +107,7 @@ class Request(Message):
|
||||
self.query = None
|
||||
self.fragment = None
|
||||
|
||||
super(Request, self).__init__(unreader)
|
||||
super(Request, self).__init__(cfg, unreader)
|
||||
|
||||
|
||||
def get_data(self, unreader, buf, stop=False):
|
||||
@ -119,7 +120,6 @@ class Request(Message):
|
||||
|
||||
def parse(self, unreader):
|
||||
buf = StringIO()
|
||||
|
||||
self.get_data(unreader, buf, stop=True)
|
||||
|
||||
# Request line
|
||||
|
||||
@ -7,8 +7,9 @@ from gunicorn.http.message import Request
|
||||
from gunicorn.http.unreader import SocketUnreader, IterUnreader
|
||||
|
||||
class Parser(object):
|
||||
def __init__(self, mesg_class, source):
|
||||
def __init__(self, mesg_class, cfg, source):
|
||||
self.mesg_class = mesg_class
|
||||
self.cfg = cfg
|
||||
if hasattr(source, "recv"):
|
||||
self.unreader = SocketUnreader(source)
|
||||
else:
|
||||
@ -30,7 +31,7 @@ class Parser(object):
|
||||
data = self.mesg.body.read(8192)
|
||||
|
||||
# Parse the next request
|
||||
self.mesg = self.mesg_class(self.unreader)
|
||||
self.mesg = self.mesg_class(self.cfg, self.unreader)
|
||||
if not self.mesg:
|
||||
raise StopIteration()
|
||||
return self.mesg
|
||||
|
||||
@ -27,7 +27,7 @@ class AsyncWorker(base.Worker):
|
||||
|
||||
def handle(self, client, addr):
|
||||
try:
|
||||
parser = http.RequestParser(client)
|
||||
parser = http.RequestParser(self.cfg, client)
|
||||
try:
|
||||
while True:
|
||||
req = None
|
||||
|
||||
@ -66,7 +66,7 @@ class SyncWorker(base.Worker):
|
||||
|
||||
def handle(self, client, addr):
|
||||
try:
|
||||
parser = http.RequestParser(client)
|
||||
parser = http.RequestParser(self.cfg, client)
|
||||
req = parser.next()
|
||||
self.handle_request(req, client, addr)
|
||||
except StopIteration, e:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user