mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
Fix up a couple minor bugs.
This commit is contained in:
parent
0d32ab1356
commit
8ddf3e856e
@ -1,3 +1,3 @@
|
||||
|
||||
from message import Message, Request, Response
|
||||
from parser import Parser, RequestParser, ResponseParser
|
||||
from message import Message, Request
|
||||
from parser import RequestParser
|
||||
|
||||
@ -17,21 +17,22 @@ class Parser(object):
|
||||
return self
|
||||
|
||||
def next(self):
|
||||
if self.mesg.should_close():
|
||||
# Stop if HTTP dictates a stop.
|
||||
if self.mesg and self.mesg.should_close():
|
||||
raise StopIteration()
|
||||
self.discard()
|
||||
|
||||
# Discard any unread body of the previous message
|
||||
if self.mesg:
|
||||
data = self.mesg.body.read(8192)
|
||||
while data:
|
||||
data = mesg.body.read(8192)
|
||||
|
||||
# Parse the next request
|
||||
self.mesg = self.mesg_class(self.unreader)
|
||||
if not self.mesg:
|
||||
raise StopIteration()
|
||||
return self.mesg
|
||||
|
||||
def discard(self):
|
||||
if self.mesg is not None:
|
||||
data = self.mesg.read(8192)
|
||||
while data:
|
||||
self.mesg.read(8192)
|
||||
self.mesg = None
|
||||
|
||||
class RequestParser(Parser):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(RequestParser, self).__init__(Request, *args, **kwargs)
|
||||
|
||||
@ -7,18 +7,17 @@ import errno
|
||||
import socket
|
||||
import traceback
|
||||
|
||||
import gunicorn.http as http
|
||||
import gunicorn.http.wsgi as wsgi
|
||||
import gunicorn.util as util
|
||||
import gunicorn.wsgi as wsgi
|
||||
from gunicorn.workers.base import Worker
|
||||
|
||||
from simplehttp import RequestParser
|
||||
import gunicorn.workers.base as base
|
||||
|
||||
ALREADY_HANDLED = object()
|
||||
|
||||
class AsyncWorker(Worker):
|
||||
class AsyncWorker(base.Worker):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
Worker.__init__(self, *args, **kwargs)
|
||||
super(AsyncWorker, self).__init__(*args, **kwargs)
|
||||
self.worker_connections = self.cfg.worker_connections
|
||||
|
||||
def timeout_ctx(self):
|
||||
@ -26,7 +25,7 @@ class AsyncWorker(Worker):
|
||||
|
||||
def handle(self, client, addr):
|
||||
try:
|
||||
parser = RequestParser(client)
|
||||
parser = http.RequestParser(client)
|
||||
try:
|
||||
while True:
|
||||
req = None
|
||||
|
||||
@ -10,7 +10,7 @@ import select
|
||||
import socket
|
||||
import traceback
|
||||
|
||||
import gunicorn.http.parser as parser
|
||||
import gunicorn.http as http
|
||||
import gunicorn.http.wsgi as wsgi
|
||||
import gunicorn.util as util
|
||||
import gunicorn.workers.base as base
|
||||
@ -70,7 +70,7 @@ class SyncWorker(base.Worker):
|
||||
|
||||
def handle(self, client, addr):
|
||||
try:
|
||||
parser = parser.RequestParser(client)
|
||||
parser = http.RequestParser(client)
|
||||
req = parser.next()
|
||||
self.handle_request(req, client, addr)
|
||||
except socket.error, e:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user