Changeset 1259
- Timestamp:
- 08/21/06 01:12:54
- Files:
-
- trunk/cherrypy/_cpwsgi.py (modified) (1 diff)
- trunk/cherrypy/_cpwsgiserver.py (modified) (1 diff)
- trunk/cherrypy/test/test_conn.py (modified) (2 diffs)
- trunk/cherrypy/test/test_core.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/_cpwsgi.py
r1257 r1259 128 128 _cpwsgiserver.HTTPRequest.parse_request(self) 129 129 except http.MaxSizeExceeded: 130 self.simple_response( 413, "Request Entity Too Large")130 self.simple_response("413 Request Entity Too Large") 131 131 cherrypy.log(traceback=True) 132 133 def decode_chunked(self): 134 """Decode the 'chunked' transfer coding.""" 135 if isinstance(self.rfile, http.SizeCheckWrapper): 136 self.rfile = self.rfile.rfile 137 mbs = int(cherrypy.config.get('server.max_request_body_size', 138 100 * 1024 * 1024)) 139 if mbs > 0: 140 self.rfile = http.SizeCheckWrapper(self.rfile, mbs) 141 try: 142 return _cpwsgiserver.HTTPRequest.decode_chunked(self) 143 except http.MaxSizeExceeded: 144 self.simple_response("413 Request Entity Too Large") 145 cherrypy.log(traceback=True) 146 return False 132 147 133 148 trunk/cherrypy/_cpwsgiserver.py
r1258 r1259 218 218 cl += chunk_size 219 219 data.write(self.rfile.read(chunk_size)) 220 if self.rfile.read(2) != "\r\n": 220 crlf = self.rfile.read(2) 221 if crlf != "\r\n": 221 222 self.simple_response("400 Bad Request", 222 "Bad chunked transfer coding") 223 "Bad chunked transfer coding " 224 "(expected '\\r\\n', got %r)" % crlf) 223 225 return 224 226 trunk/cherrypy/test/test_conn.py
r1258 r1259 40 40 cherrypy.config.update({ 41 41 'log_to_screen': False, 42 'server.max_request_body_size': 100, 42 43 'show_tracebacks': True, 43 44 'environment': 'production', … … 186 187 self.assertStatus('200 OK') 187 188 self.assertBody("thanks for 'xx\r\nxxxxyyyyy' (application/x-json)") 189 190 # Try a chunked request that exceeds max_request_body_size. 191 # Note that the delimiters and trailer are included. 192 body = ("5f\r\n" + ("x" * 95) + "\r\n0\r\n\r\n") 193 self.getPage("/upload", 194 headers=[("Transfer-Encoding", "chunked"), 195 ("Content-Type", "text/plain"), 196 ("Content-Length", len(body)), 197 ], 198 body=body, method="POST") 199 self.assertStatus(413) 200 self.assertBody("") 188 201 189 202 def test_HTTP10(self): trunk/cherrypy/test/test_core.py
r1243 r1259 864 864 self.getPage("/", headers=[('From', "x" * 500)]) 865 865 self.assertStatus(413) 866 self.assertInBody("Request Entity Too Large")867 866 868 867 # Test for http://www.cherrypy.org/ticket/421 … … 893 892 self.getPage('/upload', h, "POST", b) 894 893 self.assertStatus(413) 895 self.assertInBody("Request Entity Too Large")896 894 897 895 def testEmptyThreadlocals(self):

