Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1994

Show
Ignore:
Timestamp:
06/28/08 20:22:52
Author:
fumanchu
Message:

Fix for #803 (run CP under Google App Engine).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cprequest.py

    r1973 r1994  
    717717                                          environ={'REQUEST_METHOD': "POST"}, 
    718718                                          keep_blank_values=1) 
    719         except http.MaxSizeExceeded: 
    720             # Post data is too big 
    721             raise cherrypy.HTTPError(413) 
     719        except Exception, e: 
     720            if e.__class__.__name__ == 'MaxSizeExceeded': 
     721                # Post data is too big 
     722                raise cherrypy.HTTPError(413) 
     723            else: 
     724                raise 
    722725         
    723726        # Note that, if headers['Content-Type'] is multipart/*, 
  • trunk/cherrypy/_cpserver.py

    r1974 r1994  
    7171            httpserver = self.instance 
    7272        if httpserver is None: 
    73             from cherrypy import _cpwsgi 
    74             httpserver = _cpwsgi.CPWSGIServer() 
     73            from cherrypy import _cpwsgi_server 
     74            httpserver = _cpwsgi_server.CPWSGIServer() 
    7575        if isinstance(httpserver, basestring): 
    7676            httpserver = attributes(httpserver)() 
  • trunk/cherrypy/_cpwsgi.py

    r1978 r1994  
    55 
    66import cherrypy as _cherrypy 
    7 from cherrypy import _cperror, wsgiserver 
     7from cherrypy import _cperror 
    88from cherrypy.lib import http as _http 
    99 
     
    329329            bucket[arg] = v 
    330330 
    331  
    332  
    333 #                            Server components                            # 
    334  
    335  
    336 class CPHTTPRequest(wsgiserver.HTTPRequest): 
    337      
    338     def __init__(self, sendall, environ, wsgi_app): 
    339         s = _cherrypy.server 
    340         self.max_request_header_size = s.max_request_header_size or 0 
    341         self.max_request_body_size = s.max_request_body_size or 0 
    342         wsgiserver.HTTPRequest.__init__(self, sendall, environ, wsgi_app) 
    343  
    344  
    345 class CPHTTPConnection(wsgiserver.HTTPConnection): 
    346      
    347     RequestHandlerClass = CPHTTPRequest 
    348  
    349  
    350 class CPWSGIServer(wsgiserver.CherryPyWSGIServer): 
    351     """Wrapper for wsgiserver.CherryPyWSGIServer. 
    352      
    353     wsgiserver has been designed to not reference CherryPy in any way, 
    354     so that it can be used in other frameworks and applications. Therefore, 
    355     we wrap it here, so we can set our own mount points from cherrypy.tree 
    356     and apply some attributes from config -> cherrypy.server -> wsgiserver. 
    357     """ 
    358      
    359     ConnectionClass = CPHTTPConnection 
    360      
    361     def __init__(self): 
    362         server = _cherrypy.server 
    363         sockFile = server.socket_file 
    364         if sockFile: 
    365             bind_addr = sockFile 
    366         else: 
    367             bind_addr = (server.socket_host, server.socket_port) 
    368          
    369         s = wsgiserver.CherryPyWSGIServer 
    370         s.__init__(self, bind_addr, _cherrypy.tree, 
    371                    server.thread_pool, 
    372                    server.socket_host, 
    373                    request_queue_size = server.socket_queue_size, 
    374                    timeout = server.socket_timeout, 
    375                    shutdown_timeout = server.shutdown_timeout, 
    376                    ) 
    377         self.protocol = server.protocol_version 
    378         self.nodelay = server.nodelay 
    379         self.ssl_certificate = server.ssl_certificate 
    380         self.ssl_private_key = server.ssl_private_key 
    381  
  • trunk/cherrypy/lib/http.py

    r1970 r1994  
    378378 
    379379 
    380 from cherrypy.wsgiserver import MaxSizeExceeded 
    381  
    382380 
    383381class Host(object): 

Hosted by WebFaction

Log in as guest/cpguest to create tickets