mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
fix lot of typos/bug
This commit is contained in:
parent
73763d66bf
commit
fe5f44d0b7
@ -27,13 +27,13 @@ from ctypes import *
|
|||||||
class HttpParser(object):
|
class HttpParser(object):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.headers = {}
|
self._headers = {}
|
||||||
self.version = None
|
self.version = None
|
||||||
self.method None
|
self.method = None
|
||||||
self.path = None
|
self.path = None
|
||||||
self._content_len = None
|
self._content_len = None
|
||||||
|
|
||||||
def header(self, headers, buf):
|
def headers(self, headers, buf):
|
||||||
""" take a string buff. It return
|
""" take a string buff. It return
|
||||||
environ or None if parsing isn't done.
|
environ or None if parsing isn't done.
|
||||||
"""
|
"""
|
||||||
@ -62,15 +62,15 @@ class HttpParser(object):
|
|||||||
hname = ""
|
hname = ""
|
||||||
for line in lines:
|
for line in lines:
|
||||||
if line == "\t":
|
if line == "\t":
|
||||||
self.headers[hname] += line.strip()
|
self._headers[hname] += line.strip()
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
hname =self._parse_headerl(line)
|
hname =self._parse_headerl(line)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# bad headers
|
# bad headers
|
||||||
pass
|
pass
|
||||||
headers = self.headers
|
headers = self._headers
|
||||||
self._content_len = int(self._headers.get('Content-Length'))
|
self._content_len = int(self._headers.get('Content-Length') or 0)
|
||||||
return headers
|
return headers
|
||||||
|
|
||||||
def _first_line(self, line):
|
def _first_line(self, line):
|
||||||
@ -82,16 +82,16 @@ class HttpParser(object):
|
|||||||
def _parse_headerl(self, line):
|
def _parse_headerl(self, line):
|
||||||
name, value = line.split(": ", 1)
|
name, value = line.split(": ", 1)
|
||||||
name = name.strip()
|
name = name.strip()
|
||||||
self.headers[name] = value.strip()
|
self._headers[name] = value.strip()
|
||||||
return name
|
return name
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def should_close(self):
|
def should_close(self):
|
||||||
if self._should_close:
|
if self._should_close:
|
||||||
return True
|
return True
|
||||||
if self.headers.get("Connection") == "close":
|
if self._headers.get("Connection") == "close":
|
||||||
return True
|
return True
|
||||||
if self.headers.get("Connection") == "Keep-Alive":
|
if self._headers.get("Connection") == "Keep-Alive":
|
||||||
return False
|
return False
|
||||||
if self.version < "HTTP/1.1":
|
if self.version < "HTTP/1.1":
|
||||||
return True
|
return True
|
||||||
@ -117,12 +117,14 @@ class HttpParser(object):
|
|||||||
if self._len_content == 0:
|
if self._len_content == 0:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def fetch_body(self, buf, data):
|
def fetch_body(self, buf, data):
|
||||||
dlen = len(data)
|
dlen = len(data)
|
||||||
resize(buf, sizeof(data))
|
resize(buf, sizeof(data))
|
||||||
|
s = data.value
|
||||||
if self.is_chunked:
|
if self.is_chunked:
|
||||||
# do chunk
|
# do chunk
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
if self.content_len > 0:
|
if self.content_len > 0:
|
||||||
nr = min(len(data), self._content_len)
|
nr = min(len(data), self._content_len)
|
||||||
|
|||||||
@ -81,17 +81,16 @@ class HTTPRequest(object):
|
|||||||
if headers.get('Accept', '').lower() == "100-continue":
|
if headers.get('Accept', '').lower() == "100-continue":
|
||||||
self.socket.send("100 Continue\n")
|
self.socket.send("100 Continue\n")
|
||||||
|
|
||||||
if "?" in parser.path:
|
if "?" in self.parser.path:
|
||||||
path_info, query = parser.path.split('?', 1)
|
path_info, query = self.parser.path.split('?', 1)
|
||||||
else:
|
else:
|
||||||
path_info = self.parser.path
|
path_info = self.parser.path
|
||||||
query = ""
|
query = ""
|
||||||
|
|
||||||
if not length:
|
if not self.parser.content_length and not self.parser.is_chunked:
|
||||||
if not self.parser.content_length and not self.parser.is_chunked:
|
wsgi_input = StringIO.StringIO()
|
||||||
wsgi_input = StringIO.StringIO()
|
else:
|
||||||
else:
|
wsgi_input = TeeInput(self.socket, parser, buf, remain)
|
||||||
wsgi_input = TeeInput(self.socket, parser, buf, remain)
|
|
||||||
|
|
||||||
environ = {
|
environ = {
|
||||||
"wsgi.url_scheme": 'http',
|
"wsgi.url_scheme": 'http',
|
||||||
@ -103,7 +102,7 @@ class HTTPRequest(object):
|
|||||||
"wsgi.run_once": False,
|
"wsgi.run_once": False,
|
||||||
"SCRIPT_NAME": "",
|
"SCRIPT_NAME": "",
|
||||||
"SERVER_SOFTWARE": self.SERVER_VERSION,
|
"SERVER_SOFTWARE": self.SERVER_VERSION,
|
||||||
"REQUEST_METHOD": self.method,
|
"REQUEST_METHOD": self.parser.method,
|
||||||
"PATH_INFO": unquote(path_info),
|
"PATH_INFO": unquote(path_info),
|
||||||
"QUERY_STRING": query,
|
"QUERY_STRING": query,
|
||||||
"RAW_URI": self.path,
|
"RAW_URI": self.path,
|
||||||
@ -113,7 +112,7 @@ class HTTPRequest(object):
|
|||||||
"REMOTE_PORT": self.client_address[1],
|
"REMOTE_PORT": self.client_address[1],
|
||||||
"SERVER_NAME": self.server_address[0],
|
"SERVER_NAME": self.server_address[0],
|
||||||
"SERVER_PORT": self.server_address[1],
|
"SERVER_PORT": self.server_address[1],
|
||||||
"SERVER_PROTOCOL": self.version
|
"SERVER_PROTOCOL": self.parser.version
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, value in self.headers.items():
|
for key, value in self.headers.items():
|
||||||
|
|||||||
@ -49,7 +49,7 @@ class TeeInput(object):
|
|||||||
if self._len and self._len < MAX_BODY:
|
if self._len and self._len < MAX_BODY:
|
||||||
self.tmp = StringIO.StringIO()
|
self.tmp = StringIO.StringIO()
|
||||||
else:
|
else:
|
||||||
self.tmp = new tempfile.TemporaryFile()
|
self.tmp = tempfile.TemporaryFile()
|
||||||
self.buf2 = create_string_buffer(tmp)
|
self.buf2 = create_string_buffer(tmp)
|
||||||
if len(buf) > 0:
|
if len(buf) > 0:
|
||||||
parser.filter_body(self.buf2, buf)
|
parser.filter_body(self.buf2, buf)
|
||||||
@ -59,7 +59,7 @@ class TeeInput(object):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def len(self):
|
def len(self):
|
||||||
if self._len return self._len
|
if self._len: return self._len
|
||||||
if self.remain:
|
if self.remain:
|
||||||
pos = self.tmp.tell()
|
pos = self.tmp.tell()
|
||||||
while True:
|
while True:
|
||||||
@ -76,7 +76,7 @@ class TeeInput(object):
|
|||||||
return self.tmp.read(length)
|
return self.tmp.read(length)
|
||||||
|
|
||||||
if not length:
|
if not length:
|
||||||
r = self.tmp.read() or ||
|
r = self.tmp.read() or ""
|
||||||
while self._tee(self.remain, self.buf2):
|
while self._tee(self.remain, self.buf2):
|
||||||
r += self.buf2.value
|
r += self.buf2.value
|
||||||
return r
|
return r
|
||||||
@ -84,7 +84,7 @@ class TeeInput(object):
|
|||||||
r = self.buf2
|
r = self.buf2
|
||||||
diff = self._tmp_size() - self.tmp.tell()
|
diff = self._tmp_size() - self.tmp.tell()
|
||||||
if not diff:
|
if not diff:
|
||||||
return self._ensure_length((self._tee(self.remain, r), self.remain)
|
return self._ensure_length(self._tee(self.remain, r), self.remain)
|
||||||
else:
|
else:
|
||||||
length = min(diff, self.remain)
|
length = min(diff, self.remain)
|
||||||
return self._ensure_length(self._tee(length, r), length)
|
return self._ensure_length(self._tee(length, r), length)
|
||||||
@ -132,7 +132,7 @@ class TeeInput(object):
|
|||||||
def _ensure_length(buf, length):
|
def _ensure_length(buf, length):
|
||||||
if not buf or not self._len:
|
if not buf or not self._len:
|
||||||
return buf
|
return buf
|
||||||
while len(buf) < length && self.len != self.tmp.pos():
|
while len(buf) < length and self.len != self.tmp.pos():
|
||||||
buf += self._tee(length - len(buf), self.buf2)
|
buf += self._tee(length - len(buf), self.buf2)
|
||||||
|
|
||||||
return buf
|
return buf
|
||||||
2
setup.py
2
setup.py
@ -31,7 +31,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name = 'gunicorn',
|
name = 'gunicorn',
|
||||||
version = '0.1',
|
version = '0.2',
|
||||||
|
|
||||||
description = 'WSGI HTTP Server for UNIX',
|
description = 'WSGI HTTP Server for UNIX',
|
||||||
long_description = file(
|
long_description = file(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user