mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
more fixes
This commit is contained in:
parent
fe5f44d0b7
commit
5324d3cb60
@ -58,10 +58,6 @@ class HTTPRequest(object):
|
|||||||
self.socket = socket
|
self.socket = socket
|
||||||
self.client_address = client_address
|
self.client_address = client_address
|
||||||
self.server_address = server_address
|
self.server_address = server_address
|
||||||
self.version = None
|
|
||||||
self.method = None
|
|
||||||
self.path = None
|
|
||||||
self.headers = {}
|
|
||||||
self.response_status = None
|
self.response_status = None
|
||||||
self.response_headers = {}
|
self.response_headers = {}
|
||||||
self._version = 11
|
self._version = 11
|
||||||
@ -91,7 +87,7 @@ class HTTPRequest(object):
|
|||||||
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',
|
||||||
"wsgi.input": wsgi_input,
|
"wsgi.input": wsgi_input,
|
||||||
@ -105,9 +101,9 @@ class HTTPRequest(object):
|
|||||||
"REQUEST_METHOD": self.parser.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.parser.path,
|
||||||
"CONTENT_TYPE": self.headers.get('CONTENT-TYPE', ''),
|
"CONTENT_TYPE": headers.get('Content-Type', ''),
|
||||||
"CONTENT_LENGTH": wsgi_input.len,
|
"CONTENT_LENGTH": str(wsgi_input.len),
|
||||||
"REMOTE_ADDR": self.client_address[0],
|
"REMOTE_ADDR": self.client_address[0],
|
||||||
"REMOTE_PORT": self.client_address[1],
|
"REMOTE_PORT": self.client_address[1],
|
||||||
"SERVER_NAME": self.server_address[0],
|
"SERVER_NAME": self.server_address[0],
|
||||||
@ -115,7 +111,7 @@ class HTTPRequest(object):
|
|||||||
"SERVER_PROTOCOL": self.parser.version
|
"SERVER_PROTOCOL": self.parser.version
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, value in self.headers.items():
|
for key, value in headers.items():
|
||||||
key = 'HTTP_' + key.upper().replace('-', '_')
|
key = 'HTTP_' + key.upper().replace('-', '_')
|
||||||
if key not in ('HTTP_CONTENT_TYPE', 'HTTP_CONTENT_LENGTH'):
|
if key not in ('HTTP_CONTENT_TYPE', 'HTTP_CONTENT_LENGTH'):
|
||||||
environ[key] = value
|
environ[key] = value
|
||||||
@ -151,10 +147,4 @@ class HTTPRequest(object):
|
|||||||
if not isinstance(value, basestring):
|
if not isinstance(value, basestring):
|
||||||
value = str(value)
|
value = str(value)
|
||||||
self.response_headers[name] = value.strip()
|
self.response_headers[name] = value.strip()
|
||||||
self.start_response_called = True
|
self.start_response_called = True
|
||||||
|
|
||||||
def write(self, data):
|
|
||||||
self.io.write(send)
|
|
||||||
|
|
||||||
def close(self):
|
|
||||||
self.socket.close()
|
|
||||||
@ -33,13 +33,10 @@ class HTTPResponse(object):
|
|||||||
self.data = data
|
self.data = data
|
||||||
self.headers = self.req.response_headers or {}
|
self.headers = self.req.response_headers or {}
|
||||||
|
|
||||||
def write(self, data):
|
|
||||||
self.req.socket.send(data)
|
|
||||||
|
|
||||||
def send(self):
|
def send(self):
|
||||||
# send headers
|
# send headers
|
||||||
resp_head = []
|
resp_head = []
|
||||||
resp_head.append("%s %ss\r\n" % (self.req.version, self.req.response_status))
|
resp_head.append("%s %ss\r\n" % (self.req.parser.version, self.req.response_status))
|
||||||
|
|
||||||
resp_head.append("Server: %s\r\n" % self.req.SERVER_VERSION)
|
resp_head.append("Server: %s\r\n" % self.req.SERVER_VERSION)
|
||||||
resp_head.append("Date: %s\r\n" % http_date())
|
resp_head.append("Date: %s\r\n" % http_date())
|
||||||
@ -49,13 +46,13 @@ class HTTPResponse(object):
|
|||||||
resp_head.append("Connection: close\r\n")
|
resp_head.append("Connection: close\r\n")
|
||||||
for name, value in self.req.response_headers.items():
|
for name, value in self.req.response_headers.items():
|
||||||
resp_head.append("%s: %s\r\n" % (name, value))
|
resp_head.append("%s: %s\r\n" % (name, value))
|
||||||
self.write("%s\r\n" % "".join(resp_head))
|
self.req.socket.send("%s\r\n" % "".join(resp_head))
|
||||||
|
|
||||||
for chunk in self.data:
|
for chunk in self.data:
|
||||||
self.write(chunk)
|
self.req.socket.send(chunk)
|
||||||
|
|
||||||
self.req.close()
|
|
||||||
|
|
||||||
|
self.req.socket.close()
|
||||||
|
|
||||||
if hasattr(self.data, "close"):
|
if hasattr(self.data, "close"):
|
||||||
self.data.close()
|
self.data.close()
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user