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 message import Message, Request
|
||||||
from parser import Parser, RequestParser, ResponseParser
|
from parser import RequestParser
|
||||||
|
|||||||
@ -17,21 +17,22 @@ class Parser(object):
|
|||||||
return self
|
return self
|
||||||
|
|
||||||
def next(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()
|
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)
|
self.mesg = self.mesg_class(self.unreader)
|
||||||
if not self.mesg:
|
if not self.mesg:
|
||||||
raise StopIteration()
|
raise StopIteration()
|
||||||
return self.mesg
|
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):
|
class RequestParser(Parser):
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super(RequestParser, self).__init__(Request, *args, **kwargs)
|
super(RequestParser, self).__init__(Request, *args, **kwargs)
|
||||||
|
|||||||
@ -7,18 +7,17 @@ import errno
|
|||||||
import socket
|
import socket
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
|
import gunicorn.http as http
|
||||||
|
import gunicorn.http.wsgi as wsgi
|
||||||
import gunicorn.util as util
|
import gunicorn.util as util
|
||||||
import gunicorn.wsgi as wsgi
|
import gunicorn.workers.base as base
|
||||||
from gunicorn.workers.base import Worker
|
|
||||||
|
|
||||||
from simplehttp import RequestParser
|
|
||||||
|
|
||||||
ALREADY_HANDLED = object()
|
ALREADY_HANDLED = object()
|
||||||
|
|
||||||
class AsyncWorker(Worker):
|
class AsyncWorker(base.Worker):
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
Worker.__init__(self, *args, **kwargs)
|
super(AsyncWorker, self).__init__(*args, **kwargs)
|
||||||
self.worker_connections = self.cfg.worker_connections
|
self.worker_connections = self.cfg.worker_connections
|
||||||
|
|
||||||
def timeout_ctx(self):
|
def timeout_ctx(self):
|
||||||
@ -26,7 +25,7 @@ class AsyncWorker(Worker):
|
|||||||
|
|
||||||
def handle(self, client, addr):
|
def handle(self, client, addr):
|
||||||
try:
|
try:
|
||||||
parser = RequestParser(client)
|
parser = http.RequestParser(client)
|
||||||
try:
|
try:
|
||||||
while True:
|
while True:
|
||||||
req = None
|
req = None
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import select
|
|||||||
import socket
|
import socket
|
||||||
import traceback
|
import traceback
|
||||||
|
|
||||||
import gunicorn.http.parser as parser
|
import gunicorn.http as http
|
||||||
import gunicorn.http.wsgi as wsgi
|
import gunicorn.http.wsgi as wsgi
|
||||||
import gunicorn.util as util
|
import gunicorn.util as util
|
||||||
import gunicorn.workers.base as base
|
import gunicorn.workers.base as base
|
||||||
@ -70,7 +70,7 @@ class SyncWorker(base.Worker):
|
|||||||
|
|
||||||
def handle(self, client, addr):
|
def handle(self, client, addr):
|
||||||
try:
|
try:
|
||||||
parser = parser.RequestParser(client)
|
parser = http.RequestParser(client)
|
||||||
req = parser.next()
|
req = parser.next()
|
||||||
self.handle_request(req, client, addr)
|
self.handle_request(req, client, addr)
|
||||||
except socket.error, e:
|
except socket.error, e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user