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
|
InvalidRequestLine, InvalidRequestMethod, InvalidHTTPVersion
|
||||||
|
|
||||||
class Message(object):
|
class Message(object):
|
||||||
def __init__(self, unreader):
|
def __init__(self, cfg, unreader):
|
||||||
|
self.cfg = cfg
|
||||||
self.unreader = unreader
|
self.unreader = unreader
|
||||||
self.version = None
|
self.version = None
|
||||||
self.headers = []
|
self.headers = []
|
||||||
@ -96,7 +97,7 @@ class Message(object):
|
|||||||
|
|
||||||
|
|
||||||
class Request(Message):
|
class Request(Message):
|
||||||
def __init__(self, unreader):
|
def __init__(self, cfg, unreader):
|
||||||
self.methre = re.compile("[A-Z0-9$-_.]{3,20}")
|
self.methre = re.compile("[A-Z0-9$-_.]{3,20}")
|
||||||
self.versre = re.compile("HTTP/(\d+).(\d+)")
|
self.versre = re.compile("HTTP/(\d+).(\d+)")
|
||||||
|
|
||||||
@ -106,7 +107,7 @@ class Request(Message):
|
|||||||
self.query = None
|
self.query = None
|
||||||
self.fragment = None
|
self.fragment = None
|
||||||
|
|
||||||
super(Request, self).__init__(unreader)
|
super(Request, self).__init__(cfg, unreader)
|
||||||
|
|
||||||
|
|
||||||
def get_data(self, unreader, buf, stop=False):
|
def get_data(self, unreader, buf, stop=False):
|
||||||
@ -119,7 +120,6 @@ class Request(Message):
|
|||||||
|
|
||||||
def parse(self, unreader):
|
def parse(self, unreader):
|
||||||
buf = StringIO()
|
buf = StringIO()
|
||||||
|
|
||||||
self.get_data(unreader, buf, stop=True)
|
self.get_data(unreader, buf, stop=True)
|
||||||
|
|
||||||
# Request line
|
# Request line
|
||||||
|
|||||||
@ -7,8 +7,9 @@ from gunicorn.http.message import Request
|
|||||||
from gunicorn.http.unreader import SocketUnreader, IterUnreader
|
from gunicorn.http.unreader import SocketUnreader, IterUnreader
|
||||||
|
|
||||||
class Parser(object):
|
class Parser(object):
|
||||||
def __init__(self, mesg_class, source):
|
def __init__(self, mesg_class, cfg, source):
|
||||||
self.mesg_class = mesg_class
|
self.mesg_class = mesg_class
|
||||||
|
self.cfg = cfg
|
||||||
if hasattr(source, "recv"):
|
if hasattr(source, "recv"):
|
||||||
self.unreader = SocketUnreader(source)
|
self.unreader = SocketUnreader(source)
|
||||||
else:
|
else:
|
||||||
@ -30,7 +31,7 @@ class Parser(object):
|
|||||||
data = self.mesg.body.read(8192)
|
data = self.mesg.body.read(8192)
|
||||||
|
|
||||||
# Parse the next request
|
# Parse the next request
|
||||||
self.mesg = self.mesg_class(self.unreader)
|
self.mesg = self.mesg_class(self.cfg, self.unreader)
|
||||||
if not self.mesg:
|
if not self.mesg:
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
return self.mesg
|
return self.mesg
|
||||||
|
|||||||
@ -27,7 +27,7 @@ class AsyncWorker(base.Worker):
|
|||||||
|
|
||||||
def handle(self, client, addr):
|
def handle(self, client, addr):
|
||||||
try:
|
try:
|
||||||
parser = http.RequestParser(client)
|
parser = http.RequestParser(self.cfg, client)
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
req = None
|
req = None
|
||||||
|
|||||||
@ -66,7 +66,7 @@ class SyncWorker(base.Worker):
|
|||||||
|
|
||||||
def handle(self, client, addr):
|
def handle(self, client, addr):
|
||||||
try:
|
try:
|
||||||
parser = http.RequestParser(client)
|
parser = http.RequestParser(self.cfg, client)
|
||||||
req = parser.next()
|
req = parser.next()
|
||||||
self.handle_request(req, client, addr)
|
self.handle_request(req, client, addr)
|
||||||
except StopIteration, e:
|
except StopIteration, e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user