Fixed #14594 -- Corrected a problem introduced by r14394 whereby reading POST data when running a WSGI server under CherryPy would hang. Thanks to Mark Sundstrom for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14435 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
1fc7c4aee4
commit
32f650cfcc
|
@ -140,7 +140,17 @@ class HttpRequest(object):
|
||||||
if not hasattr(self, '_raw_post_data'):
|
if not hasattr(self, '_raw_post_data'):
|
||||||
if self._read_started:
|
if self._read_started:
|
||||||
raise Exception("You cannot access raw_post_data after reading from request's data stream")
|
raise Exception("You cannot access raw_post_data after reading from request's data stream")
|
||||||
self._raw_post_data = self.read()
|
try:
|
||||||
|
content_length = int(self.META.get('CONTENT_LENGTH', 0))
|
||||||
|
except (ValueError, TypeError):
|
||||||
|
# If CONTENT_LENGTH was empty string or not an integer, don't
|
||||||
|
# error out. We've also seen None passed in here (against all
|
||||||
|
# specs, but see ticket #8259), so we handle TypeError as well.
|
||||||
|
content_length = 0
|
||||||
|
if content_length:
|
||||||
|
self._raw_post_data = self.read()
|
||||||
|
else:
|
||||||
|
self._raw_post_data = self.read(int(content_length))
|
||||||
self._stream = StringIO(self._raw_post_data)
|
self._stream = StringIO(self._raw_post_data)
|
||||||
return self._raw_post_data
|
return self._raw_post_data
|
||||||
raw_post_data = property(_get_raw_post_data)
|
raw_post_data = property(_get_raw_post_data)
|
||||||
|
|
Loading…
Reference in New Issue